hola amigos tengo un problema con un programa que tengo que hacer para un pic en lenguaje c.
tengo que hacer que pulsando rb0 se active la interrupcion externa y muestre un mensaje rotatorio por el lcd, mi problema es que consigo que lo muestre todo el rato pero se me queda encerrado en la interrupcion, no he mencionado que si vuelvo a pulsar rb0 tiene que salir que es lo importante. Lo que he conseguido tambien es que rote una vez y salga pero no vale. Aqui os remito mi programa a ver si me echais un cable.
muchas gracias.
******************************************************
#include<16f877.h>
#use delay(clock=4000000)
#fuses xt
#use standard_io(a)
#include<LCD_flexible.c>
///LLAMADA FUNCION INTERRUPCION
#INT_EXT
void IntRB0()
{
int a,b,c; /*variable para hacer la rotacion de la linea inferior*/
inicio:
lcd_init();
b=14; //variables linea de abajo
c=1; //variable linea arriba
for(a=0;a<25;a++)
{
delay_ms(200);
lcd_gotoxy(c,1);
printf(lcd_putc," Jose Eugenio");
lcd_gotoxy(b,2);
printf(lcd_putc,"Diseño 2008 ");
c++;
b--;
}
a=0; //pone a cero la cuenta de digitos
b=14;
c=1;
goto inicio;
}
///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
}