Treehouse Mbed Team / Mbed 2 deprecated APS_DCM1SL

Dependencies:   mbed

Committer:
mfwic
Date:
Sat Dec 01 00:08:53 2018 +0000
Revision:
5:09be5bbb5020
Parent:
4:db38665c3727
Child:
6:39442d493098
Modified parseCommand to take commands with data assignment.; e.g. MULT=1 is parsed into commandString is MULT, commandData is 1.

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 "boards.h"
mfwic 0:44a3005d4f20 32 #include "all_io.h"
mfwic 0:44a3005d4f20 33 #include "serial.h"
mfwic 0:44a3005d4f20 34 #include "stdio.h"
mfwic 0:44a3005d4f20 35 #include "parameters.h"
mfwic 4:db38665c3727 36 #include "lut.h"
mfwic 0:44a3005d4f20 37
mfwic 0:44a3005d4f20 38 unsigned int boardEnableBits;
mfwic 0:44a3005d4f20 39
mfwic 0:44a3005d4f20 40
mfwic 0:44a3005d4f20 41 void delay(long ticks)
mfwic 0:44a3005d4f20 42 {
mfwic 0:44a3005d4f20 43 long i;
mfwic 0:44a3005d4f20 44 for(i=0;i<ticks;i++);
mfwic 0:44a3005d4f20 45 }
mfwic 0:44a3005d4f20 46
mfwic 4:db38665c3727 47 void setBoardEnables(unsigned int enableBits[])
mfwic 0:44a3005d4f20 48 {
mfwic 0:44a3005d4f20 49 unsigned int i, boardEnable;
mfwic 0:44a3005d4f20 50
mfwic 0:44a3005d4f20 51 // Default is all boards OFF
mfwic 0:44a3005d4f20 52 unsigned int boardsEnabled = ALLOFF;
mfwic 0:44a3005d4f20 53
mfwic 0:44a3005d4f20 54 for (i = 0; i < MAX_BOARDS; i++)
mfwic 0:44a3005d4f20 55 {
mfwic 0:44a3005d4f20 56 // 0 == enabled
mfwic 4:db38665c3727 57 boardEnable = (enableBits[i] & (1 << i));
mfwic 0:44a3005d4f20 58
mfwic 0:44a3005d4f20 59 }
mfwic 0:44a3005d4f20 60
mfwic 0:44a3005d4f20 61 wr_out = boardEnable;
mfwic 0:44a3005d4f20 62
mfwic 0:44a3005d4f20 63 }
mfwic 0:44a3005d4f20 64
mfwic 4:db38665c3727 65 void setBoardWeights(unsigned int enableWeights[])
mfwic 0:44a3005d4f20 66 {
mfwic 0:44a3005d4f20 67 unsigned int i, boardWeight;
mfwic 0:44a3005d4f20 68
mfwic 0:44a3005d4f20 69 for (i = 0; i < MAX_BOARDS; i++)
mfwic 0:44a3005d4f20 70 {
mfwic 0:44a3005d4f20 71 // 0 == enabled
mfwic 4:db38665c3727 72 boardWeight = (enableWeights[i] & (1 << i));
mfwic 0:44a3005d4f20 73
mfwic 0:44a3005d4f20 74 }
mfwic 0:44a3005d4f20 75
mfwic 0:44a3005d4f20 76 en_out = boardWeight;
mfwic 0:44a3005d4f20 77 toggleLatchSignal();
mfwic 0:44a3005d4f20 78
mfwic 0:44a3005d4f20 79 }
mfwic 0:44a3005d4f20 80
mfwic 0:44a3005d4f20 81 void toggleLatchSignal(void){
mfwic 0:44a3005d4f20 82 extchlat = OFF;
mfwic 0:44a3005d4f20 83 extchlat = ON;
mfwic 0:44a3005d4f20 84 extchlat = OFF;
mfwic 0:44a3005d4f20 85 }
mfwic 0:44a3005d4f20 86
mfwic 0:44a3005d4f20 87 void initDACs(void)
mfwic 0:44a3005d4f20 88 {
mfwic 1:9f8583ba2431 89 //setupDacInit();
mfwic 1:9f8583ba2431 90 //sendDACs(dinitbits);
mfwic 0:44a3005d4f20 91 }
mfwic 1:9f8583ba2431 92
mfwic 1:9f8583ba2431 93 /************************************************************
mfwic 1:9f8583ba2431 94 * Routine: checkRange
mfwic 1:9f8583ba2431 95 * Input: setval
mfwic 1:9f8583ba2431 96 * limlo -- low limit
mfwic 1:9f8583ba2431 97 * limhi -- high limit
mfwic 1:9f8583ba2431 98 * Returns: 1 if entry validates and is written
mfwic 1:9f8583ba2431 99 * 0 if entry fails
mfwic 1:9f8583ba2431 100 * -1 if it slips past
mfwic 1:9f8583ba2431 101 * Description:
mfwic 1:9f8583ba2431 102 * Checks if setvalue is between the given limits.
mfwic 1:9f8583ba2431 103 *
mfwic 1:9f8583ba2431 104 **************************************************************/
mfwic 1:9f8583ba2431 105 int checkRange(int setvalue, int limlo, int limhi)
mfwic 1:9f8583ba2431 106 {
mfwic 1:9f8583ba2431 107
mfwic 1:9f8583ba2431 108 if ((setvalue >= limlo) && (setvalue <= limhi))
mfwic 1:9f8583ba2431 109 {
mfwic 1:9f8583ba2431 110 return 1;
mfwic 1:9f8583ba2431 111 }
mfwic 1:9f8583ba2431 112 else
mfwic 1:9f8583ba2431 113 {
mfwic 1:9f8583ba2431 114 showRangeError(0, 0, setvalue);
mfwic 1:9f8583ba2431 115 return 0;
mfwic 1:9f8583ba2431 116 }
mfwic 1:9f8583ba2431 117
mfwic 4:db38665c3727 118 }
mfwic 4:db38665c3727 119
mfwic 4:db38665c3727 120 // start the converter
mfwic 4:db38665c3727 121 // RK: ch[i][reg].enabled has not been used correctly yet. Need to modify that code.
mfwic 4:db38665c3727 122 void startConverter(unsigned int reg)
mfwic 4:db38665c3727 123 {
mfwic 4:db38665c3727 124
mfwic 4:db38665c3727 125 int i;
mfwic 4:db38665c3727 126 //float period;
mfwic 4:db38665c3727 127
mfwic 4:db38665c3727 128 running = TRUE;
mfwic 4:db38665c3727 129
mfwic 4:db38665c3727 130 unsigned int boardsEnabled = 0;
mfwic 4:db38665c3727 131
mfwic 4:db38665c3727 132 char stemp[50];
mfwic 4:db38665c3727 133
mfwic 4:db38665c3727 134 for (i = 0; i < MAX_BOARDS; i++)
mfwic 4:db38665c3727 135 {
mfwic 4:db38665c3727 136 //if (ch[i][reg].enabled == 1)
mfwic 4:db38665c3727 137 //{
mfwic 4:db38665c3727 138 // Set the corresponding bit
mfwic 4:db38665c3727 139 boardsEnabled |= (1 << i);
mfwic 4:db38665c3727 140
mfwic 4:db38665c3727 141 sprintf(stemp, "\n\rBoard %d RUNNING", i + 1);
mfwic 4:db38665c3727 142 sendSerial(stemp);
mfwic 4:db38665c3727 143 //}
mfwic 4:db38665c3727 144 }
mfwic 4:db38665c3727 145
mfwic 4:db38665c3727 146 // Invert the bits because 0 == enabled on the SPI write
mfwic 4:db38665c3727 147 //boardsEnabled = ~boardsEnabled;
mfwic 4:db38665c3727 148
mfwic 4:db38665c3727 149 // Fire in the hole!
mfwic 4:db38665c3727 150 setBoardEnables(thermCode);
mfwic 4:db38665c3727 151
mfwic 4:db38665c3727 152 //setupRunVoltages();
mfwic 4:db38665c3727 153
mfwic 4:db38665c3727 154 //currentRegister = reg;
mfwic 4:db38665c3727 155
mfwic 4:db38665c3727 156 //pulser.attach_us(&pulserInt, period);
mfwic 4:db38665c3727 157 }
mfwic 4:db38665c3727 158
mfwic 4:db38665c3727 159 // stop the converter and set outputs to 0
mfwic 4:db38665c3727 160 void stopConverter(void)
mfwic 4:db38665c3727 161 {
mfwic 4:db38665c3727 162 //pulser.detach();
mfwic 4:db38665c3727 163 setBoardEnables(ALLOFF);
mfwic 4:db38665c3727 164 running = FALSE;
mfwic 4:db38665c3727 165
mfwic 4:db38665c3727 166 }
mfwic 4:db38665c3727 167
mfwic 5:09be5bbb5020 168 void updateControls(int my12){
mfwic 5:09be5bbb5020 169 //getLUTcode(i12);
mfwic 5:09be5bbb5020 170 getLUTcode(my12);
mfwic 4:db38665c3727 171 setBoardEnables(thermCode);
mfwic 4:db38665c3727 172 setBoardWeights(binCode);
mfwic 1:9f8583ba2431 173 }