ak;jglif;awjd

Dependencies:   mbed

Revision:
4:1e5639a2a3ae
Parent:
1:32eacc4f6beb
--- a/main.cpp	Tue Feb 19 23:48:41 2013 +0000
+++ b/main.cpp	Fri May 20 17:24:57 2016 +0000
@@ -1,16 +1,214 @@
 #include "mbed.h"
+#include <math.h>
+#include <stdio.h>
+#include "Sentral.h"
+#include "Test_Routines.h"
+
+Timeout escapez;
+
+int timeoutz=0;
+
+
+extern DigitalOut SA0;
+
+typedef char* string;
+
+#define PI 3.14159f
+
+PwmOut g(LED_GREEN);
+PwmOut r(LED_RED);
+PwmOut b(LED_BLUE);
+
+Serial pc(USBTX,USBRX);
+I2C master(PTC9,PTC8);
+
+AnalogIn VDD_Check(PTE30);
+
+DigitalIn POWER(PTE29);
+
+void VDD_read_request()     {pc.printf("[*Moudle Voltage: %f *] \r\n",(VDD_Check.read()*3.3f));}
+
 
-DigitalOut myled(LED_GREEN);
-Serial pc(USBTX,USBRX);
+    
+void find_sentral(){
+    char inbuff[2],obuff[2];
+    obuff[0] = 0x37;
+    int check[2];
+    int addr = SA0 ? AddrSA0_hi : SENTRAL_ADDRESS;
+    escapez.attach(&timeit, 10.0);
+    pc.printf("Check1\n");
+    check[0] = master.write(addr, obuff, 1);
+    
+    pc.printf("Check2\n");
+    check[1] = master.read(addr, inbuff, 1);
+    pc.printf("finding sentral... \r\nwrite %s \r\n",check[0] ? "Fail" : "Pass" );
+    
+    pc.printf("read %s \r\n reading back: %X \r\n",check[1] ? "Fail" : "Pass" , inbuff[0]);
+//continue_z:
+
+    if(!check[0] && !check[1]){
+    pc.printf("[*{01}Sentral Status: \r\n");
+    pc.printf("NEEPROM:   %d \r\n", (int)((inbuff[0] & 16)>0));
+    pc.printf("StbyState: %d \r\n", (int)((inbuff[0] & 8)>0));
+    pc.printf("UploadErr: %d \r\n", (int)((inbuff[0] & 4)>0));
+    pc.printf("UploadCPT: %d \r\n", (int)((inbuff[0] & 2)>0));
+    pc.printf("EEPROMDTC: %d*] \r\n", (int)((inbuff[0] & 1)>0));}
+    
+
+    
+    else pc.printf("[*{00}No Sentral Detected*]");
+    escapez.detach();
+    //pc.printf("Sentral Status: %X",cmd[0]);
+}
+
+void timeitz()
+{
+    master.stop();
+    //goto continue_z;
+    //timeoutz =1;
+    }
+
+
+    
+void RX_int_cb();
 
 int main() {
-    int i=0;
-    pc.printf("\nHello World!\n");
+    
+    wait(2);
+    //RST =0;
+    pc.attach(&RX_int_cb);
+    pc.baud(115200);
+    pc.printf("\nEV0 Test Fixture v1.0\n");
+    
+    r.period(0.020);
+    g.period(0.020);
+    b.period(0.020);
+    
+    r = 0.990;
+    b = 0.950;
+    g = 0.895;
+    
+    
+    SA0_init();
+    
+    pc.printf("SAO Set to %d \r\n",Set_SA0());
+    Sentral_Power(0);
+    wait(0.01);
+    //VDD_read_request();
+    Sentral_Power();
+    pc.printf("Sentral Powered on\r\n");
+    
+    //VDD_read_request();
+    
+    //find_sentral();
+    
+   // SentralSetup();
     
-    while (true) {
-        wait(0.5);
-        pc.printf("%d\n",i);
-        i++;
-        myled = !myled;
+    //VDD_read_request();
+    
+    while (true){
+        
+        if(POWER==0)
+        {
+            //pc.printf("bus init\n");
+            //BusOut GPIOS(PTE4,PTE3,PTE2,PTB11,PTB10,PTB9,PTB8);
+            //pc.printf("i2c remap\n");
+            //DigitalOut x(PTC9),y(PTC8);
+            //pc.printf("delegating\n");
+            //x=y=0;
+            //GPIOS = 0;
+            //pc.printf("SA0\n");
+            Set_SA0(0);
+            wait_ms(10); 
+            pc.attach(NULL);
+            while(Sentral_Power(0));
+            pc.printf("[*{21}MODULE POWER DISABLED \r\n");
+            //VDD_read_request();
+            wait_ms(10);
+            pc.printf("ENABLE POWER TO CONTINUE*] \r\n");
+            while(!POWER);
+            while(!Sentral_Power(1));  
+            pc.attach(&RX_int_cb);
+            pc.printf("[*{20}MODULE POWER ENABLED*] \r\n");
+            wait(1);
+            VDD_read_request();
+            
+        }
+        
     }
 }
+
+
+void RX_int_cb() {
+    
+    switch(pc.getc()) {
+        
+        case 'r':
+        VDD_read_request();
+        break;
+        /*
+        case 'l':
+        if(reading){
+            if(!hex_read_line(FILE *hexfile)){
+                reading =0;
+                pc.printf("EOF\r\n");}
+                }else pc.printf("no file open\r\n");
+        break;
+        
+        case 'h':
+        if(reading)
+        {
+            readhex = 1;
+            
+            }
+            break;
+            */
+        case 'f':
+            find_sentral();
+            break;
+            
+        case 's':
+            pc.printf("Sentral Starting up. \r\n");
+            //find_sentral();
+            if(!SentralSetup(pc,master))
+                //pc.printf("returning to loop\r\n");
+                //else 
+                pc.printf("Sentral Start exit failure\r\n");
+            break;
+            
+        case 't':
+             pc.printf("Begginng module test...\r\n");
+            // pc.printf("Sentral Starting up. \r\n");
+            //find_sentral();
+    //if(!SentralSetup(pc,master))
+        //pc.printf("returning to loop\r\n");
+        //else 
+        //pc.printf("Sentral exit failure\r\n");
+      //  return 0;
+        //}   
+        //else
+            if(EV0_test(pc,master)) pc.printf("[*{11}Module PASS*] \r\n");
+            break;
+            
+        //case '!':
+        //    DigitalOut RST(PTE5);
+        //    RST =0;
+        //    break;
+        
+        case '0':
+            int i = SA0;
+            pc.printf("SA0: %d",i);
+            break;
+            
+        case 'p':
+            pc.printf(/*Sentral_pass_through(pc,master)*/ PassThroughTest(pc,master) ? "Passthrough enabled \r\n" : "Passthrough Failure \r\n");
+            break;
+            
+        default:
+        pc.printf("[*undefined command*] \r\n");
+        break;
+        }
+    
+    }
+    
+    
\ No newline at end of file