TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: bluum en 12 de Abril de 2013, 14:11:02
-
Hola. Soy nuevo y estoy aprendiendo a programar PIC's en MikroC y hoy estaba probando a hacer una interrupción pero no hay manera de conseguirlo ¿Alguien me puede decir dónde está el fallo? :x
El programa es muy sencillo y solo son dos LED.
(http://www.todopic.com.ar/foros/imgtiny/2evq7mp.png)
void interrupt(void){
if (INTCON.INTF==1){
PORTA.RA1=0;
PORTA.RA0=1; //Encender LED de RA0 durante 3000ms
delay_ms(3000);
PORTA.RA0=0;
}
INTCON.INTF = 0; //Borra el flag de interrupción
}
void main() {
INTCON.GIE=1;
INTCON.INTE=1; // Habilitar interrupcion RB0
TRISA = 0x00; // Puerto A salidas.
TRISB = 0xFF; // Puerto B entradas
while (1) {
PORTA.RA1=1; //LED de RA1 encendido bucle infinito.
delay_ms(500);
PORTA.RA1=0; //LED de RA1 apagado
delay_ms(500);
}
}
Gracias!
-
Debes tener en cuenta que en dicho PIC, luego de un PowerOnReset, los puertos quedan configurados como entradas y varios quedan como entradas analógicas.
Busca en el datasheet del PIC, debes cambiar los registros ANSEL y ANSELH, para configurar los pines como entradas digitales.
-
Debes tener en cuenta que en dicho PIC, luego de un PowerOnReset, los puertos quedan configurados como entradas y varios quedan como entradas analógicas.
Busca en el datasheet del PIC, debes cambiar los registros ANSEL y ANSELH, para configurar los pines como entradas digitales.
Muchas gracias compañero ahí estaba el problema :D