📄 timeprocess.c
字号:
//*************************************************************************************************
//* *
//* ********************************计时状态处理子函数****************************** *
//* *
//*************************************************************************************************
extern bit b_CountStart;
extern bit b_CountPause;
extern bit b_ClockStart;
extern bit b_WorkMode;
extern bit b_LCDClean;
extern bit b_KeyShock;
extern unsigned char uc_ReportSymbol;
extern unsigned long ul_Number;
extern unsigned long ul_ClockOppose;
unsigned long ul_TimeTemp; //暂停状态技计数暂存。
void vTime(unsigned char ucKeyCode)
{
switch(ucKeyCode)
{
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<当按下“NO/C”时执行>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case 41:
//***************************************00 ->10:从停止到开始****************************************
if((b_CountStart|b_CountPause)==0)
{
ul_Number=0; //初始化记时值为0.
b_CountStart=1; //重设标志位,改为开始状态;
b_ClockStart=1;
// uc_ReportSymbol=6;
// b_LCDClean=1;
}
//***************************************11 ->10:从暂停到开始****************************************
else if((b_CountStart&b_CountPause)==1)
{
ul_Number=ul_TimeTemp; //初始化初值为暂存的值。
b_CountPause=0; //重设标志位,改为开始状态。
b_ClockStart=1;
// uc_ReportSymbol=6;
// b_LCDClean=1;
}
//***************************************10 ->00:从开始到停止****************************************
else if((b_CountStart=1&(!b_CountPause))==1)
{
b_CountStart=0; //重设标志位,改为停止状态。
b_ClockStart=0; //停止计时。
ul_Number=0; //恢复计时前状态。
uc_ReportSymbol=7;
b_LCDClean=1;
}
break;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<当按下“=”时执行>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case 43:
if(b_CountStart==1) //如果是开始或暂停状态则进行处理,
{ //否则不处理。
//*******************************10->11:从开始到暂停。****************************
if(b_CountPause==0)
{ //保存计时数值。
b_CountPause=1; //如果是开始状态则改为暂停状态。
ul_TimeTemp=ul_Number;
uc_ReportSymbol=5; //闪烁显示:-PAUSE
b_LCDClean=1;
b_ClockStart=0; //暂停计时。
}
else
{ //**************************11 ->10:从暂停到开始*****************
b_CountPause=0; //如果是暂停状态则改变为进行状态。
ul_Number=ul_TimeTemp; //给计时器赋初值为暂停前的值。
b_ClockStart=1;
// uc_ReportSymbol=6;
// b_LCDClean=1; //继续暂停前的计时。
} //****************************************************************
}
else if(b_CountPause==0) //***************************00:切换到计算器模式*******
{
b_WorkMode=0; //如果在停止计时状态按下“=”键便会切换到计算器模式。
ul_Number=0;
uc_ReportSymbol=4; //CHAG-0表明从计时器模式切换到计算器模式。
b_LCDClean=1;
b_KeyShock=1;
}
break;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<当按下“+”时执行>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case 44:
{
b_ClockStart=0; //停止计时。
//******************************切换到倒计时模式*******************************
b_CountStart=0;
b_CountPause=1;
ul_Number=0;
uc_ReportSymbol=8;
b_LCDClean=1;
ul_ClockOppose=0;
}
break;
default:break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -