?? 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 + -