Control up to 4 steppers from serial port

Dependencies:   mbed

Committer:
jm
Date:
Sat Feb 12 16:42:08 2011 +0000
Revision:
0:0785901b085e
jmStepper Command Line Interface Module

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jm 0:0785901b085e 1 /*************************************************************************
jm 0:0785901b085e 2 * @file main.cpp
jm 0:0785901b085e 3 *
jm 0:0785901b085e 4 * @version 1.0
jm 0:0785901b085e 5 * @date Feb 12, 2011
jm 0:0785901b085e 6 */
jm 0:0785901b085e 7
jm 0:0785901b085e 8 #include "mbed.h"
jm 0:0785901b085e 9
jm 0:0785901b085e 10 // Basic includes
jm 0:0785901b085e 11 #include "jmInterpreter.h"
jm 0:0785901b085e 12 #include "jmRingBuffer.h"
jm 0:0785901b085e 13 #include "jmCommands.h"
jm 0:0785901b085e 14 #include "jmMessages.h"
jm 0:0785901b085e 15 #include "LPC17xx.h"
jm 0:0785901b085e 16
jm 0:0785901b085e 17
jm 0:0785901b085e 18 LPC_GPIO_TypeDef *jmGPIO[5] ={LPC_GPIO0,LPC_GPIO1,LPC_GPIO2,LPC_GPIO3,LPC_GPIO4};
jm 0:0785901b085e 19
jm 0:0785901b085e 20 // CLIG-INCLUDE
jm 0:0785901b085e 21 #include "jmStepper.h"
jm 0:0785901b085e 22
jm 0:0785901b085e 23
jm 0:0785901b085e 24 // Initializations
jm 0:0785901b085e 25 void Inits(){
jm 0:0785901b085e 26 InitCommandLineRingBuffer();
jm 0:0785901b085e 27 InitMessages();
jm 0:0785901b085e 28 cli_version();
jm 0:0785901b085e 29
jm 0:0785901b085e 30 // CLIG-INIT
jm 0:0785901b085e 31 StepperInit();
jm 0:0785901b085e 32
jm 0:0785901b085e 33 }
jm 0:0785901b085e 34
jm 0:0785901b085e 35 // EggTimer tickers for modules
jm 0:0785901b085e 36 void eggTimers(){
jm 0:0785901b085e 37 int i;
jm 0:0785901b085e 38 // CLIG-TIMER
jm 0:0785901b085e 39 // Module jmStepper
jm 0:0785901b085e 40 for(i=0;i<stepperQty;i++)if(sStepper[i].eggTimer>0)sStepper[i].eggTimer--;
jm 0:0785901b085e 41
jm 0:0785901b085e 42 }
jm 0:0785901b085e 43
jm 0:0785901b085e 44 int main() {
jm 0:0785901b085e 45 unsigned char c;
jm 0:0785901b085e 46 Serial pc(USBTX, USBRX); // communication medium
jm 0:0785901b085e 47 pc.baud(115200); // 115200 bauds, 8bits, 1 stop, no control flow
jm 0:0785901b085e 48 Ticker tick; // enable system ticks
jm 0:0785901b085e 49 tick.attach_us(&eggTimers,1000); // enable and select granularity for egg timers
jm 0:0785901b085e 50 Inits(); // initialization
jm 0:0785901b085e 51
jm 0:0785901b085e 52 while(true){
jm 0:0785901b085e 53 if( pc.readable()){ // something to read ?
jm 0:0785901b085e 54 c= pc.getc(); // read one char
jm 0:0785901b085e 55
jm 0:0785901b085e 56 if(Echo) printf("%c",c); // echo it ?
jm 0:0785901b085e 57
jm 0:0785901b085e 58 switch(c){ // process it
jm 0:0785901b085e 59
jm 0:0785901b085e 60 case 8 : DelChar(pLine); // remove last one
jm 0:0785901b085e 61 break;
jm 0:0785901b085e 62 case 10 : Insert(c,pLine); // end of line
jm 0:0785901b085e 63 Interpret();// process line
jm 0:0785901b085e 64 break;
jm 0:0785901b085e 65 default : Insert(c,pLine); // insert char in command line buffer
jm 0:0785901b085e 66 }
jm 0:0785901b085e 67 } // if
jm 0:0785901b085e 68
jm 0:0785901b085e 69 // CLIG-SM
jm 0:0785901b085e 70 StepperSM();
jm 0:0785901b085e 71
jm 0:0785901b085e 72
jm 0:0785901b085e 73 }// while
jm 0:0785901b085e 74 }// main
jm 0:0785901b085e 75
jm 0:0785901b085e 76
jm 0:0785901b085e 77