===== myCNC Timers ===== {{youtube>0T7usPvRxbo?large}} myCNC controllers support up to 4 timers. * Each timer can be assigned to any output pin. * Pulse time (in milliseconds) and Pause time (in milliseconds) can be setup for each timer * Timers can be enabled/disabled from myCNC software setup dialog or through number of Global Variable registers. myCNC software configuration dialog to setup Timers is shown below {{:mycnc:mycnc_setup:config-triggers-001-main.png}} ==== Global Variable Registers to control myCNC Timers ==== ^ Variable Name ^ Address ^ Description ^ ^ Timer0 ^ ^ ^ | GVAR_TIMER0_ENABLED | 8100 | Writing "0" to this register will disable Timer0, \\ writing "1" will enable Timer0 | | GVAR_TIMER0_PORT | 8101 | Writing to this register will change Output pin connected to Timer0. Writing value is the Output Pin# | | GVAR_TIMER0_PULSE | 8102 | A value written to this register is Timer 0 Pulse width in milliseconds | | GVAR_TIMER0_PAUSE | 8103 | A value written to this register is Timer 0 Pause in milliseconds | ^ Timer1 ^ ^ ^ | GVAR_TIMER1_ENABLED | 8104 | Writing "0" to this register will disable Timer1, \\ writing "1" will enable Timer1 | | GVAR_TIMER1_PORT | 8105 | Writing to this register will change Output pin connected to Timer1. Writing value is the Output Pin# | | GVAR_TIMER1_PULSE | 8106 | A value written to this register is Timer 1 Pulse width in milliseconds | | GVAR_TIMER1_PAUSE | 8107 | A value written to this register is Timer 1 Pause in milliseconds | ^ Timer2 ^ ^ ^ | GVAR_TIMER2_ENABLED | 8108 | Writing "0" to this register will disable Timer2, \\ writing "1" will enable Timer2 | | GVAR_TIMER2_PORT | 8109 | Writing to this register will change Output pin connected to Timer2. Writing value is the Output Pin# | | GVAR_TIMER2_PULSE | 8110 | A value written to this register is Timer 2 Pulse width in milliseconds | | GVAR_TIMER2_PAUSE | 8111 | A value written to this register is Timer 2 Pause in milliseconds | ^ Timer3 ^ ^ ^ | GVAR_TIMER3_ENABLED | 8112 | Writing "0" to this register will disable Timer3, \\ writing "1" will enable Timer3 | | GVAR_TIMER3_PORT | 8113 | Writing to this register will change Output pin connected to Timer3. Writing value is the Output Pin# | | GVAR_TIMER3_PULSE | 8114 | A value written to this register is Timer 3 Pulse width in milliseconds | | GVAR_TIMER3_PAUSE | 8115 | A value written to this register is Timer 3 Pause in milliseconds | ==== How to use Timers in Hardware PLC ==== Here is an example of Timer0 setup in PLC procedure M169 is Timer0 initialization and start main() { gvarset(8101,1); // Setup Out#1 as Timer0 output gvarset(8102,5); // Pulse width is 5ms gvarset(8103,45); // Pause time is 45ms (Period is 5+45=50ms) gvarset(8100,1); //Start Timer0 exit(99); }; M168 is Timer0 stop main() { gvarset(8100,0); //Stop Timer0 exit(99); }; The result is shown on a picture below {{mycnc:mycnc-timers-example-001.png}}