Olá pessoal!
Eu gostaria de fazer uma comunicação entre 2 pics.
Olhando no manual do CCS, ele sugere que quando utilizar o comando kbhit() ler pelo menos a 10 vezes a velocidade de um bit, ou seja, 9600bps, ler o kbhit a 96khz.
Eu gostaria de configurar o timer0 ou timer1 para isso mas não estou conseguindo.
Bom, pensando no timer0. Eles estoura em 256, então utilizando preescaler 1 teríamos estouros a cada 4000000/4/256 = 3906,25Hz.
Configurando o timer0 assim:
#int_timer0
void timer0()
{
static int cont;
static boolean led=0;
set_timer0(0 + get_timer0());
led=!led;
output_bit(PIN_D0,led);
}
Para eu aumentar a frequência eu teria que setar um valor para o timer, certo? Como por exemplo, set_timer0(120 + get_timer0());
Assim ele não iria contar até 256 e sim até 136 resultando em 4000000/4/136 = 7352Hz.
Seguindo este pensamento, eu fui aumentando este valor até o máximo possível 254. Só que com esse valor eu consigo 3600Hz.
A maior frequencia que consigo é de 12Khz utilizando set_timer0(180 + get_timer0());
A minha idéia era deixar ele contar somente 10, para eu consegui os 100Khz pretendidos.
Isso não é possível?
Obrigado pela ajuda!
Abraços!