Problemas com interrupções externas

S

Swys

Guest
Eu realmente espero que alguém pode me ajudar sobre este assunto.Eu tenho que contar os pulsos de uma fonte externa.Por alguma razão, apenas o primeiro pulso é contado.Pode alguém por favor dê uma olhada no meu código para ver o que estou fazendo de errado?

Estou usando o compilador MPLAB C18 com um PIC18F13K50

Aqui estão as minhas funções de interrupção:
Código:

high_vector código # pragma = 0x08

interrupt_at_high_vector void (void)

(

_asm

high_isr GOTO

_endasm

)

código # pragmahigh_isr # pragma interromper

high_isr void (void)

(

if ((INTCONbits.INT0IF == 1) & (INTCONbits.INT0IE == 1))

(

/ / Pulse recebido

INTCONbits.INT0IF = 0;

flow_int = 1 / / Flag que indica quando a interrupção ocorreu/ / PORTCbits.RC0 = 1;

)

)
 
Talvez uma pergunta boba, mas você está limpando o "flow_int 'pavilhão, depois de verificá-la em sua rotina principal?

 
Não é bobagem, que eu esperasse algo assim algumas vezes, mas, sim, eu sou de compensação que a bandeira

 
Eu não posso ver onde você configurou INT0, RC0 como entrada?

 
Obrigado, que era o problema.Eu não sabia que isso deve ser uma entrada.Eu mudei ... e funciona!

Obrigado rapazes!

 

Welcome to EDABoard.com

Sponsor

Back
Top