![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Finalny program mbed2
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI
main.cpp
- Committer:
- azmuth_sd
- Date:
- 2020-06-09
- Revision:
- 0:33ff53112cc9
File content as of revision 0:33ff53112cc9:
#include "mbed.h" #include <string.h> #include "servo.h" #include "command_decoder.h" DigitalOut led_green(LED1); DigitalOut led_red(LED2); Serial uart(USBTX, USBRX); Servo myServo; Ticker myTimer; Token myToken; unsigned char UART_puts(char * pcString, unsigned char ucSize) { unsigned char ucLoopCounter; if( *(pcString + ucSize - 1) != NULL ) return 1; for(ucLoopCounter = 0; ucLoopCounter < (ucSize-1); ucLoopCounter++) { uart.putc(pcString[ucLoopCounter]); } uart.putc('\r'); return 0; } unsigned char UART_gets(char *pcDestString, unsigned char ucSize) { unsigned char ucLoopCounter; for(ucLoopCounter = 0; ucLoopCounter < (ucSize-1); ucLoopCounter++) { pcDestString[ucLoopCounter] = uart.getc(); if(pcDestString[ucLoopCounter] == '\r') { pcDestString[ucLoopCounter] = NULL; return 0; } } return 1; } void ServoUpdate (void){ myServo.Automat(); } int main() { uart.baud(9600); char acUartBuffor[15]; myTimer.attach(&ServoUpdate, 0.2); myServo.Callib(); while(1) { if (uart.readable()){ UART_gets(acUartBuffor,15); myToken.DecodeMsg(acUartBuffor); if( (myToken.ucTokenNr != 0) && (KEYWORD == myToken.asToken[0].eType) ) { switch(myToken.asToken[0].uValue.eKeyword) { case ID: UART_puts("ID 1234\n", 9); break; case CALIB: myServo.Callib(); UART_puts("ok\n", 4); break; case GOTO: UART_puts("ok\n", 4); myServo.GoTo(myToken.asToken[1].uValue.uiNumber); break; case STEP: UART_puts("ok\n", 4); myServo.StepRight(myToken.asToken[1].uValue.uiNumber); break; } } else if((myToken.ucTokenNr != 0)){ UART_puts("unknowncommand\n", 16); } } } }