打印

STM32 for 延时的奇怪现象

[复制链接]
3896|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
bingye1086|  楼主 | 2012-5-2 15:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
instr_delay(1700000);
void instr_delay(INT32U  delay_cnt)
{
INT32U    ii;   
     for(ii=0;ii<delay_cnt;ii++);     
}
延时效果不稳定,例如本次编译后下载程序后,用示波器检测延时时间约为220ms,修改程序的其他地方,然后再编译下载,用示波器检测延时时间约为170ms。每次下载完成后,延时时间不会发生变化,查看汇编代码基本一致。
晶振正常,ucos的时钟节拍正常,该延时是在初始化时钟之后,初始化ucos之前。
估计跟编译有关,要不就是程序的问题,但我实在找不出是什么地方的问题,各位有遇到过的吗?
沙发
bingye1086|  楼主 | 2012-5-2 18:20 | 只看该作者
求助,香版帮忙看一下

使用特权

评论回复
板凳
香水城| | 2012-5-2 18:29 | 只看该作者

使用特权

评论回复
地板
bingye1086|  楼主 | 2012-5-2 18:50 | 只看该作者
论坛里牛人果然很多。感谢香版。
我的程序里还有IO模拟SPI总线的程序,那么说这个时间也是不确定的了,但是应该是在允许的误差范围之内吧

3# 香水城

使用特权

评论回复
5
aozima| | 2012-5-2 19:11 | 只看该作者
SPI只要不快过额定值,随便你有多慢。

不过,都几十M主频的系统还用死循环延时,以及有3个硬件SPI后还要IO模拟。
很明显,方向不对。

使用特权

评论回复
6
bingye1086|  楼主 | 2012-5-3 09:29 | 只看该作者
谢谢。死循环延时确实不大好
5# aozima

使用特权

评论回复
7
dz0658| | 2012-10-15 15:18 | 只看该作者
MARK

使用特权

评论回复
8
xlsbz| | 2014-9-23 11:19 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

75

帖子

1

粉丝