智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 10384|回复: 16
打印 上一主题 下一主题

xs128 pwm控制电机

  [复制链接]

13

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1361
威望
773
贡献
252
兑换币
4
注册时间
2011-9-17
在线时间
168 小时
跳转到指定楼层
1#
发表于 2012-2-22 12:37:48 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
#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输出,测试过驱动电路没问题,用上届的程序可以跑得,但是用上面的程序怎么也没反应,能帮我看下吗,解决不了很不爽

0

主题

117

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
威望
122
贡献
70
兑换币
74
注册时间
2014-4-6
在线时间
19 小时
毕业学校
贵州大学
17#
发表于 2014-5-18 18:15:08 | 只看该作者
不用舵机
回复 支持 反对

使用道具 举报

1

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
威望
118
贡献
70
兑换币
76
注册时间
2014-2-27
在线时间
27 小时
毕业学校
山东大学
16#
发表于 2014-3-26 20:09:42 | 只看该作者
PWMPER3=200;    //  周期为 2M/200=10KHZ   电机左 正转
      PWMPER2=200;
       PWMDTY2=50;    //  左电机
     PWMDTY3=0;          //电机左  正转
      PWMPER4=200 ;
       PWMPER5=200;    //  占空比为 0% 左电机
      PWMDTY5=0;    //   电机右 正转
      PWMDTY4=100;      ///电机右  反转
      //PWMDTY4=0 ;  


为什么这样就可以让电机反转???为什么用这么多通道??
回复 支持 反对

使用道具 举报

5

主题

87

帖子

0

精华

高级会员

Rank: 4

积分
723
威望
374
贡献
213
兑换币
243
注册时间
2012-12-1
在线时间
68 小时
15#
发表于 2012-12-16 21:32:08 | 只看该作者
怎么有asm的哦?
回复 支持 反对

使用道具 举报

24

主题

592

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3933

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
1934
贡献
1157
兑换币
1227
注册时间
2012-10-25
在线时间
421 小时
14#
发表于 2012-11-9 19:42:09 | 只看该作者
请问如何让电机反转??你的设置那里没看懂~~
回复 支持 反对

使用道具 举报

68

主题

1086

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4578

活跃会员奖章优秀会员奖章论坛元老奖章论坛骨干奖章在线王奖章

QQ
威望
2515
贡献
1213
兑换币
1382
注册时间
2012-9-19
在线时间
425 小时
13#
发表于 2012-9-26 23:39:08 | 只看该作者
回复 支持 反对

使用道具 举报

44

主题

1485

帖子

0

精华

版主

早川队队长

Rank: 9Rank: 9Rank: 9

积分
20210

资源大师奖章论坛骨干奖章推广达人奖章论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章优秀版主奖章

QQ
威望
5864
贡献
12698
兑换币
630
注册时间
2009-8-18
在线时间
824 小时
12#
发表于 2012-3-9 23:35:41 | 只看该作者
0蓝色精灵0 发表于 2012-3-6 14:50
前辈能给段s12xs128mal  舵机s-d6的舵机控制程序么!什么pwm的,不懂,希望教教,怎么上手快!需要看些 ...

你在论坛里看看吧,资料很多的,可以先了解一下单片机的使用,然后算法再用上去
回复 支持 反对

使用道具 举报

2

主题

36

帖子

0

精华

高级会员

Rank: 4

积分
932
威望
572
贡献
156
兑换币
0
注册时间
2012-2-18
在线时间
102 小时
11#
发表于 2012-3-6 14:50:05 | 只看该作者
sonwendi 发表于 2012-2-24 15:37
你测一测pwm有没有输出,看程序似乎没有问题
详细说一下你的症状

  前辈能给段s12xs128mal  舵机s-d6的舵机控制程序么!什么pwm的,不懂,希望教教,怎么上手快!需要看些什么资料,能先看懂别人的一些这方面的程序!先谢谢了
回复 支持 反对

使用道具 举报

13

主题

52

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1361
威望
773
贡献
252
兑换币
4
注册时间
2011-9-17
在线时间
168 小时
10#
 楼主| 发表于 2012-2-28 21:04:02 | 只看该作者
sonwendi 发表于 2012-2-28 14:43
那应该是驱动电路的问题

解决了 是电路问题 接触有点问题
回复 支持 反对

使用道具 举报

3

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
威望
214
贡献
28
兑换币
0
注册时间
2012-2-18
在线时间
9 小时
毕业学校
安徽交通职业技术学院
9#
发表于 2012-2-28 20:44:36 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2025-1-15 14:52 , Processed in 0.075588 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表