A timer counts pulses of a fixed, known frequency usually the system clock for the processor.Physically, timer is a register whose value is continually increasing to 255, and then it starts all over again: 0, 1, 2, 3,4...255....0,1, 2, 3......etc.
This incrementing is done in the background of everything a microcontroller does.It is up to programmer to think up a way how he will take advantage of this characteristic for his needs.One of the ways is increasing some variable on each timer overflow.
– If we know how much time a timer needs to make one complete round, then multiplying the value of a variable by that time will yield the total amount of elapsed time.
PIC16F877A has 3 timer modules, Timer0,Timer1 and Timer2.The device has three readable and writeable hardware timers that can increment automatically each instruction cycle (if no prescaler is used).All timers can cause an interrupt on overflow, and then restart from zero.
• Timer 0
timer/counter with prescale ,an 8-bit timer with an eight bit prescaler, which can make the timer run 2 to 256 times slower than normal
• Timer 1
timer/counter with prescale a 16-bit timer (two 8-bit registers) with a 1:1 to 1:8 prescaler and some other features. Used by given C code to generate soft timer and sound
• Timer 2
timer only with prescale and postscale , an 8-bit timer with 1:1 to 1:16 prescaler and a 1:1 to 1:16 postscaler It also has a period register.Used by given C code for PWM motor control
Timer 0
- 8 bit timer/counter with prescaler
- Readable and writeable
- 8-bit software programmable prescaler
- Internal or external clock set
- Interrupt on overflow from 0xFF to 0x00
- Edge Select for external clock
use TMR0 in program in hitech-c MPLAB X
OPTION_REG= 0x0F;
TMR0=0x0F;
while(TMR0IF=0);
TMR0IF=0;
TIMER1
- 16-bit timer/counter with prescaler
- Readable and writeable
- 1, 2, 4, 8 programmable prescaler
- Internal or external clock select
- External clock can be syn. or asyn.
- Interrupt on overflow
- Second crystal permitted
use TMR1 in Hitech C Program
T1CON= 0x0F;
TMR1= 0x0F;
TMR1ON=1;
while(TMR1IF=0);
TMR1IF=0;
TMR1ON=0;
TIMER2
8-bit timer/counter with prescaler and postscaler
• Readable and writeable
• 1,4 or 16 programmable prescaler
• 4-bit programmable postscaler
• Interrupt on overflow
• Output to port pin
Using Timer2 in Hitech C program
T2CON= 0x0F;
TMR2= 0x0F;
TMR2ON=1;
while(TMR2IF=0);
TMR2IF=0;
TMR2ON=0;
0 comments:
Post a Comment