Treehouse Mbed Team / Mbed 2 deprecated APS_DCM1SL

Dependencies:   mbed

Revision:
41:bd54c88e3334
Parent:
32:05a15c208bfb
Child:
42:3ae73b61f657
--- a/src/main.cpp	Fri Mar 08 20:44:56 2019 +0000
+++ b/src/main.cpp	Sat Mar 09 19:55:05 2019 +0000
@@ -3,7 +3,7 @@
 //  Treehouse Designs Inc.
 //  Colorado Springs, Colorado
 // 
-//  Copyright (c) 2016 by Treehouse Designs Inc. 
+//  Copyright (c) 2018 by Treehouse Designs Inc. 
 //  Copyright (c) 2018 by Agility Power Systems Inc. 
 // 
 //  This code is the property of Treehouse Designs, Inc. (Treehouse) and
@@ -27,122 +27,164 @@
 //-------------------------------------------------------------------------------
 
 #include "mbed.h"
-#include "math.h"
-#include "globals.h"
-#include "parameters.h"
+#include "PortOut.h"
 #include "all_io.h"
-#include "stdio.h"
-#include "stdlib.h"
-#include "serial.h"
-#include "adc.h"
-#include "adc_defs.h"
-#include "menu.h"
-#include "boards.h"
-#include "command.h"
+
+
+
+//DigitalOut myled(LED1);
+Ticker slowClk;
+Ticker fastClk;
+
+#define TRUE  1
+#define FALSE 0
 
-unsigned int en_out_code;
-unsigned int wr_out_code;
-unsigned int max_boards = 13;
-unsigned int max_rows = 2048;
-unsigned int bCodeRow[13];
+volatile bool dosFlip = FALSE;
+volatile bool dofFlip = FALSE;
+
+void slowFlip() {
+    dosFlip = TRUE;
+}
+
+void fastFlip() {
+    dofFlip = TRUE;
+}
 
