前面提到关于编译器优化问题,经过几天的试验,发现引起程序不能正确运行的原因是:优化选项中的公共表达式优化,
这个主要针对在头文件中定义的define 语句 或者类似的变量和函数替代语句。
我将define定义全部修改成函数形式,然后优化选项全部选中,编译程序运行,发现数字电位器MAX5477运行正常了。
所以这里说一句吧,如果程序运行不正常,初步确认程序控制的时序没有问题,调整优化选项以后,程序运行正常了,请不要抱怨编译器优化不好,
其实主要原因还是我们自己的程序书写方式,或者一些定义不够规范,使得编译器将它优化了,然后导致一些莫名其妙的问题。
只要我们自己一步一步的调试,认真分析汇编和C代码,终会找到问题所在的,一定要先规范自己的代码书写方式。
阅读(1236) | 评论(0) | 转发(0) |