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:
7:860b3a8275cb
Child:
11:01dcfb29fbc4
Added 1024 entry LUT.; Has bug if my12 > 21247

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mfwic 4:db38665c3727 1 //-------------------------------------------------------------------------------
mfwic 4:db38665c3727 2 //
mfwic 4:db38665c3727 3 // Treehouse Designs Inc.
mfwic 4:db38665c3727 4 // Colorado Springs, Colorado
mfwic 4:db38665c3727 5 //
mfwic 4:db38665c3727 6 // Copyright (c) 2016 by Treehouse Designs Inc.
mfwic 4:db38665c3727 7 // Copyright (c) 2018 by Agility Power Systems Inc.
mfwic 4:db38665c3727 8 //
mfwic 4:db38665c3727 9 // This code is the property of Treehouse Designs, Inc. (Treehouse) and
mfwic 4:db38665c3727 10 // Agility Power Systems Inc. (Agility) and may not be redistributed
mfwic 4:db38665c3727 11 // in any form without prior written permission from
mfwic 4:db38665c3727 12 // both copyright holders, Treehouse and Agility.
mfwic 4:db38665c3727 13 //
mfwic 4:db38665c3727 14 // The above copyright notice and this permission notice shall be included in
mfwic 4:db38665c3727 15 // all copies or substantial portions of the Software.
mfwic 4:db38665c3727 16 //
mfwic 4:db38665c3727 17 //
mfwic 4:db38665c3727 18 //-------------------------------------------------------------------------------
mfwic 4:db38665c3727 19 //
mfwic 4:db38665c3727 20 // REVISION HISTORY:
mfwic 4:db38665c3727 21 //
mfwic 4:db38665c3727 22 // $Author: $
mfwic 4:db38665c3727 23 // $Rev: $
mfwic 4:db38665c3727 24 // $Date: $
mfwic 4:db38665c3727 25 // $URL: $
mfwic 4:db38665c3727 26 //
mfwic 4:db38665c3727 27 //-------------------------------------------------------------------------------
mfwic 4:db38665c3727 28
mfwic 4:db38665c3727 29 #include "mbed.h"
mfwic 5:09be5bbb5020 30 #include "stdint.h"
mfwic 6:39442d493098 31 #include "globals.h"
mfwic 4:db38665c3727 32 #include "lut.h"
mfwic 4:db38665c3727 33
mfwic 4:db38665c3727 34 //unsigned int binCode[6];
mfwic 9:816b9a4e4f21 35 /*
mfwic 5:09be5bbb5020 36 #define MAX_LUT_ENTRIES 1024
mfwic 5:09be5bbb5020 37
mfwic 7:860b3a8275cb 38 uint8_t binC[MAX_LUT_ENTRIES] { 0, 1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
mfwic 7:860b3a8275cb 39 uint8_t thermC[MAX_LUT_ENTRIES]{ 0, 0, 1, 1, 2, 2, 3, 3, 4, 5};
mfwic 9:816b9a4e4f21 40 */
mfwic 9:816b9a4e4f21 41
mfwic 9:816b9a4e4f21 42 #include "lut_data_en_v1.h"
mfwic 9:816b9a4e4f21 43 #include "lut_data_slot_v1.h"
mfwic 5:09be5bbb5020 44
mfwic 6:39442d493098 45 /*******************************************************************************
mfwic 6:39442d493098 46 dec2bin_fix - Converts decimal to binary with fixed width as specified.
mfwic 6:39442d493098 47 *******************************************************************************/
mfwic 6:39442d493098 48 void dec2bin_fix(unsigned int dec, unsigned int n){
mfwic 4:db38665c3727 49 int k;
mfwic 4:db38665c3727 50
mfwic 6:39442d493098 51 for (int c = 5; c >= 0; c--){
mfwic 4:db38665c3727 52 k = dec >> c;
mfwic 4:db38665c3727 53 if (k & 1)
mfwic 4:db38665c3727 54 binCode[n] = 1;
mfwic 4:db38665c3727 55 else
mfwic 4:db38665c3727 56 binCode[n] = 0;
mfwic 4:db38665c3727 57 n--;
mfwic 4:db38665c3727 58 }
mfwic 4:db38665c3727 59 }
mfwic 4:db38665c3727 60
mfwic 6:39442d493098 61 /*******************************************************************************
mfwic 6:39442d493098 62 dec2therm_fix - Converts decimal to thermometer code with fixed width as specified.
mfwic 6:39442d493098 63 *******************************************************************************/
mfwic 6:39442d493098 64 void dec2therm_fix(unsigned int dec, unsigned int n){
mfwic 6:39442d493098 65 for (int i = 0; i <= n; i++){
mfwic 4:db38665c3727 66 thermCode[i] = 0;
mfwic 4:db38665c3727 67 }
mfwic 4:db38665c3727 68
mfwic 6:39442d493098 69 for (int i = 0; i <= dec; i++){
mfwic 4:db38665c3727 70 thermCode[i] = 1;
mfwic 4:db38665c3727 71 }
mfwic 6:39442d493098 72 }
mfwic 6:39442d493098 73
mfwic 6:39442d493098 74 /*******************************************************************************
mfwic 6:39442d493098 75 getLUTcode - gets output codes from LUT using row reference.
mfwic 6:39442d493098 76 *******************************************************************************/
mfwic 6:39442d493098 77 void getLUTcode(unsigned short row){
mfwic 6:39442d493098 78
mfwic 6:39442d493098 79 dec2bin_fix(binC[row], (unsigned int)WEIGHT_BIN_WIDTH);
mfwic 6:39442d493098 80 dec2therm_fix(thermC[row], (unsigned int)BOARDS_THERMCODE_WIDTH);
mfwic 4:db38665c3727 81
mfwic 4:db38665c3727 82 }
mfwic 4:db38665c3727 83
mfwic 6:39442d493098 84 /*******************************************************************************
mfwic 6:39442d493098 85 getLUT_binCode - gets output codes from LUT using row reference.
mfwic 6:39442d493098 86 *******************************************************************************/
mfwic 6:39442d493098 87 unsigned int getLUT_binCode(unsigned short row){
mfwic 6:39442d493098 88 return binC[row];
mfwic 6:39442d493098 89 }
mfwic 4:db38665c3727 90
mfwic 6:39442d493098 91 /*******************************************************************************
mfwic 6:39442d493098 92 getLUT_binCode - gets output codes from LUT using row reference.
mfwic 6:39442d493098 93 *******************************************************************************/
mfwic 6:39442d493098 94 unsigned int getLUT_thermCode(unsigned short row){
mfwic 6:39442d493098 95 return thermC[row];
mfwic 4:db38665c3727 96 }