Olá pessoal.
Estou usando um PIC16F628A para ler uma frequência de entrada de um sinal quadrado.
Este sinal varia a frequência rapidamente no tempo, por isso resolvi contar o tempo de cada borda descendente em um pino do PIC.
Toda vez que transmito o tempo lido pela RS232 obtenho vários valores negativos.
Vejam o trecho do código.
#INT_EXT
void intEXT()
{
if (enable) {
time = get_timer0();
printf(" :%d", time);
//calcFreq(time);
set_timer0(0);
}
}
O interessante é que se testo o código, ou debugo ele o valor de timer nunca aparece como negativo. Só acontece quando uso o printf.
Alguem sabe me explicar o que esta acontecendo ou como posso contornar o problema?
Obrigado!
ps: A serial esta configurada com #use rs232 com taxa de 57600