Luca Jel
/
mbed5a_testy
sdsd
Fork of mbed5a_testy by
Diff: main.cpp
- Revision:
- 0:e69a0b7f4b41
- Child:
- 2:0fcc9b85c8f6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri May 05 19:54:49 2017 +0000 @@ -0,0 +1,203 @@ +#include "mbed.h" +//#include "servo.h" +//#include "command_decoder.h" +#include "led.h" +#include "serwo.h" +#include "command_decoder.h" + + + +//#define DETECTOR_bm (PA4) + + +//DigitalIn det(PA_5); +//Ticker serwoTim; + + + + +//************************************************************************/ + +/******************************************************************/ +//------------------------------------ +// Hyperterminal configuration +// 9600 bauds, 8-bit data, no parity +//------------------------------------ + +RawSerial pc(USBTX,USBRX,9600); + +DigitalOut led_green(LED1); +DigitalOut led_red(LED2); + + + +Timeout LedTimeout; +Ticker Sender; + +void LedOff() +{ + led_red=0; +} + +int my_puts(char tab[],int size) +{ +//retutn 0 if string is valid + bool StringIsValid=false; + for( int index=0; index<size; index++) { + if (tab[index]==NULL) { + StringIsValid = true; + break; + } + } + if(StringIsValid == false) { + LedTimeout.attach(&LedOff, 0.5); + led_red=1; + return(1); + } + + for( int index=0; index<size; index++) { + if (tab[index]==NULL) { + pc.putc('\r'); + while(!pc.writeable()); + pc.putc('\n'); + return(0); + } + while(!pc.writeable()); + pc.putc(tab[index]); + } + return(0); +} + +void hardbeatSend() +{ + static int count=0; + char tekst[25]; + sprintf(tekst,"hardbeat number: %d \r\n", count ); + //pc.printf("This program runs since %d seconds.\r\n", i); + my_puts(tekst,22); + count++; +} + +char my_gets(char str[],int size) +{ + if (!pc.readable())return (NULL); + char c; + for(int index=0; index <size; index++) { + c=pc.getc(); + pc.putc(c); + if ((c=='\r')||(c=='\n')) { + pc.putc('\r'); + pc.putc('\n'); + str[index]=NULL; + return (1); + } + str[index]=c; + } + LedTimeout.attach(&LedOff, 5); + led_red=1; + return (1); +} + + + + + + +int main (){ + + + unsigned int uiPreviusPos; + //ButtonInit(); + //Servo_Init(500); + char cOdebranyString[20]; + char init[] = "system start\r\n"; + const char tekstSize = 20; + my_puts(init,tekstSize); + + Servo_Init(100); + //Servo_Callib(); + + while(1){ + + + + + + + + if (my_gets(cOdebranyString,tekstSize)!=NULL) { + //if(eReciever_GetStatus() == READY){ + + //Reciever_GetStringCopy( cOdebranyString ); + DecodeMsg( cOdebranyString ); + if ((ucTokenNr > 0) && (asToken[0].eType == KEYWORD)){ + switch (asToken[0].uValue.eKeyword){ + case CALLIB: + Servo_Callib(); + break; + case GOTO: + if (asToken[1].eType == NUMBER){ + Servo_GoTo(asToken[1].uValue.uiNumber); + uiPreviusPos = asToken[1].uValue.uiNumber; + } + break; + case STEP: + if (asToken[1].eType == NUMBER){ + Servo_GoTo(uiPreviusPos + asToken[1].uValue.uiNumber); + uiPreviusPos = uiPreviusPos + asToken[1].uValue.uiNumber; + } + break; + case ID: + my_puts("ID:0x1234",15); + break; + default: + break; + } + } + } + + } +} + + + + + + + + +/* +int main() +{ + + + bool flag=false; + + const char tekstSize = 7; + char tekst[tekstSize]; + //my_puts("[2J",5);//clear console + //pc.putc('[2J'); + pc.putc(27); + char init[] = "system start\r\n"; + my_puts(init,tekstSize); + Sender.attach(&hardbeatSend,1); + + + + while(1) { + + + + if (my_gets(tekst,tekstSize)!=NULL) { + + my_puts(tekst,tekstSize); + if(strcmp(tekst,"on"))flag = true; + if(strcmp(tekst,"off"))flag = false; + if(strcmp(tekst,"toggle"))flag = !flag; + led_green =flag; + } + + } +} +*/ +