[STC单片机] 红外遥控解码遇到的奇怪问题

[复制链接]
977|5
 楼主| zzh2118 发表于 2020-10-21 12:15 | 显示全部楼层 |阅读模式
开发板(单片机):1#天祥-1c  STC89C52RC  2#亚博迷你 STC89C52      3#思修 STC8G
软件(电脑):         keil4(台式)                  keil5(笔记本)               keil5(笔记本)

同样的c程序红外线遥控解码 外部中断+定时器 读取高电平加低电平 总时间长度 串口显示
1#  不会出错      
2#会出错 按遥控器第一次 显示正常 例:00ff45ba 第二次及以后显示错误 例:例01ff45ba 所有按键都是如此。
把3#工程文件里的c文件拷贝到2#工程文件下修改编译后也出现同样错误。

说明 开发板和单片机没有问题 ,有问题的是串口程序。

花了一天时间终于解决,就是把优化等级由8改为0 后即可  但奇怪的是1#不会出错。3#原文件调整优化等级也不会出错。

rgjinxuan 发表于 2020-10-21 13:29 | 显示全部楼层
没遇到  
airwill 发表于 2020-11-9 21:54 | 显示全部楼层
有不少关于时序控制的程序,  经过优化会影响设置的时序的

评论

谢谢回复  发表于 2020-11-10 08:09
cainiao518 发表于 2020-11-10 08:44 | 显示全部楼层
以空间换时间产生的差异
airwill 发表于 2020-11-11 21:17 | 显示全部楼层
编译器在优化的时候,  可能会打乱代码顺序, 可能会去掉一些延时性的 "无效" 代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

264

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部