文档库 最新最全的文档下载
当前位置:文档库 › 共用体与结构体定义位域

共用体与结构体定义位域

//#ifndef _VARIABLE_
//#define _VARIABLE_

#define TURN_ON_WDT 0
#define DOUBLE_LED_COM_RED 0

#if (TURN_ON_WDT)
#define clrwdt() asm("clrwdt")
#else
#define clrwdt() asm("nop")
#endif

#if (DOUBLE_LED_COM_RED)
#define ON 0
#define OFF 1
#else
#define ON 1
#define OFF 0
#endif

#define uchar unsigned char
#define uint unsigned int
#define bitset(Var,bitnum) ((Var) |= (1 << (bitnum)))
#define bitclr(Var,bitnum) ((Var) &= (1 << (bitnum)))

/////////////////////////////////////////////////////////////////////////
#define nop() asm("nop")
/////////////////////////////////////////////////////////////////////////


union byte_type_t
{
uchar byte;
struct p8_bit
{
uchar bit0:1 ; // 1
uchar bit1:1 ; // 2
uchar bit2:1 ; // 3
uchar bit3:1 ; // 4
uchar bit4:1 ; // 5
uchar bit5:1 ; // 6
uchar bit6:1 ; // 7
uchar bit7:1 ; // 8
} bitt;
};
typedef volatile union byte_type_t BYTE;

union word_type_t
{
uint word;
struct p16_bit
{
uchar bit0:1 ; // 1
uchar bit1:1 ; // 2
uchar bit2:1 ; // 3
uchar bit3:1 ; // 4
uchar bit4:1 ; // 5
uchar bit5:1 ; // 6
uchar bit6:1 ; // 7
uchar bit7:1 ; // 8
uchar bit8:1 ; // 9
uchar bit9:1 ; // 10
uchar bit10:1 ; // 11
uchar bit11:1 ; // 12
uchar bit12:1 ; // 13
uchar bit13:1 ; // 14
uchar bit14:1 ; // 15
uchar bit15:1 ; // 16
} bitt;
};
typedef volatile union word_type_t WORD;


/////////////////////// define Volt ////////////////////////////////
#define VOLT_SOLAR_7V 0xCC //real:1v

////////////////////////////////////////////////////************************
#define VOLT_0D0T2V 0x5 //Uopen > Ubt + 0.2v,charg led on.
#define VOLT_0D0T7V 0x8F //0.7*8=5.6v; <5.6v bt not in
#define VOLT_8V 0xCC //Frist >8V 1S,Bt is in/Charg <8v reset(bt take out)
#define VOLT_10DOT6V 0x10F //>10.6V GO OUT
#define VOLT_10DOT4V 0x10A //In charg,<10.4v,reset
#define VOLT_10DOT5V 0x10C //Frist < 10.5v, bt is fault
#define VOLT_11V 0x119 //Load on,bt <11v Off load
#define VOLT_11DOT2V 0x11E //Frist >11.2v,can open load
#define VOLT_13V 0x14C //In float mode,<13v go charg
#define VOLT_14V 0x166 //1.75*8=14v; over 14v,is fault bt
#define VOLT_15V 0x180 //Frist:over 15v,is fault bt
#define VOLT_15DOT1V 0x182 //In charg:over 15.1v,is fault bt
#define VOLT_14DOT4V 0x170 //charg 14.4v,<13v start charg
#define VOLT_14DOT9V 0x17d //over 15v is error,<14.9v go out
#define VOLT_26DOT8V 0x2B0 //real 26.9v
#define VOLT_27V 0x2B3 //Usolar > 27v,error 26.8v

//volt dispaly//

#define VOLT_11DOT3V 0x123 //real:11.4v 0x121
#define VOLT_11DOT5V 0x126

#define VOLT_12DOT3V 0x13D //real:12.4v 0x13A
#define VOLT_12DOT5V 0x140

#define VOLT_13DOT4V 0x159 //real:13.4v 0x157
#define VOLT_13DOT6V 0x15C



#define VOLT_31A 0x400 //CHARG OVER AMP


extern persistent BYTE FLAG1;
#define KEY_LOCK_FG FLAG1.bitt.bit0 //********************
#define GO_RESET1_FG FLAG1.bitt.bit1 //
#define BATT_FULL_FG FLAG1.bitt.bit2 //
#define OVER_14DOT4V_FG FLAG1.bitt.bit3
#define SOLAR_FLASH_FG FLAG1.bitt.bit4
#define SOLAR_OVER_BT_FG FLAG1.bitt.bit5
#define BEGIN_4S_30S_FG FLAG1.bitt.bit6
#define OVER_27V_FG FLAG1.bitt.bit7

extern persistent BYTE FLAG2;
#define BTLED_FLASH_GREEN_FG FLAG2.bitt.bit0
#define OVER_13DOT6V_FG FLAG2.bitt.bit1
#define OVER_12DOT5V_FG FLAG2.bitt.bit2
#define OVER_11DOT5V_FG FLAG2.bitt.bit3
#define FLASH_LOAD_OVER_AMP_FG FLAG2.bitt.bit4
#define LOW_11V_FG FLAG2.bitt.bit5
#define LESS_10DOT6V_FG FLAG2.bitt.bit6
#define NOT_HAVE_SOLAR_FG FLAG2.bitt.bit7


extern persistent BYTE FLAG3;
#define OVER_15V_FG FLAG3.bitt.bit0
#define OVER_31A_FG FLAG3.bitt.bit1
#define FLOAT_CHARG_FG FLAG3.bitt.bit2
#define LESS_12DOT5V_FG FLAG3.bitt.bit3
//#define LOAD_LEVEL_FG FLAG3.bitt.bit4
//#define LOAD_CHECK_FG FLAG3.bitt.bit5

extern persistent BYTE FLAG4;
#define LOAD_ON_FG FLAG4.bitt.bit0
#define FAULT_BT_FG FLAG4.bitt.bit1



/////////////////////// define AD_Ch ///////////////////////////
#define AD_BATT 0x02
#define AD_CHARG_CURRENT 0x05 //0x04
#define AD_LOAD_CURRENT 0x04 //0x05
#define AD_NTC 0x08

//#endif
/////////////////////// define use Ram ///////////////////////////
extern persistent volatile uchar u_cUpData_Volt1;
extern persistent volatile uchar u_cUpData_Volt2;

extern persistent volatile uchar u_cLow_11V_1;
extern persistent volatile uchar u_cLow_11V_2;

extern persistent volatile uchar u_cReset_Delay1;
extern persistent volatile uchar u_cReset_Delay2;

extern persistent volatile uchar u_cCharg_OverSTOP_5s_1;
extern persistent volatile uchar u_cCharg_OverSTOP_5s_2;

extern persistent volatile uchar u_cFast_Up_Error1;
extern persistent volatile uchar u_cFast_Up_Error2;

//****************
extern persistent volatile uchar flash_over_AMP_led_1;
extern persistent volatile uchar flash_over_AMP_led_2;
extern persistent volatile uchar flash_over_AMP_led_3;

extern persistent volatile uchar flash_solar_led_1;
extern persistent volatile uchar flash_solar_led_2;

extern persistent volatile uchar flash_bt_volt_led_1;
extern persistent volatile uchar flash_bt_volt_led_2;

extern persistent volatile uchar u_cKey_press;
extern persistent volatile uchar u_cDelay_ms;

extern persistent volatile uchar u_cCheck_Temp_ms;

extern persistent volatile uchar u_cBTtake_in_1s_1;
extern persistent volatile uchar u_cBTtake_in_1s_2;

extern persistent volatile uchar flash_fault_led_1;
extern persistent volatile uchar flash_fault_led_2;

extern persistent volatile uchar ntc_table;

extern persistent volatile uchar u_

cOver31A_D3min_1;
extern persistent volatile uchar u_cOver31A_D3min_2;
extern persistent volatile uchar u_cOver31A_D3min_3;

extern persistent volatile uchar u_cCheck_Hi1_ms;
extern persistent volatile uchar u_cCheck_Hi2_ms;
extern persistent volatile uchar u_cCheck_Hi3_ms;

extern persistent volatile uchar u_cCheck_200ms;

extern persistent volatile uchar ntc_temp;
extern persistent volatile uchar temp_buff;
extern persistent volatile uchar u_cNtc_time_1; //NTC not change,over 10s,change volt
extern persistent volatile uchar u_cNtc_time_2;

extern persistent volatile uchar u_cCharg_OverAMP_3s_1;
extern persistent volatile uchar u_cCharg_OverAMP_3s_2;

extern persistent volatile uchar u_cLoadOverAMP_3s_1;
extern persistent volatile uchar u_cLoadOverAMP_3s_2;

extern persistent volatile uint u_sNTC_VOLT;
extern persistent volatile uint u_sBATT_VOLT;
extern persistent volatile uint u_sLoadCurr_VOLT;
extern persistent volatile uint u_sChargCurr_VOLT;



相关文档