ML5238

Revision:
0:6a895c900427
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/measure.h	Mon Apr 15 10:20:43 2019 +0000
@@ -0,0 +1,159 @@
+/*****************************************************************************
+    measure.h
+
+    Copyright (C) 2012 LAPIS Semiconductor Co., Ltd.
+    All rights reserved.
+
+    LAPIS Semiconductor shall not be liable for any direct, indirect, 
+    consequential or incidental damages arising from using or modifying this 
+    program.
+
+    History
+    2012.11.20  ver.2.00
+    2012.09.13  ver.1.00
+******************************************************************************/
+#ifndef _MEASURE_H_
+#define _MEASURE_H_
+
+/*############################################################################*/
+/*#                                Struct                                    #*/
+/*############################################################################*/
+typedef struct{
+    unsigned short Visense10;
+    unsigned short Visense50;
+    unsigned short Vim010;
+    unsigned short Vim050;
+/*
+    unsigned short Vim110;
+    unsigned short Vim150;
+    unsigned short VR10;
+    unsigned short VR50;
+*/
+    unsigned short Rsense;
+    unsigned short Count_DC;
+
+    unsigned char Count_ODC;
+    unsigned char Count_OD2;
+    unsigned char curState;
+    unsigned char DetectForbitFlag;         //bit0:charge over current detection, bit1:discharge over current1 detection, bit2:discharge over current2 detection
+    
+}CurDetSt;
+
+typedef struct{
+    unsigned long Vsum;
+    unsigned short OvChDelaytime;
+    unsigned short OvChstate;
+    unsigned short OvDisDelaytime;
+    unsigned short OvDisstate;
+}CellDetSt;
+
+typedef struct {
+    unsigned short Vt_pcb;
+    unsigned short UChDelayCount;
+    unsigned short UDisDelayCount;
+    unsigned short OChDelayCount;
+    unsigned short ODisDelayCount;
+    unsigned char  Tadr;
+    unsigned char  DetectForbitFlag;    //bit0:under tempe charge forbit, bit1:under tempe discharge forbit, bit2:over tempe charge forbit, bit3:over tempe discharge forbit
+}TempeDetSt;
+
+typedef struct{
+    unsigned char UChState;
+    unsigned char UDisState;
+    unsigned char OChState;
+    unsigned char ODisState;
+//  unsigned short delayCount;
+    TempeDetSt* res;
+    unsigned char TempFlag;
+}TempeSt;
+
+
+/*############################################################################*/
+/*#                                Variable                                  #*/
+/*############################################################################*/
+
+/*############################################################################*/
+/*#                                define                                    #*/
+/*############################################################################*/
+
+/*############################################################################*/
+/*#                                Return                                    #*/
+/*############################################################################*/
+#define MEAS_R_OK           (0)
+#define MEAS_R_ERR_NULL     (-1)
+
+#define CUR_NOR             (0x00u)
+#define CUR_CHRG            (0x01u)
+#define CUR_DISCHRG         (0x02u)
+#define CUR_OVCHRG          (0x04u)
+#define CUR_OVDISCHRG1      (0x08u)
+#define CUR_OVDISCHRG2      (0x10u)
+
+#define CELL_VOL_NOR        (0x00u)
+#define CELL_VOL_OVD        (0x02u)
+#define CELL_VOL_OVC        (0x01u)
+#define CELL_VOL_OVCD       (0x04u)
+#define CELL_VOL_PD         (0x05u)
+
+#define CFET_OFF_DFET_OFF               (0x00u)
+#define CFET_ON_DFET_OFF                (0x02u)
+#define CFET_OFF_DFET_ON                (0x01u)
+#define CFET_ON_DFET_ON                 (0x03u)
+
+#define EEP_TEMPE_TABLE_ADR     (0x200u)
+#define VMON_OUT_EN     (0x10u)
+
+#define CURRENT_AD_FULL     (0xFF00u)
+#define CURRENT_AD_NULL     (0x0100u)
+
+#define CURRENT50_AD_FULL       (0xC000u)
+#define CURRENT10_AD_FULL       (CURRENT_AD_FULL)
+
+#define CUR_OVCH_DETEC_FORBIT       (0x01u)
+#define CUR_OVDISCH1_DETEC_FORBIT   (0x02u)
+#define CUR_OVDISCH2_DETEC_FORBIT   (0x04u)
+
+#define TEMPE_UDCH_DETEC_FORBIT     (0x01u)
+#define TEMPE_UDDISCH_DETEC_FORBIT  (0x02u)
+#define TEMPE_OVCH_DETEC_FORBIT     (0x04u)
+#define TEMPE_OVDISCH_DETEC_FORBIT  (0x08u)
+
+#define IMON_SET_NUM        (2u)
+
+extern const unsigned char Imon_set_table[IMON_SET_NUM];
+
+/*############################################################################*/
+/*#                                Prototype                                  #*/
+/*############################################################################*/
+void currentInit(CurDetSt* res);
+
+void currentGetParam(CurDetSt* res, unsigned short* param10,unsigned short* param50, 
+    unsigned short Im, unsigned char discharge_en,
+    unsigned long* param10tmp, unsigned long* param50tmp);
+
+void meas_current(CurDetSt* res);
+void UpdateCurrentParamCC(CurDetSt* res,
+    unsigned short* param10, unsigned short* param50,
+    unsigned long param10tmp, unsigned long param50tmp);
+
+void UpdateCurrentParamDC(CurDetSt* res,
+    unsigned short* param10, unsigned short* param50,
+    unsigned long param10tmp, unsigned long param50tmp);
+
+void judgeCurrent(CurDetSt* res);
+int meas_one_cell_volt(unsigned char cell_num, unsigned short* Vcell);
+void meas_all_cell_volt(unsigned char con_cell_num, unsigned short* Vcell);
+unsigned char JudgeCellAll(unsigned char cellNum , unsigned short* Vcell, CellDetSt* res);
+
+void Temperature_init(TempeDetSt* res);
+void getTemperature(unsigned char thNo, TempeDetSt* res);
+void JudgeOneTemperature(unsigned char thNum, TempeSt* res);
+unsigned short JudgeTemperature(TempeSt* res);
+void fet_control(unsigned char* fetState ,unsigned short workState);
+
+void Gas_storeVisense(CurDetSt* res);
+void Gas_aveVisense(unsigned short* cvisens, unsigned short* dvisens);
+void Gas_aveVisenseClear(void);
+
+
+#endif /*_MEASURE_H_*/