⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer.c

📁 威望公司MP3 + USB MCU 的参考软件
💻 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 + -