📄 osdtimer.c
字号:
/************************************************
* *
* OSDETIMER.C: Timer control routines. *
* *
*************************************************/
#include <reg51.h>
#include "mascot.h"
#include "OSD.h"
#include "global.h"
#if USE_TIMER0
/**************************************************************
* Timer interrupt service routine *
* it should be executed automatically when TIMER 0 overflows. *
***************************************************************/
static void timer0_isr(void) interrupt 1
{
TL0 = (TIMER0_COUNT & 0x00FF);
TH0 = (TIMER0_COUNT >> 8);
TimerCnt++;
if(TimerCnt == 10)
{
TimerCnt = 0;
if(CurrentTimerSet > 0)
{
CurrentTimerSet--;
if(CurrentTimerSet == 0)
TimerOver = 1;
}
if(MoveCnt > 0)
MoveCnt--;
if(PanelOnFlag)// by seven 030717 PotTimerFlag)
{
CurrentTimerSet2--;
if(CurrentTimerSet2 == 0)
{
TimerOver2 = 1;
CurrentTimerSet2 = 10 * 60 * 30;
}
}
}
}
/****************************************
* Timer interrupt initialization *
*****************************************/
void timer0_init(void)
{
/* set timer 0 mode as software control interrupt and run on 16-bit mode */
TMOD &= 0xF0; TMOD |= 0x01;
TL0 = (TIMER0_COUNT & 0x00FF);
TH0 = (TIMER0_COUNT >> 8);
/* enable timer 0 interrupt globly and stop timer running */
ET0 = 1;
TR0 = 0;
/* Clean timer flag */
TimerOver = 0;
TimerCnt = 0;
CurrentTimerSet = 0;
}
/****************************************
* Start Timer *
*****************************************/
void timer0_start (void)
{
TR0 = 1;
}
/****************************************
* Stop Timer *
*****************************************/
/*
void timer0_stop (void)
{
TR0 = 0;
TimerCnt = 0;
}
*/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -