Timer

Las instrucciones de CCS que permiten controlar la interrupción por el cambio de estado en el puerto RB0 son: #int_ext /

Views 126 Downloads 1 File size 349KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Las instrucciones de CCS que permiten controlar la interrupción por el cambio de estado en el puerto RB0 son: #int_ext // esta directiva invoca a las interrupciones externas. ext_int_edge(H_TO_L); //habilita la interrupción en flanco de bajada. Si se quiere por flanco de subida se coloca (L_TO_H) enable_interrupts(GLOBAL); // habilitación global de todas las interrupciones. enable_interrupts(INT_EXT); // habilitación de las interrupciones externas. Las dos últimas instrucciones deben estar activadas en la función principal para que pueda detectar la interrupción si ocurre en el puerto B.

Proyecto : En el siguiente proyecto, se utiliza la interrupción RB0. El programa inicia prendiendo y apagando un LED que está conectado al puerto RD0. Cuando existe un cambio de estado en puerto RB0, es decir, cuando se accione el pulsador, se genera una interrupción, en la cual, un LED se prende y se apaga cinco veces.

PROGRAMA: //USO DE LA INTERRUPCIÓN EXTERNA RBO #include #fuses HS, NOPROTECT, NOWRT, NOPUT, NOWDT, NOLVP, NOCPD //Órdenes para el programador #use delay (clock=12000000) #byte PORT_D=0xf83 #byte PORT_B=0xf81

#byte PORT_A=0xf80 int n =0; #int_ext PortB_Interrupt() //Función para la interrupción { ext_int_edge(H_TO_L); for(n=1; n