[Kinetis] 延时程序-Delay

[复制链接]
2900|12
 楼主| Jay1987887 发表于 2013-11-29 14:20 | 显示全部楼层 |阅读模式
大家好,我现在正在学习K60,但发现飞思卡尔的TWR-K60D100例程中,好像没有专门的延时程序,说说我想要的代码要求吧:
我希望延时函数能像 Delay_ms(int ms)或Delay_us(int us)一样,只要在函数参数中输入指定的数值,就可延时相应的时间,不要求延时特别精确,
希望大家帮忙能提供实现方法,如果有现成的函数代码提供就更好啊!!

jd972594 发表于 2013-11-29 14:33 | 显示全部楼层
楼主可以写个像51时代时那种2层嵌套的循环函数。
里面小循环执行大概1us,外面套个大循环根据us参数循环执行1us的小循环
jd972594 发表于 2013-11-29 14:35 | 显示全部楼层
我以前都是大概写下小循环,执行完就翻转下IO口,然后用示波器测试下时间,根据这时间再修改小循环执行时间。
说的有点混乱,不知道你清楚哇
FSL_TICS_ZJJ 发表于 2013-11-29 14:50 | 显示全部楼层
看看这个吧,https://bbs.21ic.com/icview-618648-1-1.html
延时的东西很多啊,PIT,LPTMR,FTM,还有内核的systemtick等等。。。
 楼主| Jay1987887 发表于 2013-11-29 14:56 | 显示全部楼层
jd972594 发表于 2013-11-29 14:35
我以前都是大概写下小循环,执行完就翻转下IO口,然后用示波器测试下时间,根据这时间再修改小循环执行时间 ...

那个我知道,但是好像时间不好控制吧!!
motodefy 发表于 2013-11-29 15:17 | 显示全部楼层
延时啊···直接写 - -不就好
jd972594 发表于 2013-11-29 15:37 | 显示全部楼层
Jay1987887 发表于 2013-11-29 14:56
那个我知道,但是好像时间不好控制吧!!

我觉得很好控制啊,你看下
usdelay.jpg
如果你测出来dly=1时正好是1us,那你dly写几不就是几微秒了吗?
当然dly=1时到底是多久要自己测试下,再修改i与什么值比。
FSL_TICS_Robin 发表于 2013-11-29 15:45 | 显示全部楼层
楼上这个主要是C语言写的,所以不像汇编语言可以根据指令执行周期及主频推算延时时间。
而且还会受到中断程序的影响,导致延时时间不准确。
黄小俊 发表于 2013-11-29 16:44 | 显示全部楼层
攻城狮 发表于 2013-12-2 16:58 | 显示全部楼层
学习一下!!
FSL_FAE_ConstYu 发表于 2013-12-3 09:47 | 显示全部楼层
建议使用system tick来完成这个过程,简单高效,优先级比较高,不会受到中断过多的影响
 楼主| Jay1987887 发表于 2013-12-3 17:06 | 显示全部楼层
现在用LPTMR作了一个延时程序,用着还行,感谢各位的回答,谢谢!!
xinyinxing 发表于 2013-12-3 17:22 | 显示全部楼层
好贴!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

150

帖子

0

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