📄 main.c
字号:
**根据selfAddr更新显示缓冲区
*全局变量:uint8 Intpart[3],Decm[2],dispBuf[con_Disp_Bit]; //整数部分数组,小数部分数组
**************************************************************/
void dispSelfAddr(void)
{
//显示本机地址
displayFloat(0,3,selfAddr);
dispBuf[2]=TableNum[Intpart[0]];
dispBuf[1]=TableNum[Intpart[1]];
dispBuf[0]=TableNum[Intpart[2]];
//显示r
dispBuf[4]=TableLetter[7];
//显示A
dispBuf[3]=TableLetter[0];
}
/**************************显示放大倍数***********************
**入口:无
**出口:无
**根据Amp更新显示缓冲区
*全局变量:uint8 Intpart[3],Decm[2],dispBuf[con_Disp_Bit]; //整数部分数组,小数部分数组
**************************************************************/
void dispAmp(void)
{
//显示本机地址
displayFloat(0,2,Amp);
dispBuf[2]=TableNum[Intpart[0]];
dispBuf[1]=TableNum[Intpart[1]];
//显示d
dispBuf[0]=TableLetter[3];
//显示n
dispBuf[4]=TableLetter[6];
//显示n
dispBuf[3]=TableLetter[6];
}
/**************************主函数**********************
/*入口:无
/*出口:无
/*占用资源:
/*调用函数:main_initial,
/***********************************************************/
void main(void)
{
uint8 tmpCtr; //循环控制
uint16 tmpInt16; //临时存储变量
main_initial();
Timer2ON();
while(1)
{
CLRWDT();
switch(taskNo)
{
//显示任务
case task_Display:
{
display();
break;
}
//读取按键任务
case task_ReadKey:
{
display();
if(readkey0()==TRUE) //按键0(开始)
{
if(FaceReg==conFaceChDNum) //显示充放电次数界面
{
for(tmpCtr=0;tmpCtr<ConADChnNum;tmpCtr++)
{
ADChnRe.isStartADSap[tmpCtr]=TRUE; //开始采样标志=TRUE
Ctrl14013_Reset(tmpCtr); //14013复位
resetChargePara(tmpCtr); //复位充放电信息
startCtrlCharge(tmpCtr); //开始充放电控制
}
}
else if(FaceReg==conFaceCDTime) //显示充放电时间界面
{
}
else if(FaceReg==conFaceEmerTime) //显示应急时间界面
{
}
else if(FaceReg==conFaceEmerVolt) //显示终止电压界面
{
}
else if(FaceReg==conFaceSetBaseVolt) //显示基准电压界面
{
ChangeBaseVolt(POINT2); //基准电压+0.01
}
else if(FaceReg==conFaceSetAddr) //显示本机地址界面
{
SetSelfAddr(conAddr100); //本机地址+100
}
else if(FaceReg==conFaceSetAmp) //显示放大倍数界面
{
}
}
if(readkey1()==TRUE) //按键1(功能)
{
//改变功能模式,即改变显示界面
FaceReg++;
if(FaceReg>=conFaceMaxNum)
{
FaceReg=0;
}
}
if(readkey2()==TRUE) //按键2(选择)
{
if(FaceReg==conFaceChDNum) //显示充放电次数界面
{
FaceChnNo++; //改变通道
if(FaceChnNo>=conChnNum)
{
FaceChnNo=0;
}
}
else if(FaceReg==conFaceCDTime) //显示充放电时间界面
{
FaceChnNo++; //改变通道
if(FaceChnNo>=conChnNum)
{
FaceChnNo=0;
}
}
else if(FaceReg==conFaceEmerTime) //显示应急时间界面
{
FaceChnNo++; //改变通道
if(FaceChnNo>=conChnNum)
{
FaceChnNo=0;
}
}
else if(FaceReg==conFaceEmerVolt) //显示终止电压界面
{
FaceChnNo++; //改变通道
if(FaceChnNo>=conChnNum)
{
FaceChnNo=0;
}
}
else if(FaceReg==conFaceSetBaseVolt) //显示基准电压界面
{
ChangeBaseVolt(POINT2); //基准电压+0.01
}
else if(FaceReg==conFaceSetAddr) //显示本机地址界面
{
SetSelfAddr(conAddr10); //本机地址+10
}
else if(FaceReg==conFaceSetAmp) //显示放大倍数界面
{
ChangeAmp(); //改变放大倍数
}
}
if(readkey3()==TRUE) //按键3(停止)
{
if(FaceReg==conFaceChDNum) //显示充放电次数界面
{
for(tmpCtr=0;tmpCtr<ConADChnNum;tmpCtr++)
{
ADChnRe.isStartADSap[tmpCtr]=FALSE;
resetChargePara(tmpCtr); //复位充放电信息
}
}
else if(FaceReg==conFaceCDTime) //显示充放电时间界面
{
}
else if(FaceReg==conFaceEmerTime) //显示应急时间界面
{
}
else if(FaceReg==conFaceEmerVolt) //显示终止电压界面
{
}
else if(FaceReg==conFaceSetBaseVolt) //显示基准电压界面
{
ChangeBaseVolt(POINT1); //基准电压+0.1
}
else if(FaceReg==conFaceSetAddr) //显示本机地址界面
{
SetSelfAddr(conAddr1); //本机地址+1
}
else if(FaceReg==conFaceSetAmp) //显示放大倍数界面
{
}
}
break;
}
//AD转换任务
case task_ADConv:
{
display();
MainAdConv();
break;
}
//时间达到1S任务
case task_Interval_1s:
{
display();
if(flag_1Sec==1)
{
flag_1Sec=0;
#ifdef DEBUG //调试用
OutPut=OutPut^(0xff); //调试用
#endif //调试用
for(tmpCtr=0;tmpCtr<ConChnNum;tmpCtr++)
{
if(Ctrl14013_ReadQ(tmpCtr)==0) //应急时间未结束
{
if((CtrlCharge[tmpCtr].FlagIsCharge==FALSE)&(CtrlCharge[tmpCtr].FlagIsStTest==TRUE)) //处于放电状态且开始试验
{
EmerTimeInc1s(tmpCtr); //指定通道应急时间加1s
clrFlagEndEmerTime(tmpCtr); //设定应急时间标志为未结束
}
else //处于充电状态或未开始试验
{
resetEmerTime(tmpCtr); //复位应急时间
#ifdef DEBUG //调试用
DispBitData=0; //调试用
#endif //调试用
}
}
else //应急时间结束
{
if((CtrlCharge[tmpCtr].FlagIsCharge==FALSE)&(CtrlCharge[tmpCtr].FlagIsStTest==TRUE)) //处于放电状态且开始试验
{
setFlagEndEmerTime(tmpCtr); //设定应急时间标志为结束
//存储应急时间
tmpInt16=getEmerTime(tmpCtr);
SaveChanEmerTime(tmpCtr,CtrlCharge[tmpCtr].disChargeNum,tmpInt16);
sendBuf[tmpCtr][0]=CtrlCharge[tmpCtr].disChargeNum; //发送缓冲区,已计算的个数
sendBuf[tmpCtr][CtrlCharge[tmpCtr].disChargeNum*2+1]=lobyte(tmpInt16);
sendBuf[tmpCtr][CtrlCharge[tmpCtr].disChargeNum*2+2]=hibyte(tmpInt16);
//存储终止电压
SaveEmerVolt(tmpCtr,CtrlCharge[tmpCtr].disChargeNum,ADChnRe.ADMin[tmpCtr]);
}
else //处于充电状态或未开始试验,此状态下应急时间的计算不应结束,若出现此态,应复位14013
{
Ctrl14013_Reset(tmpCtr); //复位14013
clrFlagEndEmerTime(tmpCtr); //设定应急时间标志为未结束
resetEmerTime(tmpCtr); //复位应急时间
#ifdef DEBUG //调试用
DispBitData=1; //调试用
#endif //调试用
}
}
}
MainCtrlCharge(); //充放电控制
}
break;
}
//处理指令任务
case task_DoInstru:
{
display();
DoInstru();
break;
}
//更新显示缓冲区任务
case task_UpDispBuf:
{
display();
if(FaceReg==conFaceChDNum)
{
dispChDNum(); //显示充放电次数界面
}
else if(FaceReg==conFaceCDTime)
{
dispChDTime(); //显示充放电时间界面
}
else if(FaceReg==conFaceEmerTime)
{
dispEmerTime(); //显示应急时间界面
}
else if(FaceReg==conFaceEmerVolt)
{
dispEmerVolt(); //显示终止电压界面
}
else if(FaceReg==conFaceSetBaseVolt)
{
dispBaseVolt(); //显示基准电压界面
}
else if(FaceReg==conFaceSetAddr)
{
dispSelfAddr(); //显示本机地址界面
}
else if(FaceReg==conFaceSetAmp)
{
dispAmp(); //显示放大倍数界面
}
break;
}
}
taskNo++; //任务号加1
if(taskNo==task_Num)
{
display();
taskNo=task_Min;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -