test

Dependencies:   MINI8I8O5A000 mbed EEPROM_P4 IICLCD_LOWCOST

Revision:
3:e658376f6e27
Parent:
2:82dbbbff7518
Child:
4:c08d713f8cfc
--- a/main.cpp	Tue Oct 13 08:50:26 2015 +0000
+++ b/main.cpp	Tue Oct 13 10:27:11 2015 +0000
@@ -75,35 +75,22 @@
 #else
         while(pc.readable())        
 #endif        
-        {
-         
-         
-          inchar =pc.getc();
-          
-          
-          myled = 0;
-          
-          
-
-         
-         
+        {         
+         inchar =pc.getc();        
          if ( rx_pointer==0)  //first incoming character clear old buffer
          {
              for (i=0;i<RXBUFFERSIZE;i++) rx_buffer[i]=0; //clear old buffer              
-            //  com_timer.reset();
-            //  com_timer.start();
+             com_timer.reset();
+             com_timer.start();
          }
          
          
-         rx_buffer[rx_pointer]=inchar; //keep char in buffer...
-         
+         rx_buffer[rx_pointer]=inchar; //keep char in buffer...         
          rx_pointer++;
          
          
          if (rx_pointer>=(RXBUFFERSIZE-10)) 
          {
-              //rx_pointer=200;
-              //rx_buffer[rx_pointer]=0;
             rx_pointer=0;//Error buffer overflow
             pc.printf("ERR:buffer overflow\n"); 
          }
@@ -159,7 +146,7 @@
             sprintf (str,"  --- RESET ----");                      
             LCDI2C4Bit_printIn(str);                
                 wait(0.25);
-                NVIC_SystemReset();//softreser
+              NVIC_SystemReset();//softreser
              }
              else if (strcmp(rx_buffer,":SYS:VER")==0)
              {
@@ -172,7 +159,7 @@
              //else if (strcmp(rx_buffer,"a11000")==0) //Read Input   "aX1"
              else if  ( (rx_buffer[0]=='a')  & (rx_buffer[1]==('0'+boardaddress))  & (rx_buffer[2]=='1')) // Write Output "aX1"
              {
-                pc.printf("OK%d\n",11); 
+                pc.printf("%dOK\n",INPUT); 
              }                                                                                                                                                           
              else if  ( (rx_buffer[0]=='a')  & (rx_buffer[1]==('0'+boardaddress))  & (rx_buffer[2]=='2')) // Write Output "aX2"
              {
@@ -192,24 +179,22 @@
                 {                  
                   outdata=outdata*10+rx_buffer[5]-'0';
                 }
-                
-                if bitchk(outdata,0) OUT0=ON; else OUT0=OFF;
-                if bitchk(outdata,1) OUT1=ON; else OUT1=OFF;
-                if bitchk(outdata,2) OUT2=ON; else OUT2=OFF;
-                if bitchk(outdata,3) OUT3=ON; else OUT3=OFF;
+                int OUTBUF=0;
+                if bitchk(outdata,0) {OUT0=ON;OUTBUF=OUTBUF+1;} else OUT0=OFF;
+                if bitchk(outdata,1) {OUT1=ON;OUTBUF=OUTBUF+2;} else OUT1=OFF;
+                if bitchk(outdata,2) {OUT2=ON;OUTBUF=OUTBUF+4;} else OUT2=OFF;
+                if bitchk(outdata,3) {OUT3=ON;OUTBUF=OUTBUF+8;} else OUT3=OFF;
 
-                if bitchk(outdata,4) OUT4=ON; else OUT4=OFF;
-                if bitchk(outdata,5) OUT5=ON; else OUT5=OFF;
-                if bitchk(outdata,6) OUT6=ON; else OUT6=OFF;
-                if bitchk(outdata,7) OUT7=ON; else OUT7=OFF;
-                
-                
-                    
-                pc.printf("OK%d\n",outdata); 
+                if bitchk(outdata,4) {OUT4=ON;OUTBUF=OUTBUF+16;} else OUT4=OFF;
+                if bitchk(outdata,5) {OUT5=ON;OUTBUF=OUTBUF+32;} else OUT5=OFF;
+                if bitchk(outdata,6) {OUT6=ON;OUTBUF=OUTBUF+64;} else OUT6=OFF;
+                if bitchk(outdata,7) {OUT7=ON;OUTBUF=OUTBUF+128;} else OUT7=OFF;
+                OUTPUT=OUTBUF;                                
+                pc.printf("%dOK\n",outdata); 
              }                                                                                                                                                           
              else if  ( (rx_buffer[0]=='a')  & (rx_buffer[1]==('0'+boardaddress))  & (rx_buffer[2]=='3')) // Write Output "aX2"
              {
-                pc.printf("OK%d\n",33); 
+                pc.printf("%dOK\n",OUTPUT); 
              }                                                                                                                                              
              else
              {//unknow / handle comand               
@@ -224,7 +209,7 @@
          
          
         } //end while data read aviable
-        myled = 1;
+        
                
 
 }
@@ -254,30 +239,29 @@
 #endif     
   
   
-  //pc.printf( "RST\n");             
   com_timer.start();
   com_timer.stop();  
   com_timer.reset();
   
-  wait(1);
-  
-  while(0)
-  {
-   serial_pc_rx_services();                    
-  }     
-  
-  
-  pc.attach(&serial_pc_rx_services);  //
+  wait(0.1);
+    
+  pc.attach(&serial_pc_rx_services);  // Use interrupt services !!
   while(1) 
   {
-    
+     Input_sampling(512);
      LiquidCrystal_I2CsetCursor(0,0); 
-     sprintf (str, " I:%d O:%d    ",255,255);                 
-     LCDI2C4Bit_printIn(str); 
-
-     
+     sprintf (str, "I:%d O:%d         ",INPUT,OUTPUT);                 
+     LCDI2C4Bit_printIn(str);      
      LiquidCrystal_I2CsetCursor(0,1); 
-     sprintf (str, "%.2fs:%s       ",com_timer.read(),rx_buffer);                 
+     float processtime=1000.0*com_timer.read();
+     if (processtime<10.0)
+     {
+       sprintf (str, "%.1f ms:%s       ",processtime,rx_buffer);                 
+    }
+    else
+    {
+       sprintf (str, " %.1f ms:%s       ",processtime,rx_buffer);                 
+    }
      LCDI2C4Bit_printIn(str); 
      if (com_timer.read()>5.0) 
      {