Test usb connection

Dependencies:   BufferedSerial MODSERIAL mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #define Modserial
00002 
00003 #include "mbed.h"
00004 
00005 #ifdef Modserial
00006 #include "MODSERIAL.h"
00007 #else
00008 //#include "BufferedSerial.h"
00009 #endif
00010 
00011 
00012 DigitalOut led1(LED1);
00013 DigitalOut led4(LED4);
00014 
00015 #ifdef Modserial
00016 MODSERIAL pc(USBTX,USBRX);
00017 #else
00018 RawSerial pc(USBTX,USBRX);
00019 #endif
00020 
00021 
00022 bool new_send = false;
00023 void parse_cmd(int sizeCMD);
00024 char bufferRX[50];
00025 int i = 0;
00026 
00027 
00028 // interrupt call
00029 #ifdef Modserial
00030 void rxCallback(MODSERIAL_IRQ_INFO *q)
00031 {
00032      new_send = true;
00033 }
00034 #else
00035 void rxCallback()
00036 {
00037     led1 = 1;
00038 
00039     char test = pc.getc();
00040     if(test != '\n')
00041     {
00042          bufferRX[i] = test;
00043          i++;
00044     }else
00045     {
00046         new_send = true;
00047     }
00048     led1 = 0;
00049     return;
00050 }
00051 #endif 
00052 
00053 
00054 
00055 
00056 int main() 
00057 {
00058     pc.baud(9600);       
00059     pc.printf("SystemCoreClock: %dMHz\r\n", SystemCoreClock/1000000);       // print the clock frequency
00060     led4 = 0;
00061     int n = 0;
00062     
00063 
00064     #ifdef Modserial
00065     pc.attach(&rxCallback);
00066     #else
00067     pc.attach(&rxCallback, Serial::RxIrq);
00068     #endif 
00069  
00070  
00071     while(1) 
00072     { 
00073         #ifdef Modserial
00074         if(new_send)
00075         {
00076             int i = 0;
00077             led1 = 1;
00078             
00079             while(pc.readable())
00080             {
00081                 bufferRX[i] = pc.getc();
00082                 i++;
00083             }
00084             parse_cmd(i);
00085             led1 = 0; 
00086         }
00087         #else
00088         if(new_send)
00089         {
00090 
00091             parse_cmd(i);        
00092           
00093             memset(bufferRX, 0, sizeof(bufferRX));
00094             new_send = false;
00095             i = 0;
00096         }
00097         #endif             
00098         wait_ms(50);
00099         n++;
00100         if(n == 10)
00101         {
00102             led4 = !led4;
00103             n = 0;
00104         }
00105     }
00106 }
00107 
00108 
00109 
00110 
00111 
00112 void parse_cmd(int sizeCMD)
00113 {
00114         new_send = false;
00115         
00116         
00117         pc.printf("bufferRX: %s\r\n", bufferRX);
00118         
00119                
00120         if(strcmp("ciao", bufferRX) == 0)              
00121         {
00122             pc.printf("Test OK\r\n");   
00123         }
00124         
00125         memset(bufferRX, 0, sizeof(bufferRX)); 
00126 }