关于ATmega16控制舵机问题

2019-03-24 20:38发布

小弟初学AVR单片机,做实验时发现ATmega16IO口引脚直接连到舵机信号线上走得很慢,几乎不能驱动,想请教各位大神帮忙看看是我的程序控制PWM波输出出错了,还是ATmega16IO口引脚本身就驱动不了舵机     。程序我用的是定时器0溢出中断 每10Us一次
下面是定时器程序
  /***************************Timer0初始化***********************/
void Timer0Init(void)
{
TCCR0  = 0x00;//停止定时器
TCNT0  = 0xF6;//初始值10us
TIMSK |= (1<<TOIE0);//使能溢出中断
TCCR0  = 0x01;//启动定时器
SREG |= (1<<7);//使能全局中断
}
/***************************Timer0初始化***********************/
/***************************Timer0中断服务程序***********************/
#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)  //定时器溢出中断程序
{
  TCNT0 = 0xF6; //从新调入初始值
  count++; //每中断一次加1
  if (count == 2000) //周期为20ms
  {
      count = 0;
   PORTC |=(1<<0); //PC0置1
   PORTC |=(1<<1); //PC1置1
  }
  
  if (count >= position1)PORTC &=~(1<<0); //PC0清零
  if (count >= position2)PORTC &=~(1<<1);  //PC1清零                  
}
/***************************Timer0中断服务程序***********************/ 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
chunyang
2019-03-25 19:02
IO直接驱动舵机要看舵机的具体型号规格,只有那种带数字驱动接口的可以,传统的纯机械式舵机是根本无法驱动的。

一周热门 更多>