原创 定时器打架

2012-8-23 07:19 873 6 6 分类: 软件与OS

         修改了一个硬件上的错误。2个步进电机的脉冲信号分别用的P3.0和P3.3,而ISP下载也用到了P3.0。导致的问题是,当烧程序的时候,接P3.0上面的电机会转动。显然,烧程序的时候P3.0输出脉冲信号了。我就换了一下,把2个脉冲信号的IO口换为P1.3和P1.4。虽然我还没有用到PWM功能,难免以后不会用到。PWM输出正好是这两个IO口,正好这2个IO口还被我空着。

        软件上让我很头疼。4个定时器,3个定时中断,相互嵌套,争着响应,抢用CPU资源。明显的现象是用Timer0的电机运行正常,接Timer1的电机会被Timer0的电机中断,而使用PCA定时器的数码管和按键则完全运行不正常。我考虑到了中断优先级,但于事无补。我想至少让2个电机正常运行啊,但电机的转速在变,定时重装值在变,定时时间长短在变。Timer0定时短的时候对Timer1影响不大,但定时时间变长后,Timer1上的电机变慢,或则干脆不动了。我知道是定时中断程序不对,里面有太多的程序。但是我现在还不知道怎么修改。等待下一步优化吧!

tam

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条