关于ARM延时程序

[复制链接]
3042|5
 楼主| xsgy123 发表于 2011-9-25 22:35 | 显示全部楼层 |阅读模式
需要一个1ms的延时程序,不知道谁有AT91SAM9261这个ARM芯片的误差不是很大的延时程序。
或者是2440的1ms延时程序。
如下模板的,由于这个计算很复制,最直观的需要示波器去看,本人没示波器,所以请做过的朋友提供个。
void DelayNS (uint32 dly)
{
uint32 i;

for ( ; dly>0; dly--)
for (i=0; i<50000; i++);
}


3B1105 发表于 2011-9-26 00:37 | 显示全部楼层
for ( ; dly>0; dly--)   这写的不是有问题吗?  dly是unsigned int 类型,当dly==-1的时候,就是一个很大的数字了,你的这句话是无限循环了

for语句执行一句是4个指令周期,你的指令周期是主频分之一,你看看1ms得for几下,算算吧
craaazyfor 发表于 2011-9-30 08:17 | 显示全部楼层
2楼应该去看下for关键字.
嵌入式裸机 发表于 2011-10-4 20:11 | 显示全部楼层
什么意思  我觉得没问题啊   3# craaazyfor
ycz9999 发表于 2011-10-4 23:24 | 显示全部楼层
你可以用定时器试试
mcu9999 发表于 2011-10-8 13:47 | 显示全部楼层
用定时器算才准确
您需要登录后才可以回帖 登录 | 注册

本版积分规则

229

主题

2603

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部