智能车制作

标题: 舵机 [打印本页]

作者: 244880113    时间: 2015-2-18 14:29
标题: 舵机
void PWM_init1(void)  //电机PWM初始化
{
  PWME=0x00;
  PWMCLK=0xc3;   //1100 0011    选择0 1 6 7时钟  SA,SB作为相应时钟的信源
  PWMPRCLK=0x00;    //总线时钟
  PWMSCLA=4;
  PWMPER0=CH_SA_PREQ/Motor_PREQ;    //  1000000/5000==200
  PWMPER1=CH_SA_PREQ/Motor_PREQ;
  PWMSCLB=4;
  PWMPER6=CH_SB_PREQ/Motor_PREQ;      //  200
  PWMPER7=CH_SB_PREQ/Motor_PREQ;
  PWMCTL=0x00;                        // 不级联
}
void Motor_right_forward(unsigned char duty)  //电机前转函数
{
  PWMDTY1=duty;
  PWMDTY0=200;
  PWME_PWME0=1;
  PWME_PWME1=1;
  DDRK_DDRK4=1;
  PORTK_PK4=1;  
}
void Motor_right_back(unsigned char duty)  //电机后转函数
{
  PWMDTY0=duty;
  PWMDTY1=0;
  PWME_PWME1=1;
  PWME_PWME0=1;
  DDRK_DDRK4=1;
  PORTK_PK4=1;  
}
void Motor_right_brake(void)             //电机停转函数
{
  PWME_PWME0=0;
  PWME_PWME1=0;
  DDRK_DDRK4=1;
  PORTK_PK4=0;
}  
这个程序哪有问题,为什么只能前转 不能后转?求大神指点


作者: 暗光    时间: 2015-2-18 16:00
PWMDTY1=1;//是不是应该给1啊,看不懂。帮顶
作者: 244880113    时间: 2015-2-19 10:52
暗光 发表于 2015-2-18 16:00
PWMDTY1=1;//是不是应该给1啊,看不懂。帮顶

为什么给一?后转的PWMDTY1=1???     DTY1=0时,占空比=0%,DTY0=duty/PER,给一是什么意思?

作者: 暗光    时间: 2015-2-19 11:40
全桥驱动的原理就是一个给高占空比,一个给低占空比,比如现在正传,那么反转就是,高占空比的改成低占空比,低占空比改成高占空比,输出就会反转。高低占空比差太小也不转,你试试:lol
作者: 244880113    时间: 2015-2-19 12:41
暗光 发表于 2015-2-19 11:40
全桥驱动的原理就是一个给高占空比,一个给低占空比,比如现在正传,那么反转就是,高占空比的改成低占空比 ...

正转和反转,高低占空比差相同,但是正转可以反转不转,这是为什么?

作者: 暗光    时间: 2015-2-19 17:22
244880113 发表于 2015-2-19 12:41
正转和反转,高低占空比差相同,但是正转可以反转不转,这是为什么?

那就不知道了撒




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2