Syntax:
InitTimer1 source, prescalerCommand Availability:
Available on all microcontrollers with a Timer 1 module.
Explanation:
InitTimer1 will set up timer 1.
Parameters are required as detailed in the table below:
| Parameter | Description |
|---|---|
|
|
The clock source for this specific timer. Can be either
Enhanced Microchip PIC microcontrollers with a dedicated TMRxCLK register support additional clock sources. This includes, but limited to, the following devices: 16F153xx, 16F16xx, 16F188xx and 18FxxK40 Microchip PIC microcontroller series. On these devices the clock source can be one of the following:
|
|
|
The value of the prescaler for this specific timer. See the tables below for permitted vales for Microchip PIC or the Atmel AVR microcontrollers. |
When the timer overflows an interrupt event will be generated.
This interrupt event can be used in conjunction with On Interrupt to run a section of code when the interrupt event occurs.
Microchip PIC microcontrollers:
On Microchip PIC microcontrollers prescaler must be one of the following constants:
| Prescaler Value | Primary GCB Constant | Constant Equates to value |
|---|---|---|
|
1:1 |
|
0 |
|
1:2 |
|
16 |
|
1:4 |
|
32 |
|
1:8 |
|
48 |
These correspond to a prescaler of between 1:2 and 1:8 of the oscillator (FOSC/4)
speed. The prescaler will apply to either the oscillator or the external
clock input.
Atmel AVR microcontrollers:
On the majority of Atmel AVR microcontrollers prescaler must be one of the following constants:
The prescaler will only apply when the timer is driven from the Osc the internal oscillator - the prescaler has no effect when the external clock source is specified.
| Prescaler Value | Primary GCB Constant | Secondary GCB Constant | Constant Equates to value |
|---|---|---|---|
|
1:0 |
|
|
0 |
|
1:1 |
|
|
1 |
|
1:8 |
|
|
2 |
|
1:64 |
|
|
3 |
|
1:256 |
|
|
4 |
|
1:1024 |
|
|
5 |
On Atmel AVR ATtiny15/25/45/85/216/461/861 microcontrollers prescaler must be one of the following constants:
The prescaler will only apply when the timer is driven from the Osc the internal oscillator - the prescaler has no effect when the external clock source is specified.
| Prescaler Value | Primary GCB Constant | Constant Equates to value |
|---|---|---|
|
1:0 |
|
0 |
|
1:1 |
|
1 |
|
1:2 |
|
2 |
|
1:4 |
|
3 |
|
1:8 |
|
4 |
|
1:16 |
|
5 |
|
1:32 |
|
6 |
|
1:64 |
|
7 |
|
1:128 |
|
8 |
|
1:256 |
|
9 |
|
1:512 |
|
10 |
|
1:1024 |
|
11 |
|
1:2048 |
|
12 |
|
1:4096 |
|
13 |
|
1:8192 |
|
14 |
|
1:16384 |
|
15 |
Example 1 (Microchip):
This example will measure that time that a switch is depressed (or on) and will write the results to the EEPROM.
#chip 16F819, 20
#define Switch PORTA.0
Dir Switch In
DataCount = 0
'Initilise Timer 1
InitTimer1 Osc, PS1_8
Dim TimerValue As Word
Do
ClearTimer 1
Wait Until Switch = On
StartTimer 1
Wait Until Switch = Off
StopTimer 1
'Read the timer
TimerValue = Timer1
'Log the timer value
EPWrite(DataCount, TimerValue_H)
EPWrite(DataCount + 1, TimerValue)
DataCount += 2
Loop
Example 2 (Atmel AVR):
This example will flash the yellow LED on an Arduino Uno (R3) once every second.
#Chip mega328p, 16 'Using Arduino Uno R3
#define LED PORTB.5 Dir LED OUT
Inittimer1 OSC, PS_256 Starttimer 1 Settimer 1, 3200 ;Preload Timer
On Interrupt Timer1Overflow Call Flash_LED
Do
'Wait for interrupt
loopSub Flash_LED Settimer 1, 3200 'Preload timer pulseout LED, 100 ms End Sub
Supported in <TIMER.H>

