1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
单片机C语言中,怎么通过循环次数计算延迟函数的延迟时间?
首先你要知道一个指令周期是几秒 算法是1/(晶振频率除以12) 然后你要知道循环究竟执行了几个指令周期 你可以用keil里在线反汇编命令看看你的循环编译成机器语言后到底是几个指令周期 这样就知道了延迟时间 当然你取近似值也可以的 比如 for(i=0,i《255,i++){x=2} 这里x=2是一个指令周期 而执行了255次 假如你的晶振是12MHZ的 则你执行一个指令周期是1us 255次是0.255ms 22.1184 一个指令 0.5us 1/(23/12) 干嘛管12m是多少,就算出23M一个周期是多少,再用总时间除出来次数呗,就for循环那么多次 9:31:16 【吐槽】小波Linux 2015/12/11 9:31:16 12个机器周期 【吐槽】小波Linux 2015/12/11 9:31:30 一个周期 0.5us 【吐槽】小波Linux 2015/12/11 9:31:50 1 / ( 23/12)=0.5us 【吐槽】小波Linux 2015/12/11 9:32:15 6us / 0.5us = 次数? 9:34:00 【潜水】青 2015/12/11 9:34:00 是的 【潜水】青 2015/12/11 9:34:17 还要除二 【潜水】青 2015/12/11 9:34:34 for循环里面每次执行两天指令 【吐槽】小波Linux 2015/12/11 9:35:40 一个for语句 for(i=0;i《12;i++); 6us 【吐槽】小波Linux 2015/12/11 9:35:46 23mhz 9:48:21 【潜水】青 2015/12/11 9:48:21 for(i=0;i《6;i++); 【潜水】青 2015/12/11 9:49:00 我长时间没算忘了 9:49:11 【潜水】青 2015/12/11 9:49:11 给你查呢一下 【潜水】青 2015/12/11 9:51:01 for(i=0;i《6;i++); 这个执行下来应该就是6.24us 【潜水】青 2015/12/11 9:51:10 |
|
|
|
只有小组成员才能发言,加入小组>>
2549 浏览 0 评论
1152浏览 2评论
750浏览 1评论
503浏览 0评论
269浏览 0评论
433浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 08:22 , Processed in 1.244760 second(s), Total 46, Slave 38 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号