码迷,mamicode.com
首页 > 编程语言 > 详细

正确理解C语言指针申明的含义

时间:2016-06-14 22:28:07      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:

/*说明:*/

?

//文件名 : JudgeControlMode.h

?

# ifndef _JUDGECONTROLMODE_H_

# define _JUDGECONTROLMODE_H_

?

//------------------------------------宏定义--------------------------------------------------

/*

#define CHARGESOFTSTARTUPBOUND 4.5

#define CHARGEUPBOUND 5.5

#define DEADZONEUPBOUND 6.0

#define DISCHARGEUPBOUND 7.0

#define DISCHARGESOFTSTARTUPBOUND 8.0

?

#define OVERVOLTAGE 12.0

#define SAFECURRENT 60.0

#define OVERCURRENT 72.0

*/

#define CHARGEREF 5.0

#define CHARGE_DISCHARGE 5.5

#define DISCHARGEREF 10.0

?

#define OVERVOLTAGE 15.0

#define SAFECURRENT 20.0

#define OVERCURRENT 40.0

?

#define WORKMODE 0

#define LASTWORKMODE 0

?

#define READYSTARTMODE 0

#define CHARGESOFTSTARTMODE 1

#define CHARGEMODE 2

#define DISCHARGEMODE 3

#define DISCHARGESOFTSTARTMODE 4

#define OVERVOLTAGEMODE 5

#define SAFECURRENTMODE 6

#define OVERCURRENTMODE 7

?

#define CHARGESOFTSTOPMODE 8

#define DISCHARGESOFTSTOPMODE 9

?

#define JUDGEMODE_DEFAULT {0,0,0,0,0,0,0,0,0,0,0,0,\

????2,10,10,2,10,0,0,0,10,10,10,10,\

????CHARGEREF,CHARGE_DISCHARGE,DISCHARGEREF,OVERVOLTAGE,SAFECURRENT,OVERCURRENT,\

????WORKMODE,LASTWORKMODE,\

????READYSTARTMODE,CHARGESOFTSTARTMODE,CHARGEMODE,DISCHARGEMODE,DISCHARGESOFTSTARTMODE,OVERVOLTAGEMODE,SAFECURRENTMODE,OVERCURRENTMODE,\

????CHARGESOFTSTOPMODE,DISCHARGESOFTSTOPMODE\

????}

?

//------------------------------------结构体--------------------------------------------------

????typedef struct

????{

????????//累计次数.最大31

????????unsigned long temp1:5;

????????unsigned long temp2:5;

????????unsigned long temp3:5;

????????unsigned long temp4:5;

????????unsigned long temp5:5;

????????unsigned long temp6:5;

????????unsigned long :0;

????????unsigned long temp7:5;

????????unsigned long temp8:5;

????????unsigned long temp9:5;

????????unsigned long tempA:5;

????????unsigned long tempB:5;

????????unsigned long tempC:5;

????????unsigned long :0;

?

????????//容错次数.最大31

????????const unsigned long ChangeLevel1:5;

????????const unsigned long ChangeLevel2:5;

????????const unsigned long ChangeLevel3:5;

????????const unsigned long ChangeLevel4:5;

????????const unsigned long ChangeLevel5:5;

????????const unsigned long ChangeLevel6:5;

????????unsigned long :0;

????????const unsigned long ChangeLevel7:5;

????????const unsigned long ChangeLevel8:5;

????????const unsigned long ChangeLevel9:5;

????????const unsigned long ChangeLevelA:5;

????????const unsigned long ChangeLevelB:5;

????????const unsigned long ChangeLevelC:5;

????????unsigned long :0;

?

????????//电压界限

????????const float ChargeRef; //充电给定电压

????????const float Charge_Discharge; //充电和放电的边界

????????const float DischargeRef; //放电给定电压

????????const float OverVoltage; //过压电压

????????//电流界限

????????const float SafeCurrent; //安全电流

????????const float OverCurrent; //过流电流

?

????????//工作模式

????????unsigned long WorkMode :6; //控制模式标志位

????????unsigned long LastWorkMode :6; //上一次的控制模式

????????unsigned long :0;

?

????????//模式标志

????????const unsigned long ReadyStartMode :1; //待机状态的代码 0

????????const unsigned long ChargeSoftStartMode :1; //充电软启动模式的代码 1

????????const unsigned long ChargeMode :2; //正常充电模式的代码 2

????????//const unsigned long DeadZoneMode :2; //死区模式的代码 3

????????const unsigned long DischargeMode :3; //放电模式的代码 4

????????const unsigned long DisChargeSoftStartMode:3; //放电软启的代码 5

????????const unsigned long OverVoltageMode :3; //立即保护模式的代码 6

????????const unsigned long SafeCurrentMode :3; //立即保护模式的代码 7

????????const unsigned long OverCurrentMode :4; //立即保护模式的代码 8

????????const unsigned long ChargeSoftStopMode :4; //充电时软关断的代码 9

????????const unsigned long DischargeSoftStopMode :4; //放电时软关断的代码 10

????????unsigned long :0;

????}JUDGEMODE;

?

?

//------------------------------------函数原型------------------------------------------------

????void RunJudgeControlMode(const float CurrentValue);

????void ControlModeSelect(const long WorkMode,const unsigned ExterSignal,const float Voltage,const float Current);

????void PWMJudge(const unsigned long WorkMode);

????void StartJudgeControlMode(const float Voltage,const float Current,const unsigned long WorkMode);

????void StopJudgeControlMode(const long);

????void ClearChargePIstat(void);

????void ClearDischargePIstate(void);

????void ClearDuty(const char ClrChargeDuty,const char ClrDischargeDuty);

????void ResetJudgeMode(void);

# endif

?

//------------------------------------no more-----------------------------------------------

正确理解C语言指针申明的含义

标签:

原文地址:http://www.cnblogs.com/xklzw/p/5585487.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!