发 帖  
[问答]

如何在Keil ARM MDK中实现延迟功能

3070 ARM MDK
2018-8-22 10:29:23   1 评论 分享淘帖 邀请回答 举报
1 条评论
  • 2018-8-22 13:44

    以前我使用IAR Embedded Workbench进行AVR。它具有非常好的内在__delay_cycles()类型的宏函数,编译器用精确处理器周期时间的阻塞延迟代替。例如,使用#define FCPU 5000000UL我可以实现与时钟无关的固定延迟,例如这个__delay_cycles(FCPU * 1e-3)编译器替换正确的1ms延迟。如果我需要那部分代码以另一个时钟速度工作,我只是改变了FCPU并重新编译。AVR-GCC具有delay.h,函数_delay_us()和_delay_ms()具有类似的功能,但有一些限制。

2个回答
2018-8-22 13:45:01 1 评论

举报

1 条评论
  • 2018-8-22 13:46

    这是一个选项,大多数更好的编译器,例如iar.com,允许您更改每个文件的优化设置。我会为这个功能禁用它们。如果你将它宏视图,你必须确保你的编译器没有优化它。当设置为最大优化时,IAR将检测此循环并将其删除。做计时的最佳方法是计时器功能,请求者出于某种原因想避免它。

2018-8-22 13:46:46 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

您需要登录后才可以回帖 登录/注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
快速回复 返回顶部 返回列表
关注微信公众号

电子发烧友网

电子发烧友论坛

社区合作
刘勇
联系电话:15994832713
邮箱地址:liuyong@huaqiu.com
社区管理
elecfans短短
微信:elecfans_666
邮箱:users@huaqiu.com
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表