Nuevo en el Foro

Registrado: 04 Mar, 2007
Mensajes: 13
|
| Buenas, pos eso que como lo hacen porque yo lo llevo intentando y no consigo que me entre en la rutina de interrupcion. Se que es sencillisimo el tema, pero no hace caso. Lo simulo en Proteus pero parece que no haga caso.
Aquí les dejo el programa, a ver si ven algo raro y me lo dicen.
El programa ya tiene incluido el archivo del pic y tal, aunque no lo haya puesto. No utilizo las funciones porque quiero saber como se hace, y aún utilizando las funciones del compilador al simularlo en Proteus no hace caso.
#byte INTCON = 0x8B
#byte OPTION_REG = 0x81
#use delay(clock=20000000)
int boto;
#int_EXT
void EXT_isr()
{
boto=1;
intcon=intcon&0xFD; //INTF=0
intcon=intcon|0x90;
}
void main()
{
set_tris_a(0x00);
set_tris_b(0xFF);
set_tris_c(0x00);
// TODO: USER CODE!!
option_reg=option_reg | 0x40; //INTEDG=1
intcon=intcon & 0xFD; //INTF=0
intcon=intcon | 0x90; //HAbilita GIE i INTE
boto=0;
while (1)
{
if (boto==1)
{
output_a(0x01);
delay_ms(250);
output_a(0x00);
}
if (boto==0)
{
output_a(0x05);
}
}
} |
| |
|
|