#include "delay.h" static vuint16 delay_ms_a = 0; static vuint16 delay_us_a = 0; //------------------------------------------------------------------------------------------------------------------- // @brief 软件延时函数初始化 // @param NULL // @return void // Sample usage: 无需用户调用,用户请使用h文件中的宏定义 //------------------------------------------------------------------------------------------------------------------- void delay_init(void) { delay_ms_a = sys_clk / 6000; delay_us_a = sys_clk / 7000000; if(sys_clk <= 12000000) delay_us_a++; } //------------------------------------------------------------------------------------------------------------------- // @brief 软件延时函数 // @param x 需要延时的时间(ms) // @return void // Sample usage: 无需用户调用,用户请使用h文件中的宏定义 //------------------------------------------------------------------------------------------------------------------- void delay_ms(uint16 ms) { uint16 i; do { i = delay_ms_a; //i = sys_clk/6000;//参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟. while(--i); }while(--ms); } //------------------------------------------------------------------------------------------------------------------- // @brief 软件延时函数(这是一个不准确的延时) // @param x 需要延时的时间(us) // @return void // Sample usage: 无需用户调用,用户请使用h文件中的宏定义 //------------------------------------------------------------------------------------------------------------------- void delay_us(uint32 us) { uint16 i; do { i = delay_us_a; //i = sys_clk/6000;//参数: ms,要延时的ms数, 这里只支持1~255ms. 自动适应主时钟. while(--i); }while(--us); }