timer.c

来自「一种51单片机嵌入式系统SMALL RTOS 51的应用」· C语言 代码 · 共 54 行

C
54
字号


void time_init()
{
	
	ET0 = 0; /* Forbid T0 INT */
	TMOD = (TMOD & 0xf0) | 0x01; /*·??1*/
	     
	TF0 = 0; /* Reset */
	TH0 = 0x4c ;       /* 50ms timer */
	TL0 = 0x00 ;   
	
	time_1sCounter = 0 ;
	
//	EA = 1 ; /* CPU Open INT */
	ET0 = 1; /* Permit T0 INT */
	PT0 = 1; /* Hight Priority */
	TR0 = 1; /* Start T0 */
}
void time_interrupt() interrupt 1 using 2
{
	TH0 = 0x4c ;
	TL0 = 0x00 ;
	OS_ENTER_CRITICAL(); 
	time_1sCounter++ ;
	dotdisp_conter ++ ;
	if(dotdisp_conter >= 10)
	{
		dotdisp_conter = 0 ;
		dot_disp = !dot_disp ;
		disp_time() ;
	}
	if(time_1sCounter >= 20)
	{
		time_1sCounter = 0 ;
		year_table.second ++ ;
		if(year_table.second >= 60)
		{
			year_table.second = 0 ;
			year_table.minute ++ ;
			if(year_table.minute >= 60)
			{
				year_table.minute = 0 ;
				year_table.hour ++ ;
				if(year_table.hour>=24)
				{
					year_table.hour = 0 ;
				}
			}
		}
	}
	OS_EXIT_CRITICAL();
}

⌨️ 快捷键说明

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