User manual

TMCM-6110 TMCL Firmware V1.19 Manual (Rev. 1.03 / 2012-JUL-31) 18
www.trinamic.com
5.4.2.6.3 Interrupt Vectors:
The following table shows all interrupt vectors that can be used.
Interrupt number
Interrupt type
0
Timer 0
1
Timer 1
2
Timer 2
3
Target position reached
15
stallGuard™
21
Deviation
27
Left stop switch
28
Right stop switch
39
Input change 0
40
Input change 1
255
Global interrupts
5.4.2.6.4 Further Configuration of Interrupts
Some interrupts need further configuration (e.g. the timer interval of a timer interrupt). This can be done
using SGP commands with parameter bank 3 (SGP <type>, 3, <value>). Please refer to the SGP command
(paragraph 5.6.9) for further information about that.
5.4.2.6.5 Using Interrupts in TMCL
To use an interrupt the following things have to be done:
Define an interrupt handling routine using the VECT command.
If necessary, configure the interrupt using an SGP <type>, 3, <value> command.
Enable the interrupt using an EI <interrupt> command.
Globally enable interrupts using an EI 255 command.
An interrupt handling routine must always end with a RETI command
The following example shows the use of a timer interrupt:
VECT 0, Timer0Irq //define the interrupt vector
SGP 0, 3, 1000 //configure the interrupt: set its period to 1000ms
EI 0 //enable this interrupt
EI 255 //globally switch on interrupt processing
//Main program: toggles output 3, using a WAIT command for the delay
Loop:
SIO 3, 2, 1
WAIT TICKS, 0, 50
SIO 3, 2, 0
WAIT TICKS, 0, 50
JA Loop
//Here is the interrupt handling routine
Timer0Irq:
GIO 0, 2 //check if OUT0 is high
JC NZ, Out0Off //jump if not
SIO 0, 2, 1 //switch OUT0 high
RETI //end of interrupt
Out0Off:
SIO 0, 2, 0 //switch OUT0 low
RETI //end of interrupt
In the example above, the interrupt numbers are used directly. To make the program better readable use
the provided include file Interrupts.inc. This file defines symbolic constants for all interrupt numbers which
can be used in all interrupt commands. The beginning of the program above then looks like the following: