打印
[AVR单片机]

把两个定时器用在相同模式相同时间会有冲突吗?

[复制链接]
2077|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
麻辣鸭脖子|  楼主 | 2010-6-6 21:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
编了一个程序,mega16的三个定时器都用上了,TIMSK=0x41;T1产生PWM波驱动步进电机,T0和T2定时功能,同样定的是最大值35ms,T0溢出计数n1+1,直到n1=1D时向计算机传输数据,也就是大概1s向上发送数据,T2计数统计PWM波的个数,没有开T2的比较匹配中断是因为PWM频率过高,开了比较中断的话很容易出现中断嵌套,计数程序如下
void time2ovf(void)
{
TIMSK&=0xbf;
n2=n2+1;
if(n2==76)
  {
    n2=0;
    s=s+1;
         }

TIMSK|=0x40;
}
76这个数值是根据时钟选择外部晶振7.3728M计算出来的,s表示步进电机位移;实验结果为隔1s有上传数据,可位移s始终为0,不知道什么原因,难道是把两个定时器用在相同模式相同时间会有冲突吗?望高手指点,或者有什么更好的计算PWM脉冲个数的方法呢?求帮助

相关帖子

沙发
xiaomifan| | 2010-6-6 22:23 | 只看该作者
不要紧,不会有冲突

使用特权

评论回复
板凳
wangwo| | 2010-6-7 22:27 | 只看该作者
不是定时器冲突了

使用特权

评论回复
地板
wuzhaolie| | 2010-6-7 22:29 | 只看该作者
这个肯定不会用冲突的

使用特权

评论回复
5
麻辣鸭脖子|  楼主 | 2010-6-15 17:10 | 只看该作者
步进电机位移s为什么始终为0?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

454

帖子

1

粉丝