历史上的今天
返回首页

历史上的今天

今天是:2025年04月18日(星期五)

正在发生

2020年04月18日 | AVR/Atmel Studio延时函数没有被调用的问题

2020-04-18 来源:eefocus

最近刚接触Atmel Studio,有很多东西不熟悉。弄了个范例程序,想自己改个跑马灯的程序,需要用到延时,可是延时一做成函数就有问题,根本没有延时的效果,把代码放到主函数里却没有问题。使用avr simulator软件仿真试试,发现延时函数根本没有被调用,可是函数明明声明得没有问题啊。


网上一查发现是GCC编译器优化导致的。这下我明白了,因为GCC编译器会误认为这是没有用的的一段程序,因为他不起任何实际计算效果,目的正是为了占用时间,在进行速度优化的时候便将其省掉了。


解决方法很简单,只要将GCC编译的优化选项关掉即可,或者在延时函数的变量前加volatile。


void Delayabc(uint8_t d)

{

volatile uint8_t a,b,c;

a = 200;

while (a--)

{

b = 200;

while (b--)

{

c = 200;

while (c--)

{

while (d--);

}

}

}

}

推荐阅读

史海拾趣

Electronic-Bauteile Goerlitz GmbH公司的发展小趣事

在技术创新的基础上,Electronic-Bauteile Goerlitz GmbH公司积极拓展市场。公司通过分析市场需求,调整产品策略,不断推出符合市场需求的新产品。同时,公司加强了品牌建设,通过参加国际展会、举办技术研讨会等活动,提高了品牌知名度和影响力。这些努力使得公司的产品在国内外市场上都取得了良好的销售业绩。

EPCOS/TDK公司的发展小趣事

2009年,EPCOS与TDK元件事业部合并,标志着两家公司在电子元器件领域的强强联合。合并后的公司更名为TDK-EPC,由位于日本的TDK-EPC公司管理。这一合并进一步增强了EPCOS在电子元器件领域的实力,使其在全球市场中的地位更加稳固。合并后,公司继续投入大量研发资源,致力于开发更小、更轻、更高效的电子元器件,以满足不断增长的市场需求。

成都成电硅海公司的发展小趣事

在电子行业中,知识产权的保护尤为重要。成都成电硅海公司非常重视知识产权的申请和保护工作。公司成立了专门的知识产权部门,负责专利、商标等知识产权的申请和管理。同时,公司还积极参与各种知识产权的维权行动,维护自身的合法权益。这种对知识产权的重视和保护,不仅提升了公司的核心竞争力,也为公司在电子行业的发展提供了有力的法律保障。

FREESCALE (NXP)公司的发展小趣事

在电子行业中,知识产权的保护尤为重要。成都成电硅海公司非常重视知识产权的申请和保护工作。公司成立了专门的知识产权部门,负责专利、商标等知识产权的申请和管理。同时,公司还积极参与各种知识产权的维权行动,维护自身的合法权益。这种对知识产权的重视和保护,不仅提升了公司的核心竞争力,也为公司在电子行业的发展提供了有力的法律保障。

Dfx公司的发展小趣事

随着汽车电子化程度的不断提高,某汽车制造商面临着如何在极端环境下保证汽车电子产品稳定性的挑战。通过DFX的设计理念,该公司对汽车电子产品的设计进行了全面优化,包括选用耐高温、抗腐蚀的材料、优化电路布局和散热设计等。这些改进措施显著提高了汽车电子产品的可靠性和耐久性,确保了汽车在恶劣环境下的正常运行。

EDDING公司的发展小趣事

ECLIPSE公司深知,要想在竞争激烈的电子行业中保持领先地位,必须不断创新和满足用户需求。因此,公司投入大量资源用于Eclipse的研发和更新,不断推出新版本和新功能。同时,ECLIPSE公司也非常重视社区建设,通过举办开发者大会、提供在线支持等方式,积极与全球开发者互动和交流。这些努力不仅增强了Eclipse的用户黏性,也为其带来了更多的创新思路和商业机会。

问答坊 | AI 解惑

触发器综合问题

module register         #(parameter     Width=8)          (output reg [Width-1:0] out,           input    ...…

查看全部问答>

来长沙参加飞思卡尔智能车竞赛第二天。。。。

本帖最后由 paulhyde 于 2014-9-15 09:13 编辑 今天是来到长沙的第二天,参赛队可以在那里进行现场调试,我们的是上午九点到就点半,下午两点到两点半。 早上七点钟起来,吃完早餐后,坐公车到湖南大学~ 提前 九点钟进入场地调试,呵呵~ 迫不 ...…

查看全部问答>

jffs2文件系統挂載出錯,求助

瘋狂的出jffs2_scan_eraseblock錯誤。 我使用的是 8M Nor Flash 但是 沒有分區,請問 分區的作用是什麽? 這個問題最可能的原因是什麽,仰仗各位的經驗了。…

查看全部问答>

学习wifi有哪些经典的入门书籍?

  小弟是个菜鸟,最近要用到wince下的wifi编程,请高手们指点,推荐几本入门书籍!…

查看全部问答>

新手请教一下EVC的调试方法

请教一下EVC的调试方法 如何使用模拟机,我的模拟机为什么总提示我连不上,我的程序使用我的SDK在目标机上都成功执行了? 我可以在模拟机上单步调试我的程序吗? 我可以在目标机上单步调试我的程序吗?…

查看全部问答>

南京招聘:有嵌入式及硬件基础知识的Delphi BCB程序员,从事监控主站开发

南京招聘:有嵌入式及硬件基础知识的Delphi BCB程序员,从事监控主站开发 要求:      1:熟悉Delphi开发环境。      2:熟练使用SQL-Server编程语言      3:了解一定的硬件知识和 ...…

查看全部问答>

MSP430F1232 编程和仿真问题

 MSP430F1232 只能用TI GANG430 编程器烧写程序,用利尔达 USB仿真器及自己制作的 JTAG 编程器不能 仿真  , 只能用TI GANG430 编程器烧写程序一次而且并没有烧断熔丝,以后再刷就得用BSL.…

查看全部问答>

问下WWDG是怎么工作的?

1 在WWDG工作时 假如窗口值为0x50 是不是只有在计数值在0x50~0x40之间重新刷入计数值才能不引起mcu复位???   2 还有在RCC配置里有一条RCC_GetFlagStatus(RCC_FLAG_WWDGRST)/检验WWDG复位标志位是否职位是什么意思? 是指MCU本次复位是由W ...…

查看全部问答>