Interrupciones en PIC - Fundación San Valero

Anuncio
31/08/2012
Interrupciones en PICS
Interrupciones en PIC
Departamento de Electrónica
Fundación San Valero
Interrupciones en PICS
1
31/08/2012
Interrupciones en PICS
Interrupciones en PICS
2
31/08/2012
Interrupciones en PICS
Interrupciones en PICS
3
31/08/2012
Ejemplo Interrupciones
Interrupciones:
¿Dónde colocar la subrutina?
#include<16F84A>
#use delay(clock=4000000)
-> AQUÍ
#int_TIMER0
subrutina_TIMER0(){
}
main(){
}
Configurar las interrupciones:
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
Ejemplo Interrupciones
Ejemplo utilización de interrupciones:
#include<16F84A>
#use delay(clock=4000000)
int flag=0;
//Variable global
#int_TIMER0
subrutina_TIMER0(){
if(flag==1)
if(flag==0)
flag=1-flag;
}
main(){
output_bit(PINB0,1);
output_bit(PINB0,0);
set_tris_b(0x00);
//Configurar B=salidas
enable_interrupts(INT_RTCC); //Configurar interrupciones
enable_interrupts(GLOBAL);
setup_timer_0(RTCC_DIV_1|RTCC_INTERNAL); //Conf. TMR0
set_timer0(0xFF); //Establecer frecuencia de parpadeo
while(TRUE);
//Bucle infinito
}
4
31/08/2012
Ejemplo Interrupciones
Programación por interrupciones:
Programación por interrupciones
int cont=0, velocidad1=0, velocidad2=0;
#int_TIMER0
subrutina_TIMER0(){
cont++;
if(cont=NUM_VELOCIDADES){
output_bit(MOTOR_1,1);
output_bit(MOTOR_2,1);
cont=0;
}
if(cont==velocidad1) output_bit(MOTOR_1,0);
if(cont==velocidad2) output_bit(MOTOR_1,0);
}
5
Descargar