Página 1 de 1

Configuração Timer0 do PIC18F4550 no CCS

MensagemEnviado: 23 Nov 2006 06:56
por mourao
Estou com alguns probleminhas na configuração do timer0 do PIC18F4550 no CCS, sigo as instruções de configuração do data sheet mas mesmo assim não consigo verificar o tempo correto:

fiz a conta
vlr_timer = 65536 - (4Mh(fosc) * 0,005(tempo)) / 4 * 256 (Prescaler)
vlr_timer = 32286


Obs. Este valor de 5ms foi para teste no osciloscópio. Se souber configurar correto com este valor faço o mesmo para 1 segundo. :D

a configuração de acordo com o datasheet é:
cpp code
#fuses CPUDIV3                
#fuses PLL1
#fuses HSPLL


pois estou com um cristal de 4Mhz mas trabalhando com o PIC a 32Mhz.


minha codificação:

cpp code
#int_TIMER0
TIMER0_isr() {
BOOLEAN led;
led = !led; //inverte o bit
output_bit(PIN_E0,led); //saida no pino 8
set_timer0(32286); //recarrega timer0
}

void main() {
...
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
set_timer0(32286);
enable_interrupts(INT_TIMER0);

for(;;);
...
}


O problema é que vejo no osciloscópio o valor de 7ms, ou seja estou sem precisão ou não estou sabendo configurar direito!

Fiz o teste para 1 segundo mas tem erro também.