Robert Labuz
/
mbed5b
mbed5b
main.cpp
- Committer:
- Robsonik16
- Date:
- 2017-05-05
- Revision:
- 0:d546b014a1e3
File content as of revision 0:d546b014a1e3:
#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); char tekst5[20]; int liczba=3; char str[] = "ab234cid*(s349*(20kd"; char str2[]="-0123456789"; /* sprintf(tekst5,"liczba: %d ", liczba ); my_puts(tekst5,10); my_puts(str+liczba,20); //long strtol( const char * start, char ** end, int base ); sprintf(tekst5,"caly string: %d ", atoi(str) ); my_puts(tekst5,20); */ char * pZnak = strpbrk(str, str2); my_puts(pZnak,20); sprintf(tekst5,"string + li: %d ", atoi(pZnak) ); my_puts(tekst5,20); Servo_Init(100); //Servo_Callib(); while(1){ if (my_gets(cOdebranyString,tekstSize)!=NULL) { if(strstr( cOdebranyString, "callib" )){Servo_Callib();} if(strstr( cOdebranyString, "id" )){my_puts("ID:0x1234",15);} if(strstr( cOdebranyString, "goto" )){ char * pZnak = strpbrk(cOdebranyString, str2); uiPreviusPos = atoi(pZnak) ; Servo_GoTo(uiPreviusPos); my_puts(pZnak,20); } if(strstr( cOdebranyString, "step" )){ char * pZnak = strpbrk(cOdebranyString, str2); uiPreviusPos = uiPreviusPos+ atoi( pZnak ); Servo_GoTo(uiPreviusPos); my_puts(pZnak,20); } } /* 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; } } } */