红外遥控解码遇到的奇怪问题
开发板(单片机):1#天祥-1cSTC89C52RC2#亚博迷你 STC89C52 3#思修 STC8G软件(电脑): keil4(台式) keil5(笔记本) keil5(笔记本)
同样的c程序红外线遥控解码 外部中断+定时器 读取高电平加低电平 总时间长度 串口显示
1#不会出错
2#会出错 按遥控器第一次 显示正常 例:00ff45ba 第二次及以后显示错误 例:例01ff45ba 所有按键都是如此。
把3#工程文件里的c文件拷贝到2#工程文件下修改编译后也出现同样错误。
说明 开发板和单片机没有问题 ,有问题的是串口程序。
花了一天时间终于解决,就是把优化等级由8改为0 后即可但奇怪的是1#不会出错。3#原文件调整优化等级也不会出错。
没遇到 有不少关于时序控制的程序,经过优化会影响设置的时序的 以空间换时间产生的差异 编译器在优化的时候,可能会打乱代码顺序, 可能会去掉一些延时性的 "无效" 代码
页:
[1]