智能车制作

标题: xs128 pwm控制电机 [打印本页]

作者: xiazeyang1008    时间: 2012-2-22 12:37
标题: xs128 pwm控制电机
#include <hidef.h>      /* common defines and macros */
#include <mc9s12xs128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"

void initpll(void)//40MHz,外部时钟为16MHz
{
     CLKSEL_PLLSEL=0;
     PLLCTL_PLLON=0;
     SYNR=0xc0 | 0x07;//PLLCLK =2*OSCCLK*(SYNR + 1)/(REFDV + 1)
     REFDV=0x80 | 0x01;
     PLLCTL_PLLON=1;
     asm  NOP;
     asm  NOP;
     asm  NOP;
     while((CRGFLG&0X08)==0);//时钟校正同步
     CLKSEL_PLLSEL=1;
}

void main(void)
  {   initpll();
      PWME=0x00;
      PWMCTL=0X10;    //01连起来供给舵机
      PWMCAE=0X00;
      PWMPOL=0XFF;    //先输出高电平
      PWMCLK=0X03;    //01选择SA时钟,23选择B,45选择A
      PWMPRCLK=0X55;  //对A时钟进行32分频,B时钟进行32分频 A=2M B=2M
      PWMSCLA= 4;     //SA=2M/(2*4)=250K
      PWMPER01=5000;  // 周期为 250K/5000=50HZ  舵机
      PWMDTY01=430;  //  舵机的中间位置440,增大往右530转差不多40度,减小往左380转差不多 舵机从最左到最右的时间为160MS
      PWMPER3=200;    //  周期为 2M/200=10KHZ   电机左 正转
      PWMPER2=200;
      PWMDTY2=50;    //  左电机
     PWMDTY3=0;          //电机左  正转
      PWMPER4=200 ;
      PWMPER5=200;    //  占空比为 0% 左电机
      PWMDTY5=0;    //   电机右 正转
      PWMDTY4=100;      ///电机右  反转
      //PWMDTY4=0 ;  
      //占空比为 0% 右电机
      PWME=0XFF;   //通道使能
   
   
  EnableInterrupts;
  for(;;) {} /* wait forever */
  /* please make sure that you never leave this function */
}
以上为程序代码,有pwm输出,测试过驱动电路没问题,用上届的程序可以跑得,但是用上面的程序怎么也没反应,能帮我看下吗,解决不了很不爽

作者: Solemn胜威    时间: 2012-2-24 10:28
你这个里面怎么还控制舵机呀,,,一看就是错的哈
作者: Solemn胜威    时间: 2012-2-24 10:29
你是不是弄错了程序呀
作者: xiazeyang1008    时间: 2012-2-24 14:53
难道不可以控制舵机?
作者: sonwendi    时间: 2012-2-24 15:37
本帖最后由 sonwendi 于 2012-2-24 15:40 编辑

你测一测pwm有没有输出,看程序似乎没有问题
详细说一下你的症状

作者: gang82921390    时间: 2012-2-24 23:49
sonwendi 发表于 2012-2-24 15:37
你测一测pwm有没有输出,看程序似乎没有问题
详细说一下你的症状

敢问版主是女是男啊
作者: xiazeyang1008    时间: 2012-2-25 20:32
sonwendi 发表于 2012-2-24 15:37
你测一测pwm有没有输出,看程序似乎没有问题
详细说一下你的症状

有pwm输出的 但是我测过电机两端没电压 纠结了


作者: sonwendi    时间: 2012-2-28 14:43
xiazeyang1008 发表于 2012-2-25 20:32
有pwm输出的 但是我测过电机两端没电压 纠结了

那应该是驱动电路的问题
作者: eminemkobe    时间: 2012-2-28 20:44

作者: xiazeyang1008    时间: 2012-2-28 21:04
sonwendi 发表于 2012-2-28 14:43
那应该是驱动电路的问题

解决了 是电路问题 接触有点问题
作者: 0蓝色精灵0    时间: 2012-3-6 14:50
sonwendi 发表于 2012-2-24 15:37
你测一测pwm有没有输出,看程序似乎没有问题
详细说一下你的症状

  前辈能给段s12xs128mal  舵机s-d6的舵机控制程序么!什么pwm的,不懂,希望教教,怎么上手快!需要看些什么资料,能先看懂别人的一些这方面的程序!先谢谢了
作者: sonwendi    时间: 2012-3-9 23:35
0蓝色精灵0 发表于 2012-3-6 14:50
前辈能给段s12xs128mal  舵机s-d6的舵机控制程序么!什么pwm的,不懂,希望教教,怎么上手快!需要看些 ...

你在论坛里看看吧,资料很多的,可以先了解一下单片机的使用,然后算法再用上去
作者: 可欣    时间: 2012-9-26 23:39

作者: HHHvictor    时间: 2012-11-9 19:42
请问如何让电机反转??你的设置那里没看懂~~
作者: 就在远方    时间: 2012-12-16 21:32
怎么有asm的哦?

作者: 583251257    时间: 2014-3-26 20:09
PWMPER3=200;    //  周期为 2M/200=10KHZ   电机左 正转
      PWMPER2=200;
       PWMDTY2=50;    //  左电机
     PWMDTY3=0;          //电机左  正转
      PWMPER4=200 ;
       PWMPER5=200;    //  占空比为 0% 左电机
      PWMDTY5=0;    //   电机右 正转
      PWMDTY4=100;      ///电机右  反转
      //PWMDTY4=0 ;  


为什么这样就可以让电机反转???为什么用这么多通道??
作者: ★奔/1孓亥★    时间: 2014-5-18 18:15
不用舵机




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