TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: ramirez en 02 de Agosto de 2010, 14:57:34
-
Hola a todos, intento hacer una interrupcion simple con el siguiente programa en un 16f84a y no funciona. En cambio el mismo programa en un 16f877, funciona correctamente, la unica diferencia es que en el f84a utilizo el port A, mientras que en el f877 utilizo otro puerto. ¿Que ocurre?.
De nuevo gracias a todos por vuestra colaboracion.
#include <16f84a.h> //pic a utilizar
#fuses XT,NOWDT,NOPROTECT,PUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#use standard_io(b)
#use fixed_io(a_outputs=PIN_A0)
///LLAMADA FUNCION INTERRUPCION
#INT_EXT
void IntRB0()
{
output_high(PIN_A0);
delay_ms(10000);
output_low(PIN_A0);
}
///PROGRAMA
void main(void)
{
enable_interrupts(int_ext); //activar interrupcion externa
ext_int_edge(L_TO_H); //configuracion:interrupcion cuando señal esta en alta
enable_interrupts(GLOBAL); //todas las interrupciones desactivadas
for(;;){} //bucle infinito esperando interrupcion
}
-
Saludos ramirez
Pues no se que pasa con el simulador que estas utilizando, porque a mi me funciona perfectamente, de pronto, puede que estes simulando mal, debido a que el microcontrolador espera 10s para salir de la interrupción según el código que estás utilizando.
///LLAMADA FUNCION INTERRUPCION
#INT_EXT
void IntRB0()
{
output_high(PIN_A0);
delay_ms(10000);
output_low(PIN_A0);
}
Para mejorar yo le pondría 1000ms y no 10000ms
-
Gracias por tu respuesta Chenao, efectivamente, lo que deseo es que una vez que suelto el pulsador en RB0, obtengo una temporizacion de 10 segudnos por RA0.
Gracias de nuevo
-
Saludos ramires
De todas formar con el pulsador funciona perfecto. Acá adjunto la simulación en el proteus 7.2.
-
Gracias Chenao, ahora funciona correctamente, he hecho un fichero nuevo y todo ok.
Gracias por tu colaboracion.