# SETTICK

Compatible with:
DOS Maximite CMM MM150 MM170 MM+ MMX Picromite ArmiteL4 Armite F4 ArmiteH7 Picomite CMM2

Syntax:
SETTICK period, target [, nbr]
SETTICK FAST frequency, interruptroutine

Description:

SETTICK period, target [, nbr]
This will setup a periodic interrupt (or "tick"). Four tick timers are available ('nbr' = 1, 2, 3 or 4).
'nbr' is optional and defaults to timer number 1.
The time between interrupts is ‘period’ milliseconds and ‘target' is the interrupt subroutine which will be called when the timed event occurs.
The period can range from 1 to 2147483647 ms (about 24 days).
These interrupts can be disabled by setting ‘period’ to zero (ie, SETTICK 0, 0, 3 will disable tick timer number 3).

SETTICK FAST frequency, interruptroutine (CMM2 only)
This allows you to exceed the current maximum rate of 1 interrupt per millisecond (1000HZ) and has been tested up to 50KHz.
If the interrupt routine overruns the time available then interrupts will be lost.
If the program is executing a statement that takes longer than the time between interrupts the interrupts will be stacked.

SETTICK 1000, ticktock, 1
PRINT "start "; TIME$
PAUSE 10000 ' interrupts trigger during PAUSE
PRINT "first pause ended "; TIME$
SETTICK 0,,1 ' interrupt disabled
PAUSE 10000
PRINT "second pause ended "; TIME$
SETTICK 1000, ticktock, 1 ' interrupt re-enabled
DO :LOOP until inkey$ <>""
end
SUB ticktock
PRINT "tick "; TIME$
END SUB

Last edited: 25 February, 2021