User manual

TMCM-1140 TMCL Firmware V1.19 Manual (Rev. 1.01 / 2012-JUL-27) 17
www.trinamic.com
3.4.2.5 Calculation Commands
These commands are intended to be used for calculations within TMCL applications. Although they could
also be used in direct mode it does not make much sense to do so.
Mnemonic
Command number
Meaning
CALC
19
Calculate using the accumulator and a constant value
CALCX
33
Calculate using the accumulator and the X register
AAP
34
Copy accumulator to an axis parameter
AGP
35
Copy accumulator to a global parameter
ACO
39
Copy accu to coordinate
For calculating purposes there is an accumulator (or accu or A register) and an X register. When executed
in a TMCL program (in standalone mode), all TMCL commands that read a value store the result in the
accumulator. The X register can be used as an additional memory when doing calculations. It can be
loaded from the accumulator.
When a command that reads a value is executed in direct mode the accumulator will not be affected. This
means that while a TMCL program is running on the module (standalone mode), a host can still send
commands like GAP and GGP to the module (e.g. to query the actual position of the motor) without
affecting the flow of the TMCL™ program running on the module.
3.4.2.6 Interrupt Commands
Due to some customer requests, interrupt processing has been introduced in the TMCL firmware for ARM
based modules.
Mnemonic
Command number
Meaning
EI
25
Enable interrupt
DI
26
Disable interrupt
VECT
37
Set interrupt vector
RETI
38
Return from interrupt
3.4.2.6.1 Interrupt Types
There are many different interrupts in TMCL, like timer interrupts, stop switch interrupts, position reached
interrupts, and input pin change interrupts. Each of these interrupts has its own interrupt vector. Each
interrupt vector is identified by its interrupt number. Please use the TMCL included file Interrupts.inc for
symbolic constants of the interrupt numbers.
3.4.2.6.2 Interrupt Processing
When an interrupt occurs and this interrupt is enabled and a valid interrupt vector has been defined for
that interrupt, the normal TMCL program flow will be interrupted and the interrupt handling routine will
be called. Before an interrupt handling routine gets called, the context of the normal program will be
saved automatically (i.e. accumulator register, X register, TMCL flags).
There is no interrupt nesting, i.e. all other interrupts are disabled while an interrupt handling routine is
being executed.
On return from an interrupt handling routine, the context of the normal program will automatically be
restored and the execution of the normal program will be continued.