-unsigned short my12=0;
-volatile bool updateReady = FALSE;
-unsigned int loopTime = 0;
-bool raw = FALSE;
-bool running = FALSE;
-bool testing = FALSE;
-bool buck = TRUE;
-
-double CURRENT_48_OFFSET = 33940;
-double CURRENT_24_OFFSET = 33580;
-double CURRENT_12_OFFSET = 33256;
-
-unsigned short row = 0;
-int row_test = 0;
-int row_print = 0;
-
-Timer masterTimer;
-
-int main()
-{
-   myled = 0;
-   extchlat = OFF;
-   wr_out_code = setBoardEnables(ALLON);
-   en_out_code = setBoardWeights(32);
-   running = FALSE;
-   
-   initSerial();
-    
-   initDRT(); // Display Refresh Timer
-   
-   initADC();
+void initOut(void){
+    ec2  = 1;
+    ec15 = 1;
+    ec26 = 1;
+    ec6  = 1;
+    ec12 = 1;
+    ec25 = 1;
+    ec36 = 1;
+    ec31 = 1;
+    ec9  = 1;
+    ec5  = 1;
+    ec24 = 1;
+    ec11 = 1;
+    ec1  = 1;
+    ec10 = 1;
+    ec23 = 1;
+    ec7  = 1;
+    ec18 = 1;
+    ec14 = 1;
+    ec27 = 1;
+    ec19 = 1;
+    ec32 = 1;
+    ec35 = 1;
+    ec21 = 1;
+    ec30 = 1;
+    ec33 = 1;
+    ec20 = 1;
+    ec34 = 1;
+    ec29 = 1;
+    ec8  = 1;
+    ec4  = 1;
+    ec17 = 1;
+    ec13 = 1;
+    ec26 = 1;
+    ec22 = 1;
+}
 
-   struct adcValues adcVals = getADCresults();
-   struct displayValues dispVals = calcDisplayValues(adcVals);
-   struct statusValues statVals = checkLevels(adcVals);
-   
-   row = (unsigned short)(dispVals.i12f*dispVals.v12f*ROW_CORRECTION_FACTOR);
-   unsigned int old_row = row;
-   
-   menu_banner();
-   sprintf(strbuf, "\r\nPress Enter to continue");
-   sendSerial(strbuf);
-   while(waitCommand()){ // Wait for user to press Enter
-   }
-   
-   menuRedraw(WITH_PROMPT);
-   
-   initBoards(adcVals);
-
-   while (1)
-   {
-      adcVals = getADCresults();
-      
-      dispVals = calcDisplayValues(adcVals);
-      
-      statVals = checkLevels(adcVals);
-      
-      processCommand();
+void flipSlow(void){
+    dosFlip = FALSE;
+    if(!ILR_enable){
+        ec2 = !ec2;
+        ec15 = !ec15;
+        ec26 = !ec26;
+        ec6 = !ec6;
+        ec12 = !ec12;
+        ec25 = !ec25;
+        ec36 = !ec36;
+        ec31 = !ec31;
+        ec9 = !ec9;
+        ec5 = !ec5;
+        ec24 = !ec24;
+        ec11 = !ec11;
+        ec1 = !ec1;
+        ec10 = !ec10;
+        ec23 = !ec23;
+        ec7 = !ec7;
+        ec18 = !ec18;
+        ec14 = !ec14;
+        ec27 = !ec27;
+        ec19 = !ec19;
+        ec32 = !ec32;
+        ec35 = !ec35;
+        ec21 = !ec21;
+        ec30 = !ec30;
+        ec33 = !ec33;
+        ec20 = !ec20;
+        ec34 = !ec34;
+        ec29 = !ec29;
+        ec8 = !ec8;
+        ec4 = !ec4;
+        ec17 = !ec17;
+        ec13 = !ec13;
+        ec26 = !ec26;
+        ec22 = !ec22;
+    }
+}
 
-      // 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.
-      if(adcVals.i12 < CURRENT_12_OFFSET){    
-            row = (unsigned short)(dispVals.i12f*dispVals.v12f*ROW_CORRECTION_FACTOR);
-            buck = TRUE;
-      }else{
-            row = (unsigned short)(dispVals.i12f*dispVals.v12f*(-ROW_CORRECTION_FACTOR));
-            buck = FALSE;
-      }
-      row_test = abs((int)(row-old_row));
-      if(running){
-          //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){
-             old_row = row;
-             if(row<=1023){
-                 updateControls(row);
-             }
-             row_print = row;
-             myled = !myled;
-            }
-      }else if(!testing){
-          row_test = abs((int)(my12-old_row));
-          if(row_test>ROW_HYSTERESIS){
-             old_row = my12;
-             if(row<=1023){
-                 updateControls(my12);
-             }
-             row_print = my12;
-             myled = !myled;
-          }
-      }
-      
-      if(updateReady){
-         updateReady = FALSE;
-         updateTerminal(adcVals, statVals);  // May want to gate this call when we run a headless system.
+void flipFast(void){
+    dofFlip = FALSE;
+    if(ILR_enable){
+        ec2 = !ec2;
+        ec15 = !ec15;
+        ec26 = !ec26;
+        ec6 = !ec6;
+        ec12 = !ec12;
+        ec25 = !ec25;
+        ec36 = !ec36;
+        ec31 = !ec31;
+        ec9 = !ec9;
+        ec5 = !ec5;
+        ec24 = !ec24;
+        ec11 = !ec11;
+        ec1 = !ec1;
+        ec10 = !ec10;
+        ec23 = !ec23;
+        ec7 = !ec7;
+        ec18 = !ec18;
+        ec14 = !ec14;
+        ec27 = !ec27;
+        ec19 = !ec19;
+        ec32 = !ec32;
+        ec35 = !ec35;
+        ec21 = !ec21;
+        ec30 = !ec30;
+        ec33 = !ec33;
+        ec20 = !ec20;
+        ec34 = !ec34;
+        ec29 = !ec29;
+        ec8 = !ec8;
+        ec4 = !ec4;
+        ec17 = !ec17;
+        ec13 = !ec13;
+        ec26 = !ec26;
+        ec22 = !ec22;
+    }
+}
 
-      }
-   }//end while(1)
-}//end void main(void)
+void checkFlip(void){
+    if(dosFlip){
+        flipSlow();
+    }
+    if(dofFlip){
+        flipFast();
+    }
+}
 
+int main() {
+    
+    initOut();
+    
+    slowClk.attach(&slowFlip, 0.0003);
+    fastClk.attach(&fastFlip, 0.00001);
+    
+    while(1){
+        checkFlip();
+    }
+    
+}
\ No newline at end of file