Always-On Timer words¶
The Always-On Timer is a timer on the RP2350 which can count time in milliseconds as long as a small amount of power is applied to the MCU. It can be driven by the XOSC, the LPOSC, or an external clock source tied to a GPIO at 1 kHz. It can also be synchronized by an external clock source tied to a GPIO at 1 Hz. By convention in zeptoforth it counts the number of milliseconds since 1 Jan 1970 00:00:00.000.
The Always-On Timer has the ability to trigger an alarm, which can wake up the RP2350 when it is in a low-power state.
Note that on power-up the Always-On Timer is initialized to enabled using the XOSC as a time source with a time of 0, i.e. 1 Jan 1970 00:00:00.000.
aon-timer¶
The aon-timer module contains the following words:
enable-timer¶
( – )
Enable the Always-On Timer.
disable-timer¶
( – )
Disable the Always-On Timer.
timer-enabled?¶
( – enabled? )
Get whether the Always-On Timer is enabled. On bootup this will return true.
time!¶
( D: time – )
Set the Always-On Timer time to a double-cell value in milliseconds, typically from 1 Jan 1970 00:00:00.000.
time@¶
( – D: time )
Get the time in milliseconds of the Always-On Timer as a double-cell value, typically from 1 Jan 1970 00:00:00.000.
clear-time¶
( – )
Clear the Always-On Timer.
enable-alarm¶
( – )
Enable the Always-On Timer alarm.
disable-alarm¶
( – )
Disable the Always-On Timer alarm.
alarm-enabled?¶
( – )
Get whether the Always-On Timer alarm is enabled. On power-up this is false.
alarm!¶
( D: time – )
Set the Always-On Timer alarm time to a double-cell value in milliseconds, typically from 1 Jan 1970 00:00:00.000.
alarm@¶
( – D: time )
Get the alarm time in milliseconds of the Always-On Timer as a double-cell value, typically from 1 Jan 1970 00:00:00.000.
enable-alarm-wake-up¶
( – )
Enable the Always-On Timer alarm wake-up from low power mode.
disable-alarm-wake-up¶
( – )
Disable the Always-On Timer alarm wake-up from low power mode.
alarm-wake-up-enabled?¶
( – )
Get whether the Always-On Timer alarm wake-up from low power mode is enabled. On power-up this is false.
lposc-timer¶
( – )
Switch to LPOSC as the source of the 1 kHz timer tick.
xosc-timer¶
( – )
Switch to XOSC as the source of the 1 kHz timer tick.
gpio-1khz-timer¶
( – )
Switch to a GPIO as the source of the 1 kHz timer tick.
sync-gpio-1hz-timer¶
( – )
Synchronize with a GPIO as the source of the second counter.
unsync-gpio-1hz-timer¶
( – )
Unsynchronize with a GPIO as the source of the second counter.
lposc-timer?¶
( – flag )
Get whether the timer is running from the LPOSC.
xosc-timer?¶
( – flag )
Get whether the timer is running from the XOSC.
gpio-1khz-timer?¶
( – flag )
Get whether the timer is running from a 1 kHz GPIO source.
sync-gpio-1hz-timer?¶
( – flag )
Get whether the timer is synchronized with a GPIO as the source of the second counter.
source-sel!¶
( gpio – )
Set a GPIO as a source selection.
source-sel-drive-lpck!¶
( gpio – )
Set a GPIO as a source selection to drive the 32 kHz low power clock.
source-sel@¶
( – gpio )
Get the source selection GPIO.
drive-lpck?¶
( – flag )
Get whether a GPIO is driving the low power clock.
x-invalid-source-sel-gpio¶
( – )
GPIO is not a valid GPIO for source selection exception