Treehouse Mbed Team / Mbed 2 deprecated APS_1U5x

Dependencies:   mbed

Committer:
mfwic
Date:
Sat Dec 08 01:53:36 2018 +0000
Revision:
12:fd1fd1857628
Parent:
11:01dcfb29fbc4
Child:
17:454afe56eedb
Added buck/boost modes.

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 11:01dcfb29fbc4 30 #include "adc_defs.h"
mfwic 0:44a3005d4f20 31 #include "adc.h"
mfwic 1:9f8583ba2431 32 #include "all_io.h"
mfwic 0:44a3005d4f20 33
mfwic 0:44a3005d4f20 34 void initADC(void){
mfwic 0:44a3005d4f20 35
mfwic 0:44a3005d4f20 36 }
mfwic 0:44a3005d4f20 37
mfwic 11:01dcfb29fbc4 38 /*******************************************************************************
mfwic 11:01dcfb29fbc4 39 getADCresults
mfwic 11:01dcfb29fbc4 40 *******************************************************************************/
mfwic 11:01dcfb29fbc4 41 struct adcValues getADCresults(void){
mfwic 8:d3d7dca419b3 42
mfwic 8:d3d7dca419b3 43 unsigned int v48x = 0;
mfwic 8:d3d7dca419b3 44 unsigned int v24x = 0;
mfwic 8:d3d7dca419b3 45 unsigned int v12x = 0;
mfwic 8:d3d7dca419b3 46 unsigned int i48x = 0;
mfwic 8:d3d7dca419b3 47 unsigned int i24x = 0;
mfwic 8:d3d7dca419b3 48 unsigned int i12x = 0;
mfwic 8:d3d7dca419b3 49
mfwic 11:01dcfb29fbc4 50 struct adcValues avals;
mfwic 9:816b9a4e4f21 51 unsigned int loopCounter = LOOP_COUNTER;
mfwic 9:816b9a4e4f21 52
mfwic 9:816b9a4e4f21 53 for(unsigned int i=0;i<loopCounter;i++){
mfwic 8:d3d7dca419b3 54 v48x = v48x + VIN48.read_u16();
mfwic 12:fd1fd1857628 55 i48x = i48x + IIN48.read_u16();
mfwic 8:d3d7dca419b3 56 v24x = v24x + VIN24.read_u16();
mfwic 12:fd1fd1857628 57 i24x = i24x + IIN24.read_u16();
mfwic 8:d3d7dca419b3 58 v12x = v12x + VIN12.read_u16();
mfwic 8:d3d7dca419b3 59 i12x = i12x + IIN12.read_u16();
mfwic 8:d3d7dca419b3 60 }
mfwic 11:01dcfb29fbc4 61 avals.v48 = v48x/loopCounter;
mfwic 11:01dcfb29fbc4 62 avals.v24 = v24x/loopCounter;
mfwic 11:01dcfb29fbc4 63 avals.v12 = v12x/loopCounter;
mfwic 11:01dcfb29fbc4 64 avals.i48 = i48x/loopCounter;
mfwic 11:01dcfb29fbc4 65 avals.i24 = i24x/loopCounter;
mfwic 11:01dcfb29fbc4 66 avals.i12 = i12x/loopCounter;
mfwic 11:01dcfb29fbc4 67
mfwic 11:01dcfb29fbc4 68 return avals;
mfwic 8:d3d7dca419b3 69 }
mfwic 8:d3d7dca419b3 70
mfwic 11:01dcfb29fbc4 71 /*******************************************************************************
mfwic 11:01dcfb29fbc4 72 getADCvolts
mfwic 11:01dcfb29fbc4 73 *******************************************************************************/
mfwic 11:01dcfb29fbc4 74 struct adcValues getADCvolts(void){
mfwic 8:d3d7dca419b3 75
mfwic 8:d3d7dca419b3 76 unsigned int v48x = 0;
mfwic 8:d3d7dca419b3 77 unsigned int v24x = 0;
mfwic 8:d3d7dca419b3 78 unsigned int v12x = 0;
mfwic 8:d3d7dca419b3 79
mfwic 11:01dcfb29fbc4 80 struct adcValues avals;
mfwic 11:01dcfb29fbc4 81
mfwic 8:d3d7dca419b3 82 for(unsigned int i=0;i<100;i++){
mfwic 8:d3d7dca419b3 83 v48x = v48x + VIN48.read_u16();
mfwic 8:d3d7dca419b3 84 v24x = v24x + VIN24.read_u16();
mfwic 8:d3d7dca419b3 85 v12x = v12x + VIN12.read_u16();
mfwic 8:d3d7dca419b3 86 }
mfwic 11:01dcfb29fbc4 87 avals.v48 = v48x/100;
mfwic 11:01dcfb29fbc4 88 avals.v24 = v24x/100;
mfwic 11:01dcfb29fbc4 89 avals.v12 = v12x/100;
mfwic 11:01dcfb29fbc4 90
mfwic 11:01dcfb29fbc4 91 return avals;
mfwic 0:44a3005d4f20 92 }
mfwic 0:44a3005d4f20 93
mfwic 11:01dcfb29fbc4 94 /*******************************************************************************
mfwic 11:01dcfb29fbc4 95 getADCamps
mfwic 11:01dcfb29fbc4 96 *******************************************************************************/
mfwic 11:01dcfb29fbc4 97 struct adcValues getADCamps(void){
mfwic 8:d3d7dca419b3 98
mfwic 8:d3d7dca419b3 99 unsigned int i48x = 0;
mfwic 8:d3d7dca419b3 100 unsigned int i24x = 0;
mfwic 8:d3d7dca419b3 101 unsigned int i12x = 0;
mfwic 8:d3d7dca419b3 102
mfwic 11:01dcfb29fbc4 103 struct adcValues avals;
mfwic 11:01dcfb29fbc4 104
mfwic 8:d3d7dca419b3 105 for(unsigned int i=0;i<100;i++){
mfwic 8:d3d7dca419b3 106 i48x = i48x + IIN48.read_u16();
mfwic 8:d3d7dca419b3 107 i24x = i24x + IIN24.read_u16();
mfwic 8:d3d7dca419b3 108 i12x = i12x = IIN12.read_u16();
mfwic 8:d3d7dca419b3 109 }
mfwic 11:01dcfb29fbc4 110 avals.i48 = i48x/100;
mfwic 11:01dcfb29fbc4 111 avals.i24 = i24x/100;
mfwic 11:01dcfb29fbc4 112 avals.i12 = i12x/100;
mfwic 11:01dcfb29fbc4 113
mfwic 11:01dcfb29fbc4 114 return avals;
mfwic 11:01dcfb29fbc4 115 }
mfwic 11:01dcfb29fbc4 116
mfwic 11:01dcfb29fbc4 117 /*******************************************************************************
mfwic 11:01dcfb29fbc4 118 calcDisplayValues
mfwic 11:01dcfb29fbc4 119 *******************************************************************************/
mfwic 11:01dcfb29fbc4 120 struct displayValues calcDisplayValues(struct adcValues avals){
mfwic 11:01dcfb29fbc4 121
mfwic 11:01dcfb29fbc4 122 struct displayValues dvals;
mfwic 11:01dcfb29fbc4 123
mfwic 11:01dcfb29fbc4 124 if(!raw){
mfwic 11:01dcfb29fbc4 125 dvals.v48f = VOLTAGE_48_FACTOR*avals.v48;
mfwic 11:01dcfb29fbc4 126 dvals.v24f = VOLTAGE_24_FACTOR*avals.v24;
mfwic 11:01dcfb29fbc4 127 dvals.v12f = VOLTAGE_12_FACTOR*avals.v12;
mfwic 12:fd1fd1857628 128 dvals.i48f = ((avals.i48-CURRENT_48_OFFSET)/CURRENT_48_DIV_FACTOR)-CURRENT_CONTROL_OFFSET;
mfwic 11:01dcfb29fbc4 129 dvals.i24f = (avals.i24-CURRENT_24_OFFSET)/CURRENT_24_DIV_FACTOR;
mfwic 11:01dcfb29fbc4 130 dvals.i12f = (avals.i12-CURRENT_12_OFFSET)/CURRENT_12_DIV_FACTOR;
mfwic 11:01dcfb29fbc4 131 }else{
mfwic 12:fd1fd1857628 132 dvals.v48f = 1.0*avals.v48-CURRENT_CONTROL_OFFSET;
mfwic 11:01dcfb29fbc4 133 dvals.v24f = 1.0*avals.v24;
mfwic 11:01dcfb29fbc4 134 dvals.v12f = 1.0*avals.v12;
mfwic 11:01dcfb29fbc4 135 dvals.i48f = 1.0*avals.i48;
mfwic 11:01dcfb29fbc4 136 dvals.i24f = 1.0*avals.i24;
mfwic 11:01dcfb29fbc4 137 dvals.i12f = 1.0*avals.i12;
mfwic 11:01dcfb29fbc4 138 }
mfwic 11:01dcfb29fbc4 139 return dvals;
mfwic 0:44a3005d4f20 140 }