Syntax:
InitTimer1 source, prescaler
Command 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 loop
Sub Flash_LED Settimer 1, 3200 'Preload timer pulseout LED, 100 ms End Sub
Supported in <TIMER.H>