Treehouse Mbed Team / Mbed 2 deprecated APS_1U5x

Dependencies:   mbed

Committer:
mfwic
Date:
Wed Dec 05 00:20:34 2018 +0000
Revision:
7:860b3a8275cb
Parent:
6:39442d493098
Child:
8:d3d7dca419b3
Added power efficiency calcs.; Changed color of text sent to terminal.; Fixed loop timer.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mfwic 0:44a3005d4f20 1 //-------------------------------------------------------------------------------
mfwic 0:44a3005d4f20 2 //
mfwic 0:44a3005d4f20 3 // Treehouse Designs Inc.
mfwic 0:44a3005d4f20 4 // Colorado Springs, Colorado
mfwic 0:44a3005d4f20 5 //
mfwic 0:44a3005d4f20 6 // Copyright (c) 2016 by Treehouse Designs Inc.
mfwic 0:44a3005d4f20 7 // Copyright (c) 2018 by Agility Power Systems Inc.
mfwic 0:44a3005d4f20 8 //
mfwic 0:44a3005d4f20 9 // This code is the property of Treehouse Designs, Inc. (Treehouse) and
mfwic 0:44a3005d4f20 10 // Agility Power Systems Inc. (Agility) and may not be redistributed
mfwic 0:44a3005d4f20 11 // in any form without prior written permission from
mfwic 0:44a3005d4f20 12 // both copyright holders, Treehouse and Agility.
mfwic 0:44a3005d4f20 13 //
mfwic 0:44a3005d4f20 14 // The above copyright notice and this permission notice shall be included in
mfwic 0:44a3005d4f20 15 // all copies or substantial portions of the Software.
mfwic 0:44a3005d4f20 16 //
mfwic 0:44a3005d4f20 17 //
mfwic 0:44a3005d4f20 18 //-------------------------------------------------------------------------------
mfwic 0:44a3005d4f20 19 //
mfwic 0:44a3005d4f20 20 // REVISION HISTORY:
mfwic 0:44a3005d4f20 21 //
mfwic 0:44a3005d4f20 22 // $Author: $
mfwic 0:44a3005d4f20 23 // $Rev: $
mfwic 0:44a3005d4f20 24 // $Date: $
mfwic 0:44a3005d4f20 25 // $URL: $
mfwic 0:44a3005d4f20 26 //
mfwic 0:44a3005d4f20 27 //-------------------------------------------------------------------------------
mfwic 0:44a3005d4f20 28
mfwic 0:44a3005d4f20 29 #include "mbed.h"
mfwic 0:44a3005d4f20 30 #include "globals.h"
mfwic 0:44a3005d4f20 31 #include "parameters.h"
mfwic 0:44a3005d4f20 32 #include "all_io.h"
mfwic 0:44a3005d4f20 33 #include "stdio.h"
mfwic 0:44a3005d4f20 34 #include "stdlib.h"
mfwic 0:44a3005d4f20 35 #include "serial.h"
mfwic 0:44a3005d4f20 36 #include "adc.h"
mfwic 2:46faae84b8b0 37 #include "menu.h"
mfwic 1:9f8583ba2431 38 #include "boards.h"
mfwic 1:9f8583ba2431 39
mfwic 1:9f8583ba2431 40 unsigned int boardsActive;
mfwic 5:09be5bbb5020 41 unsigned int boardMults;
mfwic 6:39442d493098 42 unsigned short v48, v24, v12; // Voltage divide ratio is a little low due to substituting 10k resistors in place of the 100k. The 100k caused the opamps to oscillate.
mfwic 6:39442d493098 43 unsigned short i48, i24, i12;
mfwic 4:db38665c3727 44 unsigned int binCode[6];
mfwic 6:39442d493098 45 unsigned int en_out_code;
mfwic 4:db38665c3727 46 unsigned int thermCode[17];
mfwic 6:39442d493098 47 unsigned int wr_out_code;
mfwic 5:09be5bbb5020 48 unsigned int commandData;
mfwic 6:39442d493098 49 unsigned short my12=0;
mfwic 6:39442d493098 50 unsigned int updateRefreshTicks=0;
mfwic 6:39442d493098 51 volatile bool updateReady = FALSE;
mfwic 6:39442d493098 52 unsigned int loopTime = 0;
mfwic 6:39442d493098 53
mfwic 6:39442d493098 54 Timer masterTimer;
mfwic 0:44a3005d4f20 55
mfwic 0:44a3005d4f20 56 int main()
mfwic 0:44a3005d4f20 57 {
mfwic 4:db38665c3727 58 //int stopExecuted = 0;
mfwic 7:860b3a8275cb 59 myled = 0;
mfwic 0:44a3005d4f20 60 extchlat = OFF;
mfwic 6:39442d493098 61 wr_out_code = setBoardEnables(ALLOFF);
mfwic 7:860b3a8275cb 62 running = FALSE;
mfwic 6:39442d493098 63 //setBoardEnables((unsigned int *)alloff);
mfwic 6:39442d493098 64 en_out_code = setBoardWeights(ALLOFF); // RK: Maybe? Use hex value for boardWeights to highlight that it's an encoded value.
mfwic 0:44a3005d4f20 65
mfwic 7:860b3a8275cb 66 initSerial();
mfwic 7:860b3a8275cb 67 sprintf(strbuf, "\r\nAgility Power Systems DCM1 Rev 0.35");
mfwic 3:d8948c5b2951 68 sendSerial(strbuf);
mfwic 3:d8948c5b2951 69 //sendCRLF();
mfwic 3:d8948c5b2951 70 menuPrompt(MENU_DCM1);
mfwic 3:d8948c5b2951 71
mfwic 7:860b3a8275cb 72 initDRT(); // Display Refresh Timer
mfwic 7:860b3a8275cb 73
mfwic 0:44a3005d4f20 74 initADC();
mfwic 6:39442d493098 75 getADCvolts();
mfwic 6:39442d493098 76 getADCamps();
mfwic 2:46faae84b8b0 77 menuRedraw();
mfwic 7:860b3a8275cb 78
mfwic 7:860b3a8275cb 79 masterTimer.start();
mfwic 0:44a3005d4f20 80
mfwic 0:44a3005d4f20 81 while (1)
mfwic 0:44a3005d4f20 82 {
mfwic 0:44a3005d4f20 83 processCommand();
mfwic 4:db38665c3727 84
mfwic 6:39442d493098 85 getADCvolts();
mfwic 6:39442d493098 86 getADCamps();
mfwic 6:39442d493098 87
mfwic 6:39442d493098 88 if(updateReady){
mfwic 6:39442d493098 89 updateReady = FALSE;
mfwic 6:39442d493098 90 updateTerminal(); // May want to gate this call when we run a headless system.
mfwic 7:860b3a8275cb 91 //loopTime = masterTimer.read_ms();// - loopTime;
mfwic 7:860b3a8275cb 92 myled = !myled;
mfwic 6:39442d493098 93 }
mfwic 6:39442d493098 94
mfwic 4:db38665c3727 95 if(running){
mfwic 5:09be5bbb5020 96 //updateControls();
mfwic 6:39442d493098 97 updateControls(i12);
mfwic 6:39442d493098 98 }else{
mfwic 6:39442d493098 99 //wr_out_code = setBoardEnables(ALLOFF);
mfwic 6:39442d493098 100 //setBoardEnables((unsigned int *)alloff);
mfwic 6:39442d493098 101 updateControls(my12);
mfwic 4:db38665c3727 102 }
mfwic 4:db38665c3727 103
mfwic 3:d8948c5b2951 104 //myled = 1;
mfwic 3:d8948c5b2951 105 //wait(1.0);
mfwic 3:d8948c5b2951 106 //myled = 0;
mfwic 3:d8948c5b2951 107 //wait(1.0);
mfwic 0:44a3005d4f20 108
mfwic 1:9f8583ba2431 109 /*if (hv_cmptr1 == 1 && hv_cmptr2 == 1 && (hv_en == ON))
mfwic 0:44a3005d4f20 110 {
mfwic 0:44a3005d4f20 111 led_hv = ON;
mfwic 0:44a3005d4f20 112 }
mfwic 0:44a3005d4f20 113 else
mfwic 0:44a3005d4f20 114 {
mfwic 0:44a3005d4f20 115 led_hv = OFF;
mfwic 1:9f8583ba2431 116 }*/
mfwic 0:44a3005d4f20 117
mfwic 0:44a3005d4f20 118 /* Emergency Off Switch code
mfwic 0:44a3005d4f20 119 if ((stop_switch == 0) && (stopExecuted == 0))
mfwic 0:44a3005d4f20 120 {
mfwic 0:44a3005d4f20 121 resetOutput();
mfwic 0:44a3005d4f20 122 setBoardEnables(ALLOFF);
mfwic 0:44a3005d4f20 123 hv_en = OFF;
mfwic 0:44a3005d4f20 124 stopExecuted = 1;
mfwic 0:44a3005d4f20 125 }
mfwic 0:44a3005d4f20 126
mfwic 0:44a3005d4f20 127 if (stop_switch == 1)
mfwic 0:44a3005d4f20 128 {
mfwic 0:44a3005d4f20 129 stopExecuted = 0;
mfwic 0:44a3005d4f20 130 }
mfwic 0:44a3005d4f20 131 */
mfwic 0:44a3005d4f20 132 }
mfwic 0:44a3005d4f20 133 }
mfwic 0:44a3005d4f20 134