ML5238
measure.h@0:6a895c900427, 2019-04-15 (annotated)
- Committer:
- gscuttari
- Date:
- Mon Apr 15 10:20:43 2019 +0000
- Revision:
- 0:6a895c900427
ML5238
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gscuttari | 0:6a895c900427 | 1 | /***************************************************************************** |
gscuttari | 0:6a895c900427 | 2 | measure.h |
gscuttari | 0:6a895c900427 | 3 | |
gscuttari | 0:6a895c900427 | 4 | Copyright (C) 2012 LAPIS Semiconductor Co., Ltd. |
gscuttari | 0:6a895c900427 | 5 | All rights reserved. |
gscuttari | 0:6a895c900427 | 6 | |
gscuttari | 0:6a895c900427 | 7 | LAPIS Semiconductor shall not be liable for any direct, indirect, |
gscuttari | 0:6a895c900427 | 8 | consequential or incidental damages arising from using or modifying this |
gscuttari | 0:6a895c900427 | 9 | program. |
gscuttari | 0:6a895c900427 | 10 | |
gscuttari | 0:6a895c900427 | 11 | History |
gscuttari | 0:6a895c900427 | 12 | 2012.11.20 ver.2.00 |
gscuttari | 0:6a895c900427 | 13 | 2012.09.13 ver.1.00 |
gscuttari | 0:6a895c900427 | 14 | ******************************************************************************/ |
gscuttari | 0:6a895c900427 | 15 | #ifndef _MEASURE_H_ |
gscuttari | 0:6a895c900427 | 16 | #define _MEASURE_H_ |
gscuttari | 0:6a895c900427 | 17 | |
gscuttari | 0:6a895c900427 | 18 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 19 | /*# Struct #*/ |
gscuttari | 0:6a895c900427 | 20 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 21 | typedef struct{ |
gscuttari | 0:6a895c900427 | 22 | unsigned short Visense10; |
gscuttari | 0:6a895c900427 | 23 | unsigned short Visense50; |
gscuttari | 0:6a895c900427 | 24 | unsigned short Vim010; |
gscuttari | 0:6a895c900427 | 25 | unsigned short Vim050; |
gscuttari | 0:6a895c900427 | 26 | /* |
gscuttari | 0:6a895c900427 | 27 | unsigned short Vim110; |
gscuttari | 0:6a895c900427 | 28 | unsigned short Vim150; |
gscuttari | 0:6a895c900427 | 29 | unsigned short VR10; |
gscuttari | 0:6a895c900427 | 30 | unsigned short VR50; |
gscuttari | 0:6a895c900427 | 31 | */ |
gscuttari | 0:6a895c900427 | 32 | unsigned short Rsense; |
gscuttari | 0:6a895c900427 | 33 | unsigned short Count_DC; |
gscuttari | 0:6a895c900427 | 34 | |
gscuttari | 0:6a895c900427 | 35 | unsigned char Count_ODC; |
gscuttari | 0:6a895c900427 | 36 | unsigned char Count_OD2; |
gscuttari | 0:6a895c900427 | 37 | unsigned char curState; |
gscuttari | 0:6a895c900427 | 38 | unsigned char DetectForbitFlag; //bit0:charge over current detection, bit1:discharge over current1 detection, bit2:discharge over current2 detection |
gscuttari | 0:6a895c900427 | 39 | |
gscuttari | 0:6a895c900427 | 40 | }CurDetSt; |
gscuttari | 0:6a895c900427 | 41 | |
gscuttari | 0:6a895c900427 | 42 | typedef struct{ |
gscuttari | 0:6a895c900427 | 43 | unsigned long Vsum; |
gscuttari | 0:6a895c900427 | 44 | unsigned short OvChDelaytime; |
gscuttari | 0:6a895c900427 | 45 | unsigned short OvChstate; |
gscuttari | 0:6a895c900427 | 46 | unsigned short OvDisDelaytime; |
gscuttari | 0:6a895c900427 | 47 | unsigned short OvDisstate; |
gscuttari | 0:6a895c900427 | 48 | }CellDetSt; |
gscuttari | 0:6a895c900427 | 49 | |
gscuttari | 0:6a895c900427 | 50 | typedef struct { |
gscuttari | 0:6a895c900427 | 51 | unsigned short Vt_pcb; |
gscuttari | 0:6a895c900427 | 52 | unsigned short UChDelayCount; |
gscuttari | 0:6a895c900427 | 53 | unsigned short UDisDelayCount; |
gscuttari | 0:6a895c900427 | 54 | unsigned short OChDelayCount; |
gscuttari | 0:6a895c900427 | 55 | unsigned short ODisDelayCount; |
gscuttari | 0:6a895c900427 | 56 | unsigned char Tadr; |
gscuttari | 0:6a895c900427 | 57 | unsigned char DetectForbitFlag; //bit0:under tempe charge forbit, bit1:under tempe discharge forbit, bit2:over tempe charge forbit, bit3:over tempe discharge forbit |
gscuttari | 0:6a895c900427 | 58 | }TempeDetSt; |
gscuttari | 0:6a895c900427 | 59 | |
gscuttari | 0:6a895c900427 | 60 | typedef struct{ |
gscuttari | 0:6a895c900427 | 61 | unsigned char UChState; |
gscuttari | 0:6a895c900427 | 62 | unsigned char UDisState; |
gscuttari | 0:6a895c900427 | 63 | unsigned char OChState; |
gscuttari | 0:6a895c900427 | 64 | unsigned char ODisState; |
gscuttari | 0:6a895c900427 | 65 | // unsigned short delayCount; |
gscuttari | 0:6a895c900427 | 66 | TempeDetSt* res; |
gscuttari | 0:6a895c900427 | 67 | unsigned char TempFlag; |
gscuttari | 0:6a895c900427 | 68 | }TempeSt; |
gscuttari | 0:6a895c900427 | 69 | |
gscuttari | 0:6a895c900427 | 70 | |
gscuttari | 0:6a895c900427 | 71 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 72 | /*# Variable #*/ |
gscuttari | 0:6a895c900427 | 73 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 74 | |
gscuttari | 0:6a895c900427 | 75 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 76 | /*# define #*/ |
gscuttari | 0:6a895c900427 | 77 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 78 | |
gscuttari | 0:6a895c900427 | 79 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 80 | /*# Return #*/ |
gscuttari | 0:6a895c900427 | 81 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 82 | #define MEAS_R_OK (0) |
gscuttari | 0:6a895c900427 | 83 | #define MEAS_R_ERR_NULL (-1) |
gscuttari | 0:6a895c900427 | 84 | |
gscuttari | 0:6a895c900427 | 85 | #define CUR_NOR (0x00u) |
gscuttari | 0:6a895c900427 | 86 | #define CUR_CHRG (0x01u) |
gscuttari | 0:6a895c900427 | 87 | #define CUR_DISCHRG (0x02u) |
gscuttari | 0:6a895c900427 | 88 | #define CUR_OVCHRG (0x04u) |
gscuttari | 0:6a895c900427 | 89 | #define CUR_OVDISCHRG1 (0x08u) |
gscuttari | 0:6a895c900427 | 90 | #define CUR_OVDISCHRG2 (0x10u) |
gscuttari | 0:6a895c900427 | 91 | |
gscuttari | 0:6a895c900427 | 92 | #define CELL_VOL_NOR (0x00u) |
gscuttari | 0:6a895c900427 | 93 | #define CELL_VOL_OVD (0x02u) |
gscuttari | 0:6a895c900427 | 94 | #define CELL_VOL_OVC (0x01u) |
gscuttari | 0:6a895c900427 | 95 | #define CELL_VOL_OVCD (0x04u) |
gscuttari | 0:6a895c900427 | 96 | #define CELL_VOL_PD (0x05u) |
gscuttari | 0:6a895c900427 | 97 | |
gscuttari | 0:6a895c900427 | 98 | #define CFET_OFF_DFET_OFF (0x00u) |
gscuttari | 0:6a895c900427 | 99 | #define CFET_ON_DFET_OFF (0x02u) |
gscuttari | 0:6a895c900427 | 100 | #define CFET_OFF_DFET_ON (0x01u) |
gscuttari | 0:6a895c900427 | 101 | #define CFET_ON_DFET_ON (0x03u) |
gscuttari | 0:6a895c900427 | 102 | |
gscuttari | 0:6a895c900427 | 103 | #define EEP_TEMPE_TABLE_ADR (0x200u) |
gscuttari | 0:6a895c900427 | 104 | #define VMON_OUT_EN (0x10u) |
gscuttari | 0:6a895c900427 | 105 | |
gscuttari | 0:6a895c900427 | 106 | #define CURRENT_AD_FULL (0xFF00u) |
gscuttari | 0:6a895c900427 | 107 | #define CURRENT_AD_NULL (0x0100u) |
gscuttari | 0:6a895c900427 | 108 | |
gscuttari | 0:6a895c900427 | 109 | #define CURRENT50_AD_FULL (0xC000u) |
gscuttari | 0:6a895c900427 | 110 | #define CURRENT10_AD_FULL (CURRENT_AD_FULL) |
gscuttari | 0:6a895c900427 | 111 | |
gscuttari | 0:6a895c900427 | 112 | #define CUR_OVCH_DETEC_FORBIT (0x01u) |
gscuttari | 0:6a895c900427 | 113 | #define CUR_OVDISCH1_DETEC_FORBIT (0x02u) |
gscuttari | 0:6a895c900427 | 114 | #define CUR_OVDISCH2_DETEC_FORBIT (0x04u) |
gscuttari | 0:6a895c900427 | 115 | |
gscuttari | 0:6a895c900427 | 116 | #define TEMPE_UDCH_DETEC_FORBIT (0x01u) |
gscuttari | 0:6a895c900427 | 117 | #define TEMPE_UDDISCH_DETEC_FORBIT (0x02u) |
gscuttari | 0:6a895c900427 | 118 | #define TEMPE_OVCH_DETEC_FORBIT (0x04u) |
gscuttari | 0:6a895c900427 | 119 | #define TEMPE_OVDISCH_DETEC_FORBIT (0x08u) |
gscuttari | 0:6a895c900427 | 120 | |
gscuttari | 0:6a895c900427 | 121 | #define IMON_SET_NUM (2u) |
gscuttari | 0:6a895c900427 | 122 | |
gscuttari | 0:6a895c900427 | 123 | extern const unsigned char Imon_set_table[IMON_SET_NUM]; |
gscuttari | 0:6a895c900427 | 124 | |
gscuttari | 0:6a895c900427 | 125 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 126 | /*# Prototype #*/ |
gscuttari | 0:6a895c900427 | 127 | /*############################################################################*/ |
gscuttari | 0:6a895c900427 | 128 | void currentInit(CurDetSt* res); |
gscuttari | 0:6a895c900427 | 129 | |
gscuttari | 0:6a895c900427 | 130 | void currentGetParam(CurDetSt* res, unsigned short* param10,unsigned short* param50, |
gscuttari | 0:6a895c900427 | 131 | unsigned short Im, unsigned char discharge_en, |
gscuttari | 0:6a895c900427 | 132 | unsigned long* param10tmp, unsigned long* param50tmp); |
gscuttari | 0:6a895c900427 | 133 | |
gscuttari | 0:6a895c900427 | 134 | void meas_current(CurDetSt* res); |
gscuttari | 0:6a895c900427 | 135 | void UpdateCurrentParamCC(CurDetSt* res, |
gscuttari | 0:6a895c900427 | 136 | unsigned short* param10, unsigned short* param50, |
gscuttari | 0:6a895c900427 | 137 | unsigned long param10tmp, unsigned long param50tmp); |
gscuttari | 0:6a895c900427 | 138 | |
gscuttari | 0:6a895c900427 | 139 | void UpdateCurrentParamDC(CurDetSt* res, |
gscuttari | 0:6a895c900427 | 140 | unsigned short* param10, unsigned short* param50, |
gscuttari | 0:6a895c900427 | 141 | unsigned long param10tmp, unsigned long param50tmp); |
gscuttari | 0:6a895c900427 | 142 | |
gscuttari | 0:6a895c900427 | 143 | void judgeCurrent(CurDetSt* res); |
gscuttari | 0:6a895c900427 | 144 | int meas_one_cell_volt(unsigned char cell_num, unsigned short* Vcell); |
gscuttari | 0:6a895c900427 | 145 | void meas_all_cell_volt(unsigned char con_cell_num, unsigned short* Vcell); |
gscuttari | 0:6a895c900427 | 146 | unsigned char JudgeCellAll(unsigned char cellNum , unsigned short* Vcell, CellDetSt* res); |
gscuttari | 0:6a895c900427 | 147 | |
gscuttari | 0:6a895c900427 | 148 | void Temperature_init(TempeDetSt* res); |
gscuttari | 0:6a895c900427 | 149 | void getTemperature(unsigned char thNo, TempeDetSt* res); |
gscuttari | 0:6a895c900427 | 150 | void JudgeOneTemperature(unsigned char thNum, TempeSt* res); |
gscuttari | 0:6a895c900427 | 151 | unsigned short JudgeTemperature(TempeSt* res); |
gscuttari | 0:6a895c900427 | 152 | void fet_control(unsigned char* fetState ,unsigned short workState); |
gscuttari | 0:6a895c900427 | 153 | |
gscuttari | 0:6a895c900427 | 154 | void Gas_storeVisense(CurDetSt* res); |
gscuttari | 0:6a895c900427 | 155 | void Gas_aveVisense(unsigned short* cvisens, unsigned short* dvisens); |
gscuttari | 0:6a895c900427 | 156 | void Gas_aveVisenseClear(void); |
gscuttari | 0:6a895c900427 | 157 | |
gscuttari | 0:6a895c900427 | 158 | |
gscuttari | 0:6a895c900427 | 159 | #endif /*_MEASURE_H_*/ |