![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Export for Dan
main.cpp
- Committer:
- atravieso
- Date:
- 2015-10-22
- Revision:
- 0:4b4c18724370
- Child:
- 1:66e3217ec4ec
File content as of revision 0:4b4c18724370:
#include "mbed.h" #include "MODSERIAL.h" #define MESSAGE_BUFFER_SIZE 32 DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); MODSERIAL messageSystem(USBTX, USBRX); char messageBufferIncoming[MESSAGE_BUFFER_SIZE]; char messageBufferOutgoing[MESSAGE_BUFFER_SIZE]; bool messageReceived; void messageReceive(MODSERIAL_IRQ_INFO *q) { MODSERIAL *sys = q->serial; sys->move(messageBufferIncoming, MESSAGE_BUFFER_SIZE); messageReceived = true; return; } void messageProcess(void) { led1 = !led1; if (!strncmp(messageBufferIncoming, "LED1:1", sizeof("LED1:1")-1)) led1 = !led1; else if (!strncmp(messageBufferIncoming, "LED1:0", sizeof("LED1:0")-1)) led1 = 0; else if (!strncmp(messageBufferIncoming, "LED1:2", sizeof("LED1:2")-1)) led1 = !led1; else if (!strncmp(messageBufferIncoming, "LED2:1", sizeof("LED2:1")-1)) led2 = 1; else if (!strncmp(messageBufferIncoming, "LED2:0", sizeof("LED2:0")-1)) led2 = 0; else if (!strncmp(messageBufferIncoming, "LED2:2", sizeof("LED2:2")-1)) led2 = !led2; else if (!strncmp(messageBufferIncoming, "LED3:1", sizeof("LED3:1")-1)) led3 = 1; else if (!strncmp(messageBufferIncoming, "LED3:0", sizeof("LED3:0")-1)) led3 = 0; else if (!strncmp(messageBufferIncoming, "LED3:2", sizeof("LED3:2")-1)) led3 = !led3; else if (!strncmp(messageBufferIncoming, "LED4:1", sizeof("LED4:1")-1)) led4 = 1; else if (!strncmp(messageBufferIncoming, "LED4:0", sizeof("LED4:0")-1)) led4 = 0; else if (!strncmp(messageBufferIncoming, "LED4:2", sizeof("LED4:2")-1)) led4 = !led4; messageReceived = false; } int main() { messageReceived = false; messageSystem.baud(9600); messageSystem.attach(&messageReceive, MODSERIAL::RxAutoDetect); messageSystem.autoDetectChar('f'); // Fix Mbed library bug, see http://mbed.org/forum/bugs-suggestions/topic/1498 LPC_GPIOINT->IO2IntClr = (1UL << 5) | (1UL << 4) | (1UL << 3) | (1UL << 2); \ while(1) { // if (messageSystem.readable()) { // messageSystem.putc(messageSystem.getc()); //} // Process incoming messages. if (messageReceived) { // led1 = !led1; messageProcess(); } } }