Treehouse Mbed Team / Mbed 2 deprecated APS_1U5x

Dependencies:   mbed

Committer:
mfwic
Date:
Mon Dec 03 01:03:14 2018 +0000
Revision:
6:39442d493098
Parent:
5:09be5bbb5020
Child:
7:860b3a8275cb
Added data line with periodic refresh.; Added MY12 menu function.; Fixed menu functions MULT, BRDS, MY12 so that commandData is properly assigned, LUT is used, and settings displayed.

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 0:44a3005d4f20 59
mfwic 0:44a3005d4f20 60 extchlat = OFF;
mfwic 6:39442d493098 61 wr_out_code = setBoardEnables(ALLOFF);
mfwic 6:39442d493098 62 //setBoardEnables((unsigned int *)alloff);
mfwic 6:39442d493098 63 en_out_code = setBoardWeights(ALLOFF); // RK: Maybe? Use hex value for boardWeights to highlight that it's an encoded value.
mfwic 0:44a3005d4f20 64
mfwic 5:09be5bbb5020 65 sprintf(strbuf, "\r\nAgility Power Systems DCM1 Rev 0.3"); //RK 10/26/2018
mfwic 3:d8948c5b2951 66 sendSerial(strbuf);
mfwic 3:d8948c5b2951 67 //sendCRLF();
mfwic 3:d8948c5b2951 68 menuPrompt(MENU_DCM1);
mfwic 3:d8948c5b2951 69
mfwic 0:44a3005d4f20 70 initSerial();
mfwic 6:39442d493098 71 initDRT();
mfwic 0:44a3005d4f20 72 initADC();
mfwic 6:39442d493098 73 getADCvolts();
mfwic 6:39442d493098 74 getADCamps();
mfwic 2:46faae84b8b0 75 menuRedraw();
mfwic 0:44a3005d4f20 76
mfwic 0:44a3005d4f20 77 while (1)
mfwic 0:44a3005d4f20 78 {
mfwic 0:44a3005d4f20 79 processCommand();
mfwic 4:db38665c3727 80
mfwic 6:39442d493098 81 getADCvolts();
mfwic 6:39442d493098 82 getADCamps();
mfwic 6:39442d493098 83
mfwic 6:39442d493098 84 if(updateReady){
mfwic 6:39442d493098 85 updateReady = FALSE;
mfwic 6:39442d493098 86 updateTerminal(); // May want to gate this call when we run a headless system.
mfwic 6:39442d493098 87 loopTime = masterTimer.read_ms();// - loopTime;
mfwic 6:39442d493098 88 }
mfwic 6:39442d493098 89
mfwic 4:db38665c3727 90 if(running){
mfwic 5:09be5bbb5020 91 //updateControls();
mfwic 6:39442d493098 92 updateControls(i12);
mfwic 6:39442d493098 93 }else{
mfwic 6:39442d493098 94 //wr_out_code = setBoardEnables(ALLOFF);
mfwic 6:39442d493098 95 //setBoardEnables((unsigned int *)alloff);
mfwic 6:39442d493098 96 updateControls(my12);
mfwic 4:db38665c3727 97 }
mfwic 4:db38665c3727 98
mfwic 3:d8948c5b2951 99 //myled = 1;
mfwic 3:d8948c5b2951 100 //wait(1.0);
mfwic 3:d8948c5b2951 101 //myled = 0;
mfwic 3:d8948c5b2951 102 //wait(1.0);
mfwic 0:44a3005d4f20 103
mfwic 1:9f8583ba2431 104 /*if (hv_cmptr1 == 1 && hv_cmptr2 == 1 && (hv_en == ON))
mfwic 0:44a3005d4f20 105 {
mfwic 0:44a3005d4f20 106 led_hv = ON;
mfwic 0:44a3005d4f20 107 }
mfwic 0:44a3005d4f20 108 else
mfwic 0:44a3005d4f20 109 {
mfwic 0:44a3005d4f20 110 led_hv = OFF;
mfwic 1:9f8583ba2431 111 }*/
mfwic 0:44a3005d4f20 112
mfwic 0:44a3005d4f20 113 /* Emergency Off Switch code
mfwic 0:44a3005d4f20 114 if ((stop_switch == 0) && (stopExecuted == 0))
mfwic 0:44a3005d4f20 115 {
mfwic 0:44a3005d4f20 116 resetOutput();
mfwic 0:44a3005d4f20 117 setBoardEnables(ALLOFF);
mfwic 0:44a3005d4f20 118 hv_en = OFF;
mfwic 0:44a3005d4f20 119 stopExecuted = 1;
mfwic 0:44a3005d4f20 120 }
mfwic 0:44a3005d4f20 121
mfwic 0:44a3005d4f20 122 if (stop_switch == 1)
mfwic 0:44a3005d4f20 123 {
mfwic 0:44a3005d4f20 124 stopExecuted = 0;
mfwic 0:44a3005d4f20 125 }
mfwic 0:44a3005d4f20 126 */
mfwic 0:44a3005d4f20 127 }
mfwic 0:44a3005d4f20 128 }
mfwic 0:44a3005d4f20 129