Serial I/O program using rtos and ttreads for NMNU Ambient Computing
Dependencies: SLCD mbed-rtos mbed
Fork of Serial_IO_test_v2 by
serialO_v2.cpp
- Committer:
- scohennm
- Date:
- 2015-03-05
- Revision:
- 0:60b70ac7ed38
File content as of revision 0:60b70ac7ed38:
#include "mbed.h" #include "SLCD.h" #define LCDLEN 10 #define MAXCHAR 4 #define LEDBLINKTIME 0.2f DigitalOut rLed(LED_RED); Serial pc(USBTX, USBRX); // tx, rx SLCD slcd; //define LCD display char rxChar; int charIndex = 0; char rxString[LCDLEN]; bool charReady = false; // set up intterupt for serial port void serialISR(){ rxChar = pc.getc(); // reading clears the buffer pc.printf("%c\n\r", rxChar); rxString[charIndex] = rxChar; charIndex = (charIndex + 1 )% MAXCHAR; charReady = true; return; } void LCDMessNoDwell(char *lMess){ slcd.Home(); slcd.clear(); slcd.printf(lMess); } int main() { // set up interrupt pc.attach(&serialISR); while (true) { rLed = !rLed; // toggle led if (charReady) { LCDMessNoDwell(rxString); charReady = false; } wait(LEDBLINKTIME); } }