test

Dependencies:   MINI8I8O5A000 mbed EEPROM_P4 IICLCD_LOWCOST

Revision:
7:3cb877cb7393
Parent:
6:96d89c2f4bf9
Child:
8:055a85e600dd
--- a/main.cpp	Thu Feb 04 09:14:48 2016 +0000
+++ b/main.cpp	Mon Oct 10 10:42:45 2016 +0000
@@ -13,7 +13,7 @@
 #ifdef USBSerialOption
 #include "USBSerial.h"
 USBSerial pc;
-not work??
+
 #else
 
 //Serial pc(USBTX, USBRX); // SDA serail port
@@ -63,11 +63,18 @@
 
 char boardaddress =1;
 
+
+
+
+int CAMERROR =0;
+int CAMTOTAL =0;
+#define CAMTRIGGER OUT0
+#define CAMBUSY    IN1
+
+
 void serial_pc_rx_services()
 {
-        int i,j;
-        
-
+ int i,j;
 #ifdef USBSerialOption              
         while (pc.available())
 #else
@@ -86,16 +93,13 @@
          
          rx_buffer[rx_pointer]=inchar; //keep char in buffer...         
          rx_pointer++;
-         
-         
+                  
          if (rx_pointer>=(RXBUFFERSIZE-10)) 
          {
             rx_pointer=0;//Error buffer overflow
             pc.printf("ERR:buffer overflow\n"); 
          }
-         
-         
-         
+                  
          if ((inchar=='\r')|(inchar=='\n'))
          {
                         
@@ -123,10 +127,84 @@
                 i++;
                  
              }
+             
              rx_buffer_ARG[j]=0; //end of string ++++
              
+             
+
+             #define IDELBUSYLOOP 10000
+             BUZZER=1;      
+             
+                     
+             if (rx_buffer[0]=='t')
+             {
+              //pulse trigger              
+              CAMTRIGGER=0; //edge trigger
+              i=0; 
+              while(1) //wait camera run busy
+              {              
+                Input_sampling(8);
+                if(CAMBUSY!=0) break;                 
+                if (i++>IDELBUSYLOOP) 
+                {
+                    CAMERROR=1;
+                    break;
+                }
+              } 
+              //cmaera process run  
+              CAMTRIGGER=1; //edge trigger                          
+              i=0;
+              while(1) //wait camera complete run
+              {              
+                Input_sampling(8);
+                if(CAMBUSY==0) break;
+                if (i++>IDELBUSYLOOP) 
+                {
+                    CAMERROR=1;
+                    break;
+                }
+              }              
+                           
+             }
+             else if (rx_buffer[0]=='j')
+             {                 
+               wait(0.1);  
+             }
+             else if (rx_buffer[0]=='r')
+             {
+               wait(0.1);  
+                 
+             }             
+             else if (rx_buffer[0]=='p')
+             {
+               wait(0.1);  
+                 
+             }
+                          
+             BUZZER=0;
+             Input_sampling(8);
+             if (IN0) // Total result
+             {
+              CAMTOTAL=1;
+              OUT1=0;   
+             }
+             else
+             {
+              CAMTOTAL=0; 
+              OUT1=1;  
+             }
+             
+             
+             
+             
+             //+++++
+              pc.printf("%dOK\n",CAMTOTAL+4*CAMERROR); 
+              //pc.printf("123OK"); 
+              //pc.printf("rxbuffer: %s",rx_buffer); //test direct echo             
+             //++++             
+             
              //pc.printf("rxbuffer: %s",rx_buffer); //test direct echo
-             
+             /*
              if (strcmp(rx_buffer,"*IDN?")==0)
              {
                  pc.printf("Schaffner SerIO, ver %.1f\n",firmware_version);                 
@@ -214,7 +292,14 @@
              {//unknow / handle comand               
                //pc.printf( "UNKNOWN %s=>%s,%s\n",rx_buffer,rx_buffer_CMD,rx_buffer_ARG);                 
                pc.printf( "UNKNOWN %s=>%s,%s\n",rx_buffer);
-             }             
+             }       
+             
+             
+             */
+             
+             
+             
+                   
              rx_pointer=0;//Reset at the end  
              com_timer.stop();                           
              break;//exit while
@@ -261,6 +346,31 @@
     
   pc.attach(&serial_pc_rx_services);  // Use interrupt services !!
   
+  OUT1=0;
+
+#define  BUZZER_EN    0 
+
+
+
+CAMTRIGGER=1; // set signal ready for cam trigger
+while(1);
+ 
+  while(0)
+  {
+    if (BUZZER_EN!=0) BUZZER=1;
+    OUT0=0;
+    wait(0.1);
+    if (BUZZER_EN!=0) BUZZER=0;
+    wait(0.1);
+    OUT0=1;  
+    
+         
+    wait(1.0);  
+    
+    
+  }
+  
+  
   while(1) 
   {