📄 tskcharge.c
字号:
//#include <p18cxxx.h>
//To count call duration and money
#include "includes.h"
#include "event.h"
#include "funclcd.h"
#include "funcfontlib.h"
#define CALL_DURATION 0x8001; //timer ID
extern OS_MEM *pMemSml;
extern OS_MEM *pMemLge;
#pragma romdata EXTRAM
INT24U rom CallDuration;
INT8U rom ChargeDisplayEnable;
void tskCharge(void * data){
void rom * pMsg;
void rom * ptrT;
INT8U err;
for(;;){
pMsg = OSQPend(peventCharge, 0, &err);
if(err == OS_NO_ERR){
if((INT24U)pMsg >= PTR_MAX){
switch ((INT24U)pMsg){
case MSG_CHARGE_BEGIN:
pMsg=OSMemGet(pMemSml,&err);
if(err == OS_NO_ERR){
((MSG_HEAD *)pMsg)->Msg_ID=MSG_TIMER_START;
((MSG_HEAD *)pMsg)->Origin=peventCharge;
((MSG_HEAD *)pMsg)->pmemME=pMemSml;
((MSG_HEAD *)pMsg)->Attached=FALSE;
((MSG_HEAD *)pMsg)->LenOfBody=4;
((TIMER_MESSAGE *)pMsg)->TID=CALL_DURATION;
((TIMER_MESSAGE *)pMsg)->Val=OS_TICKS_PER_SEC;
OSQPost(peventTimer,pMsg);
CallDuration = 0;
}
else{ //if can't start timer
OSQPost(peventDVS, (OS_EVENT *)MSG_VOICE_BUSY);
}
break;
case MSG_CHARGE_STOP:
ChargeDisplayEnable == FALSE;
pMsg=OSMemGet(pMemSml,&err);
if(err == OS_NO_ERR){
((MSG_HEAD *)pMsg)->Msg_ID=MSG_TIMER_STOP;
((MSG_HEAD *)pMsg)->Origin=peventCharge;
((MSG_HEAD *)pMsg)->pmemME=pMemSml;
((MSG_HEAD *)pMsg)->Attached=FALSE;
((MSG_HEAD *)pMsg)->LenOfBody=4;
((TIMER_MESSAGE *)pMsg)->TID=CALL_DURATION;
((TIMER_MESSAGE *)pMsg)->Val=OS_TICKS_PER_SEC;
OSQPost(peventTimer,pMsg);
}
break;
}
}
else{
switch (((MSG_HEAD *)pMsg)->Msg_ID){
case MSG_TIMER_EXPIRE:
CallDuration ++;
OS_ENTER_CRITICAL();
if(ChargeDisplayEnable == TRUE){
OS_EXIT_CRITICAL();
Display_Duration(CallDuration/36000+0x30,(CallDuration/3600)%10+0x30,
(CallDuration%3600)/600+0x30,((CallDuration%3600)/60)%10+0x30,
(CallDuration%60)/10+0x30, (CallDuration%10)+0x30);
}
OS_EXIT_CRITICAL();
break;
}
Func_Clear_Msg(pMsg);
}
}
}
}
void Func_EnableChargeDisplay(void){
OS_ENTER_CRITICAL();
ChargeDisplayEnable = TRUE;
OS_EXIT_CRITICAL();
}
void Func_DisableChargeDisplay(void){
OS_ENTER_CRITICAL();
ChargeDisplayEnable = FALSE;
OS_EXIT_CRITICAL();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -