877/innterrupção externa

Amigos, este programa, que seria para testar uma interrupção externa ainda não funciona poderiam dar uma olhada e fazer um comentario?
- Código: Selecionar todos
#include<16f877a.h>
#device ADC=10
#fuses NOWDT,NOPROTECT,PUT,NOLVP,HS
#use delay(clock=4000000)
#include<flex_lcd.c>
#int_ext
void interrup()
{
lcd_init();
printf(lcd_putc, " \f ACIONADA INTERRUP");
output_high(pin_b7);
delay_ms(1000);
}
void main()
{
signed int32 analog;
float result;
set_tris_a(0b11111111);
set_tris_b(0b00000001);
set_tris_d(0b00000000);
output_a(0x00);
output_b(0x00);
output_d(0x00);
port_b_pullups(true);
lcd_init();
EXT_INT_EDGE(H_TO_L);
enable_interrupts( int_ext);
enable_interrupts(Global);
setup_comparator(NC_NC_NC_NC);
setup_ADC_ports(RA0_Analog); //configurA pino_a0 para conversão AD
setup_adc(adc_clock_internal); //configurar o clock interno para o AD
set_adc_CHANNEL(0);
while(true)
{
delay_us(100);
analog=READ_ADC();
result=(float)(analog*0.488);
printf(lcd_putc, " \f TEMP %0.2f C ",result,); // \f apaga display - %lu - equivalente long int (ou int 16)
output_low(pin_d3);
delay_ms(100);
}
}