📄 timer.c
字号:
/****************************************************************
* Viaon Technology (Suzhou) Co.,Ltd
*
* Copyright 2007, Viaon Technology (Suzhou) Co.,Ltd,Suzhou,China
* All rights reserved.
*
*
* Filename: timer.c
*
* Programmer: Greg
*
* Created: 1/2/2008
*
* Description: public functions
*
*
* Change History (most recent first): 2008.1.2
****************************************************************/
#include "utiltypedef.h"
#include "va4010reg.h"
#include "common.h"
#include "timer.h"
#include "halir.h"
#include "dispdled.h"
volatile BYTE data byGap; //Ticks for key scan
#ifdef ENABLE_RUN_LED
volatile BYTE data gRunled_tick; //Ticks for LED show
#endif
volatile BYTE data bgDispGap; // This counter will be ticked in timer, and is for the time control of status change
volatile BYTE data VolTicks;
volatile BYTE data SysTicks = 0;
volatile BYTE data IRTicks = 0;
volatile BYTE data iDevChkCnt = 0;
#ifdef ENABLE_DEVICE_DETECT
volatile BYTE data bgDevChkGap =0;
#endif
volatile BYTE data FlashGap = 0;
volatile BYTE data bgMP3TMS; // 100MS unit
volatile BYTE data bgMP3TS; //second unit
volatile BYTE data bgMP3TM; //minute
volatile BYTE data SongLocateTick = 0;
volatile BYTE data bFlashTick =0;
BOOL data bTmpFlag = FALSE;
static BYTE data Tick5m = 0;
void halT0ISR(void) interrupt 1 //using 1
{
DISABLE_INTERRUPTS;
TF0 = 0;
TH0 = TIMER0_5MS_TH;
TL0 = TIMER0_5MS_TL;
#if (DIGITAL_SHOW == DIGITAL_SHOW_DLED)
//#if 0
halDLEDISR();//flash DLED every 5MS
#endif
Tick5m++;
if(Tick5m > 20){
Tick5m = 0;
byGap ++;
#ifdef ENABLE_RUN_LED
gRunled_tick++;
#endif
#ifdef ENABLE_DEVICE_DETECT
bgDevChkGap ++;
#endif
VolTicks ++;
SysTicks ++;
IRTicks++;
bgDispGap ++;
SongLocateTick++;
#if(DIGITAL_SHOW == DIGITAL_SHOW_LCM)
if(mp3status == MP3STATUS_PLAY){
bgMP3TMS ++;
if(bgMP3TMS >= 10){
bgMP3TMS = 0;
bgMP3TS ++;
}
if(bgMP3TS >= 60){
bgMP3TS = 0;
bgMP3TM ++;
}
}
#endif
}
ENABLE_INTERRUPTS;
return;
}
void halINTInit(void)
{
TMOD = 0x11;//set TIMER 0 and TIMER 1 as 16 bits counter
TH0 = TIMER0_5MS_TH; // TIMER 0 init
TL0 = TIMER0_5MS_TL;
ET0 = 1; //打开T0中断
TR0 = 1; //启动T0
halIRINTInit();
ENABLE_INTERRUPTS;//开总中断
UartOutText("System INT Init \r\n");
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -