Andreas Hatzl
/
test_150615
asdf
Diff: main.cpp
- Revision:
- 0:24f914e903b4
- Child:
- 1:756c9df9881f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Jun 10 15:36:18 2015 +0000 @@ -0,0 +1,75 @@ +/* +Serial Communication with a PC +The mbed Microcontroller can communicate with a host PC through a "USB Virtual Serial Port" +over the same USB cable that is used for programming. +This enables you to: +a) Print out messages to a host PC terminal (useful for debugging!) +b) Read input from the host PC keyboard +c) Communicate with applications and programming languages running on the host PC + that can communicate with a serial port, e.g. perl, python, java, c# and so on. +.. see http://mbed.org/handbook/SerialPC + +The C stdin, stdout and stderr file handles are also defaulted to the PC serial connection +standard calls are: printf, scanf, getc, putc, .. +*/ + +#include "mbed.h" +// global vars and objects +BusOut doLeds(LED1,LED2,LED3,LED4); +DigitalOut led2(LED2); +Serial pc(USBTX, USBRX); // tx, rx ; is default !!! (9600, 8N1) +char recChar=0; +bool recFlag=false; +char recArr[20]; +int index=0; + +// functions +void flushSerialBuffer() { + while (pc.readable()) { + pc.getc(); + } +} + +void readData() { + recChar = pc.getc(); + recArr[index] = recChar; + index++; + + recFlag = true; + recArr[index] = 0; + index = 0; + pc.printf(" - That's the input: %s\r\n", recArr); + + if(recArr[0]=='a') + { + doLeds = 0; + }; + if(recArr[0]=='b') + { + doLeds = 16; + }; + + flushSerialBuffer(); + + +} + +int main() { +// pc.baud(115200); + pc.baud(38400); + pc.format(8, SerialBase::Odd, 2); + led2 = 1; + + flushSerialBuffer(); + pc.printf("Hatzl Andreas: Gruppe A\r\n Bitte geben Sie einen Befehl ein:\r\n"); + pc.attach(&readData); + + while(1) { + if (recFlag) { + flushSerialBuffer(); +// pc.printf(" - That's the input: %s\r\n", recArr); // non reantrant function + recFlag = false; + led2 = !led2; + } + } +}