68 lines
1.4 KiB
C
68 lines
1.4 KiB
C
#ifndef __DELAY_H
|
||
#define __DELAY_H
|
||
#include "sys.h"
|
||
//////////////////////////////////////////////////////////////////////////////////
|
||
//本程序只供学习使用,未经作者许可,不得用于其它任何用途
|
||
//ALIENTEK STM32开发板
|
||
//使用SysTick的普通计数模式对延迟进行管理
|
||
//包括delay_us,delay_ms
|
||
//正点原子@ALIENTEK
|
||
//技术论坛:www.openedv.com
|
||
//修改日期:2012/9/2
|
||
//版本:V1.5
|
||
//版权所有,盗版必究。
|
||
//Copyright(C) 广州市星翼电子科技有限公司 2009-2019
|
||
//All rights reserved
|
||
//********************************************************************************
|
||
//V1.2修改说明
|
||
//修正了中断中调用出现死循环的错误
|
||
//防止延时不准确,采用do while结构!
|
||
|
||
//V1.3修改说明
|
||
//增加了对UCOSII延时的支持.
|
||
//如果使用ucosII,delay_init会自动设置SYSTICK的值,使之与ucos的TICKS_PER_SEC对应.
|
||
//delay_ms和delay_us也进行了针对ucos的改造.
|
||
//delay_us可以在ucos下使用,而且准确度很高,更重要的是没有占用额外的定时器.
|
||
//delay_ms在ucos下,可以当成OSTimeDly来用,在未启动ucos时,它采用delay_us实现,从而准确延时
|
||
//可以用来初始化外设,在启动了ucos之后delay_ms根据延时的长短,选择OSTimeDly实现或者delay_us实现.
|
||
|
||
//V1.4修改说明 20110929
|
||
//修改了使用ucos,但是ucos未启动的时候,delay_ms中中断无法响应的bug.
|
||
//V1.5修改说明 20120902
|
||
//在delay_us加入ucos上锁,防止由于ucos打断delay_us的执行,可能导致的延时不准。
|
||
//////////////////////////////////////////////////////////////////////////////////
|
||
void delay_init(void);
|
||
void delay_ms(u16 nms);
|
||
void delay_us(u32 nus);
|
||
|
||
#endif
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|