en-us_commands:reference:itimerset
This is an old revision of the document!
Table of Contents
ItimerSet()
ItimerSet() sets the interval and callback function, or the hardware timer to use.
bool ItimerSet(unsigned long intervalMs, void (*callback)())
bool ItimerSet(uint8_t timerNumber, unsigned long intervalMs, void (*callback)())
Commands
| Command | Arguments | Return Value | Operation |
|---|---|---|---|
ItimerSet(intervalMs, callback) | unsigned long intervalMs — Callback interval in ms. 0 is not allowedvoid (*callback)() — Function in void functionName() form, called at each interval | bool | Sets the interval and callback function, or the hardware timer to use. |
Example
This uses the default callback timer (Timer2). The callback changes only a flag; serial output runs in loop().
volatile bool tick = false; void onTimer() { tick = true; } void setup() { Serial.begin(115200); if (!ItimerSet(1000, onTimer)) return; // Configure a 1 s callback on the default hardware timer. ItimerStart(); // Start the configured callback timer. } void loop() { if (tick) { noInterrupts(); tick = false; interrupts(); Serial.println(F("tick")); } }
Precautions
- The callback runs in an interrupt. Change only a flag there; do not call
delay(),Serial, I2C or SPI in it. - The callback timer without a timer number uses Timer2. Do not use it together with
tone()or PWM output that uses Timer2. - When specifying another hardware timer, check for conflicts with PWM, analog output and high-speed counter functions using it.
- A zero interval or missing callback makes configuration fail and return false.
Built-in Commands in the Same Category
en-us_commands/reference/itimerset.1789221299.txt.gz · Last modified: by 127.0.0.1
