Que tal, tengo un problemilla y espero alguien me pueda ayudar:
Veran, intento implementar la interrupcion externa en el pic 16F886, pero cuando alimento el PIC a la fuente de inmediato se dispara dicha interrupcion, he conectado una resistencia pull up, en el pin RB0, y un interruptor a tierra, de manera que cuando presione el interruptor se active la interrupcion, pero esto nunca pasa siempre se dispara al conectarlo a la fuente de alimentacion.
Les dejo el codigo para que lo chequen y me digan si algo esta mal.
#include<16f886.h>
#fuses XT,NOWDT,NOPROTECT,NOPUT,NODEBUG
#use delay(clock=4000000)
int disparo=0; //Inicializo el valor de disparo
#byte TRISB=0x086
#byte PORTB=0x006
#INT_EXT
void ext_isr()
{
disparo=1;
}
void main()
{
//----------------
set_tris_B(0x01);
//----------------
bit_clear(PORTB,3); //Limpio el pin del puerto
//----------------
enable_interrupts(INT_EXT); //Habilito la interrupcion externa
ext_int_edge(H_TO_L); //Le digo que el disparo sera de alto a bajo
enable_interrupts(GLOBAL); //Y habilito las interrupciones de manera global
//----------------
while(1)
{
if(disparo==1) //Si disparo tiene el valor de true
{
bit_set(PORTB,3); //se enciende el bit 3 del puerto B
}
}
}
No se si tenga que agregar algo mas de harware, o de plano la estoy regando en el programa.
de antemano muchas gracias por su ayuda