定时器定时不准确。
MCU/单片机:
国民技术N32G030C8T6
开发环境:
IAR8.3
现象:
调试定时器1时定时时间不正常
解决:
1、开始用官方提供的示例测定时器1,定时100ms,在中断里面翻转IO口,然后用示波器看,定时100ms,准确
2、用测试好的代码移到自己的程序里面,发现定时器不正常,原本100ms的定时,变成了几十秒
3、对比官方示例,并反复测试,还是不行,最后没办法,原样用官方给的代码过来,把自己的整个程序注释掉,只运行拿过来的代码,发现还是不行
4、没办法了,整个时候。对比一下工程配置,一个点一个点的对比测试
5、最后在代码优化那里发现了问题,官方用 的是中级优化代码,而我的工程为了调试方便,用的是low级。把优化等级改成hight或者None,就好了,中断就正常了
结论:
在Keil编译器环境中,用level0级调试代码运行正常
在IAR编译环境中,需要把代码优化等级调到hight或者None,不然代码运行不正常
目前只是在国民技术的这颗N32G030里面发现这个问题,其它单片机还没见过。