Treehouse Mbed Team / Mbed 2 deprecated APS_DCM1SL

Dependencies:   mbed

Revision:
52:2b3b194144da
Parent:
49:65c714a5def2
Child:
53:004a9674e922
--- a/src/main.cpp	Wed Mar 13 19:10:40 2019 +0000
+++ b/src/main.cpp	Thu Mar 14 00:21:35 2019 +0000
@@ -40,7 +40,10 @@
 #include "boards.h"
 #include "command.h"
 #include "clocks.h"
+#include "th_rtz.h"
 
+#define IS_MASTER
+//#define IS_SLAVE
 
 //DigitalOut myled(LED1);
 Ticker slowClk;
@@ -48,6 +51,7 @@
 
 unsigned short my12=0;
 volatile bool updateReady = FALSE;
+volatile bool pulseReady = FALSE;
 unsigned int loopTime = 0;
 bool raw = FALSE;
 bool running = FALSE;
@@ -55,6 +59,8 @@
 bool buck = TRUE;
 bool pcConnected = FALSE;   //New for 1U5
 bool master = FALSE;        //New for 1U5
+bool slave1 = FALSE;        //New for 1U5
+bool slave2 = FALSE;        //New for 1U5
 
 unsigned int max_rows = 2048;
 unsigned int bCodeRow[13];
@@ -62,12 +68,13 @@
 unsigned short row = 0;
 short row_test = 0;
 unsigned short slave_code = 0;
+unsigned short new_slave_code = 0;
 
 double CURRENT_48_OFFSET = 33940;
 double CURRENT_24_OFFSET = 33580;
 double CURRENT_12_OFFSET = 33256;
 
-
+unsigned int temperatureVal;
 
 //void fastFlip(unsigned short numFast){
 //    if(numFast >= 1){ec0 = ~ec0;}
@@ -89,11 +96,22 @@
 int main() {    
     
     if(MS){ //New for 1U5
-        master = TRUE;
+        #ifdef IS_MASTER
+          master = TRUE;
+        #endif
+        #ifdef IS_SLAVE
+          slave1 = TRUE;
+          slave2 = FALSE;
+        #endif
     }else{
-        master = FALSE;
+        #ifdef IS_SLAVE
+          slave1 = FALSE;
+          slave2 = TRUE;
+        #endif
     }
     
+    Slave_Init();
+    
     initOut();
     
     slowClk.attach(&slowFlip, 2.5);
@@ -129,7 +147,12 @@
 
     while (1)
     {
+      #ifdef IS_MASTER
+      
       adcVals = getADCresults();
+        
+      temperatureVal = getTEMPERATUREresults();
+      setFan(temperatureVal);
       
       dispVals = calcDisplayValues(adcVals);
       
@@ -137,8 +160,6 @@
       
       processCommand();
       
-      checkFlip();
-
       // Select RUN from menu to activate running mode.
       // BRDS, MULT activate testing mode. MY12 emulates running mode wthout being in running mode.
       // CAL and UNCAL do not change state of running or testing.
@@ -150,6 +171,15 @@
             buck = FALSE;
       }
       row_test = abs((int)(row-old_row));
+      
+      if(updateReady && pcConnected){
+         updateReady = FALSE;
+         updateTerminal(adcVals, statVals);  // May want to gate this call when we run a headless system.
+
+      }
+      #endif
+      
+      checkFlip();
       if(running && master){ //New for 1U5
           //The current sensors results are single-ended. Results below the midpoint are for buck mode, above is for boost mode.
             if(row_test>ROW_HYSTERESIS){
@@ -160,8 +190,11 @@
                 }
             }
       else if(running && !master){  //New for 1U5
-            slave_code = getMasterCommands();    //New for 1U5
-            updateSlaveControls(slave_code);     //New for 1U5
+            new_slave_code = getMasterCommands();    //New for 1U5
+            if(new_slave_code != slave_code){
+                slave_code = new_slave_code;
+                updateSlaveControls(slave_code);     //New for 1U5
+            }
         }
       }else if(!testing){
           row_test = abs((int)(my12-old_row));
@@ -172,11 +205,5 @@
              }
           }
       }
-      
-      if(updateReady && pcConnected){
-         updateReady = FALSE;
-         updateTerminal(adcVals, statVals);  // May want to gate this call when we run a headless system.
-
-      }
     }//end while(1)
 }//end void main(void)
\ No newline at end of file