Hola!!:
Quisiera pedirles ayuda en un programa que hice en clase pero no entiendo muy bien, es acerca de las interrupciones. A continuacion lo pongo:
#include <16f883.h>
#fuses XT, NOWDT, NOPROTECT, NOLVp,
#use delay (clock= 4000000)
#BYTE OPTION_REG=0x181
#byte IOCB=0x96
#byte INTCON=0x0B
#use fast_io(b)
#use fast_io(c)
//int a;
#INT_RB
void rb_isr(){
//a=input(pin_B0);
//if (a==1){
output_toggle(pin_C1);
delay_ms(500);
//}
}
void main(){
set_tris_C(0x00);
set_tris_B (0xBB);
output_C(0x00);
port_b_pullups(TRUE);
enable_interrupts(int_rb0);
enable_interrupts(global);
while(1){
}
}
Lo que pretendo hacer con este programa es que al conectarle un interruptor en la entrada B0 cambie el estado de C1 cada vez que sea presionado, "un interruptor tipo toggle". Cuando corro el programa en mi simulación y hago un cambio en b0 este lo hace pero se queda ciclado. Puse unas instrucciones como comentarios que si son deshabilitadas funciona el programa que yo quiero. Quisiera saber si estoy utilizando de manera correcta la interrupcion. Otra duda que tengo es lo mismo usar: while(1){} que while(TRUE){} por que si uso la primera, el compilador me marca un warning. De antemano les agradezco su ayuda y el tiempo que se toman.
Saludos