Delay.h 1.4 KB

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