wangzeyu315 发表于 2013-5-3 16:50:35

求大神问下延时的问题

麻烦问下:
延时500msvoiddelay500ms(void)
{
    unsignedchara,b,c;
    for(c=23;c>0;c--)
    for(b=152;b>0;b--)
    for(a=70;a>0;a--);
}

这些是怎么算出来的?
麻烦说的详细点,新手别见笑~
{:loveliness:}

l769109884 发表于 2013-5-3 16:58:35

要在汇编,,看他们的指令机器周期时间,,{:smile:}

lcw_swust 发表于 2013-5-3 16:58:38

IO接指示灯,写个循环,循环里调用延时,然后改变IO状态,对照手表的秒针来进行调校

caicai2317 发表于 2013-5-3 17:16:47

这种延时太死了吧,还是用定时器好

zjk 发表于 2013-5-3 17:23:09

建议用定时器,不然太占用资源。。。

wangzeyu315 发表于 2013-5-3 17:28:58

l769109884 发表于 2013-5-3 16:58 static/image/common/back.gif
要在汇编,,看他们的指令机器周期时间,,

比如我晶振是32.768,那应该怎么算 大神

wangzeyu315 发表于 2013-5-3 17:30:05

lcw_swust 发表于 2013-5-3 16:58 static/image/common/back.gif
IO接指示灯,写个循环,循环里调用延时,然后改变IO状态,对照手表的秒针来进行调校 ...

额   我想弄个100ms,200ms的。。这。。

无级电工 发表于 2013-5-3 17:36:54

实际测量修正再测量... ,也不太费事 。既然用了这种方法,也不用指望延时太精确。

l769109884 发表于 2013-5-3 18:05:58

wangzeyu315 发表于 2013-5-3 17:28 static/image/common/back.gif
比如我晶振是32.768,那应该怎么算 大神

那么大的延时就不要用就样做了,,用定时器啊。。。要算的话也很麻烦,,一般用软件算的,,

llf021421 发表于 2013-5-3 18:08:48

我用延时般用示波器测好参数

lcw_swust 发表于 2013-5-3 21:29:41

wangzeyu315 发表于 2013-5-3 17:30 static/image/common/back.gif
额   我想弄个100ms,200ms的。。这。。

举个例子:
void delayms(int t)
{
int i;
while(t--)       
for(i=455;i>0;i--);//由实际情况标定i的初值
}

void main(void)
{
io初始化();
while(1)
{
LED亮;
delayms(500);
LED灭;
delayms(500);
}
}

对照手表的秒针,调节i的初值,让每秒种LED亮灭一次,那么调用delayms(100)就能延时100ms,调用delayms(200)就能延时200ms

xingmazhao 发表于 2013-5-3 22:13:01

用for循环鞋的延时本来就不是很准确,要精确演示还是建议用定时器有不用耗cpu资源

w282529350 发表于 2013-5-4 10:18:05

llf021421 发表于 2013-5-3 18:08 static/image/common/back.gif
我用延时般用示波器测好参数

+1 直接用示波器测量一下就行,所谓的靠for、while延时,至今没搞明白该怎么精确计算{:sad:}

benqme 发表于 2013-5-4 10:29:30

23x152x70x1/晶振频率=时间

who_ma 发表于 2013-5-4 15:55:29

建议使用定时器!

wugang_1213 发表于 2013-5-4 16:35:59

用仿真吧,加断点 看cpu 时间。

l769109884 发表于 2013-5-4 23:39:08

wugang_1213 发表于 2013-5-4 16:35 static/image/common/back.gif
用仿真吧,加断点 看cpu 时间。

精确度达多少呢??

wugang_1213 发表于 2013-5-5 08:49:39

这个 精度挺高的,几乎就是实际的运行时间, 如果说影响的话,那要考虑晶振的误差,温度的影响。不考虑的话,精度100%。

wugang_1213 发表于 2013-5-5 08:50:26

l769109884 发表于 2013-5-4 23:39 static/image/common/back.gif
精确度达多少呢??

这个 精度挺高的,几乎就是实际的运行时间, 如果说影响的话,那要考虑晶振的误差,温度的影响。不考虑的话,精度100%。
页: [1]
查看完整版本: 求大神问下延时的问题