zzh2118 发表于 2020-10-21 12:15

红外遥控解码遇到的奇怪问题

开发板(单片机):1#天祥-1cSTC89C52RC2#亚博迷你 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

有不少关于时序控制的程序,经过优化会影响设置的时序的

cainiao518 发表于 2020-11-10 08:44

以空间换时间产生的差异

airwill 发表于 2020-11-11 21:17

编译器在优化的时候,可能会打乱代码顺序, 可能会去掉一些延时性的 "无效" 代码
页: [1]
查看完整版本: 红外遥控解码遇到的奇怪问题