Generate up to 8 different digital waeforms from serial port

Dependencies:   mbed

Committer:
jm
Date:
Sat Feb 12 16:41:07 2011 +0000
Revision:
0:374d47623fab
jmPulse Command Line Interface Module

Who changed what in which revision?

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