完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我一直在一个非常大的项目正在推动一个DSPIC33 33 FJ128MC804到它的极限。我使用C30 v3.31,用MPLAB 8开发。当我启用优化时,一个需要大量处理能力的特性执行得更快。任何比O0都高的应用程序从一个太慢的速度到超过足够快的速度。但优化完全破坏了我简单的基于中断的计时器。这是普通的东西:在一个定时器中断中,我递减计数器;它们停止在零。在其他地方,我可以通过设置计数器到一个值(周期)和循环直到计数器为零来等待经过的时间。(这比_u._ms()更有用,因为我在等待时不能做任何事情,监视器会长时间超时,如果存在大量中断活动,周期会变化。)中断代码是:而其他地方的代码,我称为“前景”的代码是,例如:没有优化:(O0)这一切都很完美。一旦我使用任何其他优化级别,如O1,编译器就将while语句转换为无穷循环,该循环仅将分支返回到ClrWdt,而不进行任何测试。一个完全没用的绞刑!我必须以一种没有人做的愚蠢的方式做这件事,因为每个人的用户界面和其他东西都需要基于中断的计时器,对吧?所以…什么是正确的方法?我需要定时器来进行优化,或者我的大项目已经沉没了,没有它就太慢了。(附件是一个简单的项目,只是闪烁的LED。将优化设置改为O0以外的任何东西,它从闪烁的LED变成冻结的LED。非常感谢你的帮助。吉姆
|
|
相关推荐
9个回答
|
|
那个变量是“易挥发的”吗?
|
|
|
|
没有达里奥-那些百事饮酒者从来没有阅读TFM之前写他们的软件SH。对不起,艺术
|
|
|
|
谢谢,我担心这太容易解决哦,谁知道呢!
|
|
|
|
您好,.scudario提到的是:在其他地方,您应该这样做:当代码没有优化时,它可能并不重要。当优化时,易失性规范对于编译器来说是关于该变量可以和不能做什么优化的重要信息。参见:编译器用户指南E和C语言教科书,Mysil
|
|
|
|
易失性计数器;
|
|
|
|
当然!你们真的是最棒的。我很感激你的帮助。对于可能遇到类似问题的其他人,这里有一个关于声明易失性变量的很好的在线文本:再次感谢,Jim
|
|
|
|
HTTP://www. BARRGROUP.COM/EnguldDeSts/Ho-to/C挥发关键字
|
|
|
|
我通常实现像这样的系统时钟和延迟函数,用无符号整数,溢出并不重要!
|
|
|
|
正如btbass所说,最好只用一个计数器,然后减去开始计数以测量差值。然后你可以以非阻塞方式等待多个事物,并且永远不会改变中断!
|
|
|
|
只有小组成员才能发言,加入小组>>
5242 浏览 9 评论
2031 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3207 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2256 浏览 5 评论
778浏览 1评论
669浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
596浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
678浏览 0评论
577浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 17:49 , Processed in 1.385750 second(s), Total 63, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号