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 + -
显示快捷键?