Microchip
登录
直播中
郝汉
8年用户
249经验值
私信
关注
[问答]
优化会杀死while循环计数器
开启该帖子的消息推送
dsPIC33
我一直在一个非常大的项目正在推动一个DSPIC33 33 FJ128MC804到它的极限。我使用C30 v3.31,用MPLAB 8开发。当我启用优化时,一个需要大量处理能力的特性执行得更快。任何比O0都高的应用程序从一个太慢的速度到超过足够快的速度。但优化完全破坏了我简单的基于中断的计时器。这是普通的东西:在一个定时器中断中,我递减计数器;它们停止在零。在其他地方,我可以通过设置计数器到一个值(周期)和循环直到计数器为零来等待经过的时间。(这比_u._ms()更有用,因为我在等待时不能做任何事情,监视器会长时间超时,如果存在大量中断活动,周期会变化。)中断代码是:而其他地方的代码,我称为“前景”的代码是,例如:没有优化:(O0)这一切都很完美。一旦我使用任何其他优化级别,如O1,编译器就将while语句转换为无穷循环,该循环仅将分支返回到ClrWdt,而不进行任何测试。一个完全没用的绞刑!我必须以一种没有人做的愚蠢的方式做这件事,因为每个人的用户界面和其他东西都需要基于中断的计时器,对吧?所以…什么是正确的方法?我需要定时器来进行优化,或者我的大项目已经沉没了,没有它就太慢了。(附件是一个简单的项目,只是闪烁的LED。将优化设置改为O0以外的任何东西,它从闪烁的LED变成冻结的LED。非常感谢你的帮助。吉姆
回帖
(9)
张娜
2019-9-6 08:51:29
那个变量是“易挥发的”吗?
那个变量是“易挥发的”吗?
举报
康辅佑
2019-9-6 09:10:00
没有达里奥-那些百事饮酒者从来没有阅读TFM之前写他们的软件SH。对不起,艺术
没有达里奥-那些百事饮酒者从来没有阅读TFM之前写他们的软件SH。对不起,艺术
举报
张娜
2019-9-6 09:18:30
谢谢,我担心这太容易解决哦,谁知道呢!
谢谢,我担心这太容易解决哦,谁知道呢!
举报
李铭鑫
2019-9-6 09:32:56
您好,.scudario提到的是:在其他地方,您应该这样做:当代码没有优化时,它可能并不重要。当优化时,易失性规范对于编译器来说是关于该变量可以和不能做什么优化的重要信息。参见:编译器用户指南E和C语言教科书,Mysil
您好,.scudario提到的是:在其他地方,您应该这样做:当代码没有优化时,它可能并不重要。当优化时,易失性规范对于编译器来说是关于该变量可以和不能做什么优化的重要信息。参见:编译器用户指南E和C语言教科书,Mysil
举报
更多回帖
rotate(-90deg);
回复
相关问答
dsPIC33
计数器
无法
计数
2020-05-31
3024
While
循环
的问题
2018-11-12
1580
计数器
是什么?如何使用
计数器
2022-02-28
2704
For
循环
中的时间
计数器
清零问题
2012-08-25
17502
ucos扩展程序一直再执行
while
死
循环
2020-03-16
1963
计数器
问题
2014-06-17
2834
什么是集成
计数器
?
2021-11-02
1740
急急~~NI9361
计数器
模块测量单个脉宽的问题,在线等...
2016-10-17
5187
定时
器
/
计数器
8253内部有多少个16位的
计数器
2021-10-20
2238
labview如何加一
计数器
的例子,实现单击
计数
2017-02-15
34075
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分