Treehouse Mbed Team / Mbed 2 deprecated APS_1U5x

Dependencies:   mbed

Committer:
mfwic
Date:
Fri Dec 07 00:15:19 2018 +0000
Revision:
9:816b9a4e4f21
Parent:
8:d3d7dca419b3
Child:
10:6c3233b03658
Added 1024 entry LUT.; Has bug if my12 > 21247

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 8:d3d7dca419b3 39 #include "command.h"
mfwic 1:9f8583ba2431 40
mfwic 1:9f8583ba2431 41 unsigned int boardsActive;
mfwic 5:09be5bbb5020 42 unsigned int boardMults;
mfwic 9:816b9a4e4f21 43 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 9:816b9a4e4f21 44 unsigned short i48, i24, i12;
mfwic 4:db38665c3727 45 unsigned int binCode[6];
mfwic 6:39442d493098 46 unsigned int en_out_code;
mfwic 4:db38665c3727 47 unsigned int thermCode[17];
mfwic 6:39442d493098 48 unsigned int wr_out_code;
mfwic 5:09be5bbb5020 49 unsigned int commandData;
mfwic 6:39442d493098 50 unsigned short my12=0;
mfwic 6:39442d493098 51 unsigned int updateRefreshTicks=0;
mfwic 6:39442d493098 52 volatile bool updateReady = FALSE;
mfwic 6:39442d493098 53 unsigned int loopTime = 0;
mfwic 8:d3d7dca419b3 54 bool raw = FALSE;
mfwic 6:39442d493098 55
mfwic 6:39442d493098 56 Timer masterTimer;
mfwic 0:44a3005d4f20 57
mfwic 0:44a3005d4f20 58 int main()
mfwic 0:44a3005d4f20 59 {
mfwic 4:db38665c3727 60 //int stopExecuted = 0;
mfwic 7:860b3a8275cb 61 myled = 0;
mfwic 0:44a3005d4f20 62 extchlat = OFF;
mfwic 6:39442d493098 63 wr_out_code = setBoardEnables(ALLOFF);
mfwic 7:860b3a8275cb 64 running = FALSE;
mfwic 6:39442d493098 65 //setBoardEnables((unsigned int *)alloff);
mfwic 6:39442d493098 66 en_out_code = setBoardWeights(ALLOFF); // RK: Maybe? Use hex value for boardWeights to highlight that it's an encoded value.
mfwic 0:44a3005d4f20 67
mfwic 7:860b3a8275cb 68 initSerial();
mfwic 8:d3d7dca419b3 69
mfwic 3:d8948c5b2951 70 //sendCRLF();
mfwic 8:d3d7dca419b3 71 //menuPrompt(MENU_DCM1);
mfwic 3:d8948c5b2951 72
mfwic 7:860b3a8275cb 73 initDRT(); // Display Refresh Timer
mfwic 7:860b3a8275cb 74
mfwic 0:44a3005d4f20 75 initADC();
mfwic 8:d3d7dca419b3 76 //getADCvolts();
mfwic 8:d3d7dca419b3 77 //getADCamps();
mfwic 8:d3d7dca419b3 78 getADCresults();
mfwic 7:860b3a8275cb 79
mfwic 8:d3d7dca419b3 80 splash_screen();
mfwic 8:d3d7dca419b3 81 sprintf(strbuf, "\r\nPress Enter to continue");
mfwic 8:d3d7dca419b3 82 sendSerial(strbuf);
mfwic 8:d3d7dca419b3 83 while(waitCommand()){
mfwic 8:d3d7dca419b3 84 }
mfwic 8:d3d7dca419b3 85
mfwic 8:d3d7dca419b3 86 menuRedraw(WITH_PROMPT);
mfwic 8:d3d7dca419b3 87
mfwic 8:d3d7dca419b3 88 //masterTimer.start();
mfwic 9:816b9a4e4f21 89 //int count=0;
mfwic 0:44a3005d4f20 90 while (1)
mfwic 0:44a3005d4f20 91 {
mfwic 0:44a3005d4f20 92 processCommand();
mfwic 4:db38665c3727 93
mfwic 8:d3d7dca419b3 94 //getADCvolts();
mfwic 8:d3d7dca419b3 95 //getADCamps();
mfwic 8:d3d7dca419b3 96 getADCresults();
mfwic 6:39442d493098 97
mfwic 6:39442d493098 98 if(updateReady){
mfwic 6:39442d493098 99 updateReady = FALSE;
mfwic 6:39442d493098 100 updateTerminal(); // May want to gate this call when we run a headless system.
mfwic 7:860b3a8275cb 101 //loopTime = masterTimer.read_ms();// - loopTime;
mfwic 7:860b3a8275cb 102 myled = !myled;
mfwic 9:816b9a4e4f21 103 //sprintf(strbuf, "\r\nupdateControls ran %d times.\r\n", count);
mfwic 9:816b9a4e4f21 104 //sendSerial(strbuf);
mfwic 9:816b9a4e4f21 105 //count=0;
mfwic 6:39442d493098 106 }
mfwic 6:39442d493098 107
mfwic 4:db38665c3727 108 if(running){
mfwic 6:39442d493098 109 updateControls(i12);
mfwic 9:816b9a4e4f21 110 //count++;
mfwic 6:39442d493098 111 }else{
mfwic 9:816b9a4e4f21 112 XupdateControls(my12);
mfwic 4:db38665c3727 113 }
mfwic 4:db38665c3727 114
mfwic 3:d8948c5b2951 115 //myled = 1;
mfwic 3:d8948c5b2951 116 //wait(1.0);
mfwic 3:d8948c5b2951 117 //myled = 0;
mfwic 3:d8948c5b2951 118 //wait(1.0);
mfwic 0:44a3005d4f20 119
mfwic 1:9f8583ba2431 120 /*if (hv_cmptr1 == 1 && hv_cmptr2 == 1 && (hv_en == ON))
mfwic 0:44a3005d4f20 121 {
mfwic 0:44a3005d4f20 122 led_hv = ON;
mfwic 0:44a3005d4f20 123 }
mfwic 0:44a3005d4f20 124 else
mfwic 0:44a3005d4f20 125 {
mfwic 0:44a3005d4f20 126 led_hv = OFF;
mfwic 1:9f8583ba2431 127 }*/
mfwic 0:44a3005d4f20 128
mfwic 0:44a3005d4f20 129 /* Emergency Off Switch code
mfwic 0:44a3005d4f20 130 if ((stop_switch == 0) && (stopExecuted == 0))
mfwic 0:44a3005d4f20 131 {
mfwic 0:44a3005d4f20 132 resetOutput();
mfwic 0:44a3005d4f20 133 setBoardEnables(ALLOFF);
mfwic 0:44a3005d4f20 134 hv_en = OFF;
mfwic 0:44a3005d4f20 135 stopExecuted = 1;
mfwic 0:44a3005d4f20 136 }
mfwic 0:44a3005d4f20 137
mfwic 0:44a3005d4f20 138 if (stop_switch == 1)
mfwic 0:44a3005d4f20 139 {
mfwic 0:44a3005d4f20 140 stopExecuted = 0;
mfwic 0:44a3005d4f20 141 }
mfwic 0:44a3005d4f20 142 */
mfwic 0:44a3005d4f20 143 }
mfwic 0:44a3005d4f20 144 }
mfwic 0:44a3005d4f20 145