Pessoal , estou rodando esse programa num pic 12F629 :
#include <12F629.h>
#fuses INTRC,NOWDT,NOPROTECT, NOMCLR
#use fast _io (A)
#use delay(clock=4000000)
#include <regs_12F6xx.h>
#int_timer0
void trata_t0 ()
{
short int led;
led=!led; // inverte led
gpio=led; }
main()
{
osccal=0x5B; /* osccal .. valor que vem de fábrica , mas aqui
no caso , eu fui atribuindo valores e medindo
no frequencimetro para um valor melhor ..*/
trisio=0; // trisio zerado .. todos os gpios para saida
cmcon = 7 ; // todas as enradas como digitais
gpio=0; // iniciando o port gpio --> todo zerado
setup_timer_0 (rtcc_internal | rtcc_div_256) ;
enable_interrupts ( global | int_timer0 );
while(true)
{
}
}
Então eu teria o meu (fosc/4) / 256 do prescaler , e depois , dividido por 256 de novo , para estourar o timer0 ... então vai :
1000000/256/256 = 15,25 hz ... Ok até aqui ?
Mas ai , com o frequencimetro no pino gpio0 , marca a frequencia de 7,6 Hz ... exatamente a metade ...
What´s happening ?????
Abraços
Geraldo