之前所有用过的
单片机都是由
芯片制造商提供一个软件平台,在上面可以针对本品牌的单片机进行软件
仿真。
而STC单片机却没有自己的软件平台,还只是依托于第三方的软件,如KEIL C.
最近在玩一款STC15系列的单片机,有用到资源
tiMER2。发现程序在KEIL软件调试的时候,无法触发定时2中断。定时器0中断就可以触发,一切正常。
而将程序烧写进目标板时,TIMER2又是运行良好。
通过分析,我认为应该是STC内部寄存器设置已经不同于传统的51系列单片机,包括定时器2的SFR也发生了很大的变化
如STC单片机的TIMER2需要AUXR进行设置,而51则不需要。定时器寄存器也发生了变化,STC的timer2寄存器为T2H[D6H] T2L[D7H] 而51则是TH2[CDH]TL2[CCH]
而在KEIL仿真时,STC又无法向KEIL中添加这些寄存器的功能。只能借助现有的51资源凑合着用。所以让人感觉F1赛车手去开拖拉机,我有更好的功能更好的手段,但是软件并不支持,心有余而力不足。
没办法,我只能在软件仿真时,将TIMER2改为主循环程序中的一个子程序,而不依靠中断来进行。一次主循环进入一次处理程序。借用此办法来验证程序的逻辑性是否正确。
以上是我遇到的问题,在网上搜索了很久却没有找到合适的解决办法。不知道大家是否有过这样的问题,是如何处理的呢?
一周热门 更多>