Hola amigos bueno de nuevo aqui , estoy teniendo un problema con un 16f877A , lo que quiero lograr es recibir 4 digitos DTMF (como si fuera un codigo de acceso)por medio de un 8870 y compararlos con los que estan grabados en la eeprom para dar acceso a una funcion especifica , cosa que no me sale ya que al arancar la interupcion se queda en el primer numero y no me actualiza al segundo para seguir la verificacion del codigo.
alguien sabe como hacerlo , por favor una ayuda o un ejemplo
Aqui les doy un fragmento de mi rutina pero no funciona alguna idea????
#int_EXT
EXT_isr()
{
a=((portd & 0xF0) >> 4);
if (codigo_almacenado == 0)
{
write_eeprom (numero, a);
++numero;
if (numero == 3){printf(lcd_putc, "fCodigo completo"

; }
}
numero =0;
pasw1= read_eeprom (numero);
if (pasw1 == a)
{ ++numero;
pasw2= read_eeprom (numero);
if (pasw2 == a)
{ ++numero;
pasw3= read_eeprom (numero);
if (pasw3 == a)
{ ++numero;
pasw4= read_eeprom (numero);
if (pasw4 == a) codigo_ok = 1;
else codigo_ok = 0;
}else codigo_ok = 0;
}else codigo_ok =0;
}else codigo_ok = 0;
if (codigo_ok == 1) printf(lcd_putc, "fCodigo OK"

;
if (codigo_ok == 0) printf(lcd_putc, "fCodigo incorrecto"

;
}
No se pero se me hace que me estoy complicando por demas
A!!! y otra duda para despues como hago para llamar una rutina desde una interupcion nunca me sale de ella , Se puede????
Disculpen las molestias y mi ignorancia soy bastante nuevo en esto.