![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Export for Dan
main.cpp
- Committer:
- atravieso
- Date:
- 2015-10-27
- Revision:
- 2:d6cadd28a68e
- Parent:
- 1:66e3217ec4ec
- Child:
- 3:4039b6c8da2e
File content as of revision 2:d6cadd28a68e:
#include "mbed.h" #include "MODSERIAL.h" #define MESSAGE_BUFFER_SIZE 100 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]; int count = 0; int i = 0; bool messageReceived; void messageReceive(MODSERIAL_IRQ_INFO *q) { // Get the pointer to MODSERIAL object that invoked this callback. MODSERIAL *sys = q->serial; char c = sys->rxGetLastChar(); // Where local pc variable is a pointer to the global MODSERIAL pc object. //add char c to messageBufferIncoming if(i <=MESSAGE_BUFFER_SIZE){ messageBufferIncoming[i] = c; i++; // led3 = !led3; } count++; if (count == 8){ //led4 = !led4; // if (!strncmp(messageBufferIncoming, "AA55FF00", sizeof("AA55FF00")-1)) led2 = !led2; //else if (!strncmp(messageBufferIncoming, "BB", sizeof("BB")-1)) led3 = !led3; memset(messageBufferIncoming, '\0', sizeof(messageBufferIncoming)); i = 0; messageReceived = true; count = 0; } return; } void messageProcess(void) { led1 = !led1; // if (!strncmp(messageBufferIncoming, "AA", sizeof("AA")-1)) led2 = !led2; //it's comparing the last character enetered //else if (!strncmp(messageBufferIncoming, "BB", sizeof("BB")-1)) led3 = !led3; //else led4 = !led4; //else if (!strncmp(messageBufferIncoming, "CC33FF00", sizeof("CC33FF00")-1)) led4 = !led4; //else if (!strncmp(messageBufferIncoming, "DD22FF00", sizeof("DD22FF00")-1)) led4 = !led4; messageReceived = false; } int main() { messageReceived = false; memset(messageBufferIncoming, '\0', sizeof(messageBufferIncoming)); messageSystem.baud(9600); messageSystem.attach(&messageReceive, MODSERIAL::RxIrq); //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(); } } }