增加精确延时函数
This commit is contained in:
parent
066d3681f5
commit
f82554f500
12
include/time0.h
Normal file
12
include/time0.h
Normal file
@ -0,0 +1,12 @@
|
||||
#ifndef _time0_H
|
||||
#define _time0_H
|
||||
|
||||
#include "public.h"
|
||||
|
||||
extern u16 time0_delay_cnt;
|
||||
|
||||
//函数声明
|
||||
void time0_init(void);
|
||||
void time0_delay1ms(u16 n);
|
||||
|
||||
#endif
|
@ -62,4 +62,12 @@ void uart(void) __interrupt (4) //串口通信中断函数
|
||||
TI = 0;
|
||||
busy = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void time0(void) __interrupt (1) //定时器0中断函数
|
||||
{
|
||||
static u16 i;//定义静态变量i
|
||||
TH0=0XFC; //给定时器赋初值,定时1ms
|
||||
TL0=0X18;
|
||||
time0_delay_cnt++;//计数器自增
|
||||
}
|
45
src/time0.c
Normal file
45
src/time0.c
Normal file
@ -0,0 +1,45 @@
|
||||
/**************************************************************************************
|
||||
深圳市普中科技有限公司(PRECHIN 普中)
|
||||
技术支持:www.prechin.net
|
||||
|
||||
实验名称:定时器0实验
|
||||
接线说明:
|
||||
实验现象:下载程序后,D1指示灯间隔1s闪烁
|
||||
注意事项:
|
||||
***************************************************************************************/
|
||||
#include "time0.h"
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : time0_init
|
||||
* 函数功能 : 定时器0中断配置函数,通过设置TH和TL即可确定定时时间
|
||||
* 输 入 : 无
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
void time0_init(void)
|
||||
{
|
||||
TMOD|=0X01;//选择为定时器0模式,工作方式1
|
||||
TH0=0XFC; //给定时器赋初值,定时1ms
|
||||
TL0=0X18;
|
||||
ET0=1;//打开定时器0中断允许
|
||||
EA=1;//打开总中断
|
||||
TR0=1;//打开定时器
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 函 数 名 : time0_delay1ms
|
||||
* 函数功能 : 定时器精确延时
|
||||
* 输 入 : n 延时时间,单位ms
|
||||
* 输 出 : 无
|
||||
*******************************************************************************/
|
||||
u16 time0_delay_cnt=0;
|
||||
void time0_delay1ms(u16 n)
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
if(time0_delay_cnt>=n)
|
||||
{
|
||||
time0_delay_cnt=0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user