您的位置:首页 > 其它

stm32 软件精确延时非systick 非中断

2014-12-23 13:41 225 查看
http://www.amobbs.com/thread-5513913-1-1.html

在阿莫上有位大神hcambridge推荐的软件精确延时:

//精确延时函数调用wait

void wait(unsigned long n)

{

do{

n--;

}while(n);

}

//精确延时函数

#define SYSCLK 72 //指明CPU工作频率为72MHz

#define A 6 //一次循环所花的周期数

#define B 3 //调用、初始化、返回总共所用的周期数

#define delay_us(nus) wait(((nus)*(SYSCLK)-(B))/(A))

#define delay_ms(nms) delay_us((nms)*1000)

#define delay_s(ns) delay_ms((ns)*1000)

//使用方法:

//delay_us(0.4); //延时0.4us

//delay_ms(1456); //延时1.456s

//delay_s(21.4345);//延时21.4345秒
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: