Control Code with I/O and ADC working

Dependencies:   MODSERIAL mbed

Revision:
4:168a446bd0da
Parent:
3:0c9476da0cad
Child:
5:0f38a0bd4f86
--- a/main.cpp	Thu Feb 08 23:13:35 2018 +0000
+++ b/main.cpp	Tue Feb 13 20:30:59 2018 +0000
@@ -1,5 +1,4 @@
-// MBED SCRIPT FOR CONTROLLING THE TEMPERATURE CONTROLLED TEST FIXTURE
-// AUTHOR: JUSTIN RODENBURG
+// MBED SCRIPT FOR CONTROLLING THE TEMPERATURE CONTROLLED TEST FIXTURE (TCTF)
 // DATE: SEPTEMBER 2017
 
 #include "mbed.h"
@@ -9,7 +8,8 @@
 #include <string>
 
 //DEFINITIVE VARIABLES
-#define DEBUG         1
+#define DEBUG         0
+#define DEBUG1        1
 #define CHN_COUNT     48
 #define MIN_TEMP      15
 #define MAX_TEMP      60
@@ -33,7 +33,7 @@
    float setTemp;
 };
 
-CHNL_DATA channelLUT[] = {
+CHNL_DATA chnlStatus[] = {
     {0, NULL},
     {0, NULL},
     {0, NULL},
@@ -198,10 +198,6 @@
 LTC2487 ltc2487(PTC11, PTC10, 0x23, 100000); //sda, scl
 
 //GLOBAL VARIABLES
-//channel status variables: init. to off and 0 degrees
-float chTemps[CHN_COUNT] = {};
-float chGoalTemps[CHN_COUNT] = {};  
-int chStatus[CHN_COUNT] = {};
 volatile bool dataRecieved = false; //used to check if data has been recieved
 char rxBuf[50];
 int chnlSel;
@@ -251,12 +247,12 @@
                 }
             }
             else if(pCount == 2){ //get channel temperature
-                channelLUT[chnl].setTemp = atoi(data.c_str());
-                if(DEBUG) pc.printf("CHANNEL TEMP: %f \r\n", channelLUT[chnl].setTemp);
+                chnlStatus[chnl].setTemp = atoi(data.c_str());
+                if(DEBUG) pc.printf("CHANNEL TEMP: %f \r\n", chnlStatus[chnl].setTemp);
             }
             else if(pCount == 3){ //get channel status
-                channelLUT[chnl].status = atoi(data.c_str());
-                if(DEBUG) pc.printf("CHANNEL STATUS: %f \r\n", channelLUT[chnl].status);
+                chnlStatus[chnl].status = atoi(data.c_str());
+                if(DEBUG) pc.printf("CHANNEL STATUS: %f \r\n", chnlStatus[chnl].status);
             } 
             data = "";  
         }
@@ -295,6 +291,9 @@
     
     if(DEBUG) pc.printf("ADC VAL: %f TEMP: %f \r\n", ADC_val, y);
     
+    //if(chn == chnlSel) 
+    pc.printf("%f \r\n", y);
+    
     return y;  
 }
 
@@ -419,14 +418,24 @@
 */
 
 void test_ltc2487(int chn){
-    if(DEBUG) pc.printf("TEMPERATURE READING: %f \r\n", get_temp(1));
+    get_temp(chn);
+    //if(DEBUG1) pc.printf("TEMPERATURE READING: %f \r\n", get_temp(chn));
 }
 
 
 
 int main() {
     
+    pc.baud(9600);
+    pc.autoDetectChar('E');
+    pc.attach(&rxInterrupt, MODSERIAL::RxAutoDetect);
+    
     myled = 1;
+    /*
+    //test_mcp23008(1);
+    while(1){
+        test_ltc2487(1);
+    }*/
     
     while(1) {
         if(DEBUG) pc.printf("THE PROGRAM STARTED \r\n");
@@ -444,14 +453,14 @@
             float currentTemp = get_temp(chnl);
             
             //CONTROL LOOP:
-            if(chStatus[chnl] == 1){
-                if(chTemps[chnl] > ((chGoalTemps[chnl])+HYST)){
+            if(chnlStatus[chnl].status == 1){
+                if(currentTemp > ((chnlStatus[chnl].setTemp)+HYST)){
                     //Turn chiller on
                     turn_valve_on(chnl); 
                     //Turn heater off
                     turn_heater_off(chnl);
                 }
-                else if (chTemps[chnl] < ((chGoalTemps[chnl])-HYST)){
+                else if (currentTemp < ((chnlStatus[chnl].setTemp)-HYST)){
                     //Turn chiller off
                     turn_valve_off(chnl); 
                     //Turn heater on