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

📄 timer.c

📁 采用Mega16+VS1011B+SD卡制作的Mp3
💻 C
字号:
//TIMER0 initialize - prescale:8
// WGM: Normal
// desired value: 10KHz
// actual value: 10.000KHz (0.0%)
# include "iom16v.h"
# include "LCDFun.h"
# include "macros.h"

extern void DisplayNumChar(unsigned char l,unsigned char h,unsigned char ll,unsigned char ShowBit);
extern void PrintOneASCII(uchar h,uchar l,uchar Asc);
extern unsigned char SWRecordLyric,SWPlayTime; //歌词开关,时间开关


unsigned char CurSongTim[3]={0,0,0,};		//当前歌曲的播放时间 分:秒:百秒
unsigned char TotalSongTim[4]={0,0,0,0,};	//当前歌曲的播放时间 时:分:秒:百秒

void timer0_init(void)
{
 CLI(); //disable all interrupts
 ;
 TCCR0 = 0x00; //stop
 TCNT0 = 0xB2; //set count
 OCR0  = 0x4E;  //set compare
 TCCR0 = 0x05; //start timer
 ;
 MCUCR = 0x00;
 GICR  = 0x00;
 TIMSK = 0x01; //timer interrupt sources
 SEI(); //re-enable interrupts
}

#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
void timer0_ovf_isr(void)
{
 TCNT0 = 0xB2; //reload counter value
 //时钟处理
 CurSongTim[2]++;TotalSongTim[3]++;
 if(CurSongTim[2]>=100)		//百分秒溢出
 {
	CurSongTim[2]=0;
	CurSongTim[1]++;
	
	if(CurSongTim[1]>=60)	//秒溢出
	{
		CurSongTim[1]=0;
		CurSongTim[0]+=1;
		//分处理:
		//分处理结束
	}
	//秒处理:
	if(SWPlayTime)
	{
	    DisplayNumChar(6,88,CurSongTim[0],2);		//显示当前歌曲播放时间 分
		PrintOneASCII(6,104,':');
		DisplayNumChar(6,112,CurSongTim[1],2);		//显示当前歌曲播放时间 秒
	}
	//秒处理结束
  }
  if(TotalSongTim[3]>=100)		//百分秒溢出
  {
	TotalSongTim[3]=0;
	TotalSongTim[2]++;
	
	if(TotalSongTim[2]>=60)	//秒溢出
	{
		TotalSongTim[2]=0;
		TotalSongTim[1]+=1;
		//分处理:
	}
	//秒处理:
	if(SWPlayTime)
	{
	    DisplayNumChar(7,64,TotalSongTim[0],2);		//显示全部歌曲播放时间 小时
		PrintOneASCII(7,80,':');
		DisplayNumChar(7,88,TotalSongTim[1],2);		//显示全部歌曲播放时间 分
		PrintOneASCII(7,104,':');
		DisplayNumChar(7,112,TotalSongTim[2],2);	//显示全部歌曲播放时间 分
	}
	//秒处理结束
	if(TotalSongTim[1]>=60)	//分溢出
	{
		TotalSongTim[1]=0;
		TotalSongTim[0]+=1;
		//小时处理:
	
		if(TotalSongTim[0]>=24)	//小时溢出
		{
			TotalSongTim[0]=0;
		}
	}
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -