I am trying to create 5 sec hw delay using Timer0 for PIC18f4550 microcontroller.
I am using 16 bit mode timer. My understanding is:
Fosc = 48 mhz/4 = 12 mhz
using 256 prescaler, brings frequency to 12,000,000/256 = 46875
so period = 1/f = 1/ 46875 = 0.00002133
so to create 5 sec delay , frequency has to be 5 sec/ 0.00002133 = 234411
now what I am confused is: using 16 bit register,
So the value to be filled in Timers 16 bit register = 65,535 - 234,411
since the register rolls over up to FFFF.
or should it be 234,411 - 65535
uiTime = (234411 - 65535));
ucTimeLo = uiTime % 256;
ucTimeHi = uiTime/256;
TMR0H = ucTimeHi;
TMR0L = ucTimeLo;
I am using 16 bit mode timer. My understanding is:
Fosc = 48 mhz/4 = 12 mhz
using 256 prescaler, brings frequency to 12,000,000/256 = 46875
so period = 1/f = 1/ 46875 = 0.00002133
so to create 5 sec delay , frequency has to be 5 sec/ 0.00002133 = 234411
now what I am confused is: using 16 bit register,
So the value to be filled in Timers 16 bit register = 65,535 - 234,411
since the register rolls over up to FFFF.
or should it be 234,411 - 65535
uiTime = (234411 - 65535));
ucTimeLo = uiTime % 256;
ucTimeHi = uiTime/256;
TMR0H = ucTimeHi;
TMR0L = ucTimeLo;