Now, let's take a look at what the software looks like for this stepper controller board. They have a custom lanuage and custom IDE.
-Main Program Loop
-Interrupt Routine
The IDE that trinamic provides with their software development suite is super simple and straight to the point. The different commands are explained in the firmware manual that you can download.
The program that we're going to use will be super simple. First it will start out making our stage move to the right toward the limit switch. Once the limit switch is hit by the stage, it will trigger an interrupt which pauses the program, and then makes the stage move in the opposite direction away from the switch.
Limit Switch Testing Code
------------« Begin Code »------------
#include Interrupts.inc VECT TI_STOPRIGHT0, LIMIT_IRQ //Define Interrupt Vector EI TI_STOPRIGHT0 //Enable This Interrupt EI 255 //Globally Switch On Interrupt Processing //Main Program Tells Motor0 To Rotate Left or Right //Depending Upon The Current_Direction Variable CURRENT_DIRECTION = 0 SGP CURRENT_DIRECTION, 2, 0 //Set Initial Direction: Left LOOP: WAIT TICKS, 0, 50 //Short Pause (50 Timer Ticks) GGP CURRENT_DIRECTION, 2 //Load CURRENT_DIRECTION Into Accumulator COMP 1 //Compare Accumulator to 1 JC ZE, ROTATE_LEFT //If 0 Goto ROTATE_LEFT JC NZ, ROTATE_RIGHT //If 1 Goto ROTATE_RIGHT ROTATE_LEFT: ROL 0, 2000 //Rotate Left @ Speed 2000 JA LOOP //Jump-Always To LOOPs ROTATE_RIGHT: ROR 0, 2000 //Rotated Right @ Speedd 2000 JA LOOP //Jump-Always To LOOP LIMIT_IRQ: SGP CURRENT_DIRECTION, 2, 1 //Set Direction = 1 MST 0 //Stop Motor WAIT TICKS, 0, 100 //Short Pause RETI //Return To Main Loop
------------« End Code »------------
Luckily, the programming langauge is straight forward and mostly readable (with a few comments added in). The TCMC IDE comes with a lot of examples to learn from when you download it. Enough software! Let's test everything out!