Olá amigos, estou trabalhando num projeto com o pic 16f628a, preciso, que ao pressionar um botão, ele dê um pulso de +- 5 seg numa porta, e um pulso direto em outra, e ao pressionar novamente, desligue o pulso direto, e dê outro pulso de +- 5seg naquela porta, desenvolvi esse programa no CCS, mas ele só realiza um ciclo, não volta ao início após terminar as funções, notei no proteus, que as portas, após o pulso positivo(ponto vermelho no proteus) ficam em descanso negativo(ponto azul), acredito que é isso q está impossibilitando o loop da função, será que é alguma configuração dos #fuses? ou um erro no programa?
#include<16f628a.h>
#use delay(clock=4000000)
#fuses INTRC_IO,NOWDT,PUT,BROWNOUT
#define BOTAO PIN_A0
void main(void)
{ while(true){
if(input(BOTAO)){
if (output_low(PIN_A2)){
output_high(PIN_A1);
delay_ms(3000);
output_low(PIN_A1);
output_high(PIN_A2);}
else
{
output_low(PIN_A2);
output_high(PIN_A1);
delay_ms(3000);
output_low(PIN_A1);
}
}
}
}