智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 6663|回复: 26
打印 上一主题 下一主题

[编程类] 关于PWM编程

  [复制链接]

0

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
373
威望
261
贡献
72
兑换币
50
注册时间
2008-10-31
在线时间
20 小时
跳转到指定楼层
1#
发表于 2009-4-9 13:07:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5贡献
我们用的是P口的1、2、7端口,其中1和2是控制电机的,7是控制舵机的,都是16位的,请问怎么初始化啊?谢谢了!!!

0

主题

17

帖子

0

精华

高级会员

Rank: 4

积分
524
威望
274
贡献
170
兑换币
56
注册时间
2009-2-14
在线时间
40 小时
2#
发表于 2009-4-9 22:51:28 | 只看该作者
dg128
void PWM_INIT(void)
     {
       /// PDTY01=18400;
        // PDTY67=1500;
         PWMCAE=0x00;
         PWME=0xFF;    //禁止pwm
         PWMPOL=0x42; //起始输出为高电平
         PWMCLK=0x00; //通道零时钟为A
         PWMPRCLK=0x03;       //总线时钟8分频为 CLOCK A
         PWMCTL=0x90;         //通道0.1 6.7级联16位
         PWMDTY01=1520;     //占空比初始化
         PWMPER01=20000;    //周期20毫秒
         PWMDTY67=1300;
         PWMPER67=2000;      //周期2毫秒         
         PWME_PWME1 =1;      
         PWME_PWME7 =1;
         PWMDTY45=10;
回复

使用道具 举报

0

主题

96

帖子

0

精华

高级会员

Rank: 4

积分
823
威望
296
贡献
479
兑换币
0
注册时间
2009-3-10
在线时间
24 小时
3#
发表于 2009-4-10 18:18:29 | 只看该作者
//PWM模块初始化   
void init_PWM(void){   
  PWME=0;   
  /*舵机使用PWM45级联*/   
  PWMCTL_CON45=1;   //级联PWM45   
  PWMCLK_PCLK5=1;   //PWM5选择SA为时钟源   
  PWMPRCLK_PCKA=0;  //A时钟预分频0;分频4   
  PWMSCLA=4;        //即1/3us   
  PWMPOL_PPOL5=1;   //PWM5输出先高后低   
  PWMPER45=30000;       //100Hz   
  PWMDTY45=SERVO_MID;       //舵机中心位置1.5ms高电平   
  PWME_PWME5=1;     //启动PWM5   
     
  /*驱动电机使用PWM2和PWM3,目前仅使用PWM3*/   
  PWMCLK_PCLK2=1;   //PWM2使用SB时钟   
  PWMCLK_PCLK3=1;   //PWM3使用SB时钟   
  PWMPRCLK_PCKB=0;  //B=Bus   
  PWMSCLB=128;       //SB=B/64=384K 即4us   
  PWMPOL_PPOL2=1;   //P2先低后低   
  PWMPOL_PPOL3=1;     //P3先高后低   
  PWMPER2=0xff;   
  PWMPER3=0xff;   
  PWMDTY2=0x60;   
  PWMDTY3=0x00;   
  PWME+=0x0c;       //同时使能PWM23   
}
回复

使用道具 举报

0

主题

119

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1146
威望
887
贡献
247
兑换币
4
注册时间
2009-4-7
在线时间
6 小时
4#
发表于 2009-4-10 18:39:19 | 只看该作者
void PWM_init(void)
{

PWMCTL_CON01=1;


PWMCTL_CON23=1;
//
两个通道联合产生PWM


PWMCAE_CAE1=0;


PWMCAE_CAE3=0;
//0=left,1=center


PWMPOL_PPOL1=1;


PWMPOL_PPOL3=1;
//PWM
波的极性控制


PWMCLK_PCLK1=1;
//
选择SA作为时钟源


PWMCLK_PCLK3=1;
//
选择SB作为时钟源


PWMCNT01=0;


PWMCNT23=0;
//
计数器清零


PWMPRCLK=0x10;
//BUS CLOCK=32M
CLOCKA=BUSCLOCK,CLOCKB=BUSCLOCK/4


PWMSCLA=1;


PWMSCLB=2;
//
PRCLK进行n*2分频


PWMDTY01=0;


PWMPER01=1500;


PWMDTY23=2700;


PWMPER23=40000;


PWME_PWME1=1;


PWME_PWME3=1;
//PWM
通道使能


}
回复

使用道具 举报

0

主题

119

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1146
威望
887
贡献
247
兑换币
4
注册时间
2009-4-7
在线时间
6 小时
5#
发表于 2009-4-10 18:42:00 | 只看该作者
哦,不好意思,忘记改端口了.懂了程序,改一下就可以了.
回复

使用道具 举报

0

主题

119

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1146
威望
887
贡献
247
兑换币
4
注册时间
2009-4-7
在线时间
6 小时
6#
发表于 2009-4-10 18:42:05 | 只看该作者
哦,不好意思,忘记改端口了.懂了程序,改一下就可以了.
回复

使用道具 举报

0

主题

242

帖子

0

精华

高级会员

Rank: 4

积分
925
QQ
威望
451
贡献
382
兑换币
0
注册时间
2008-11-28
在线时间
46 小时
7#
发表于 2009-4-11 16:39:24 | 只看该作者
哦,不好意思,忘记改端口了.懂了程序,改一下就可以了.
zhaodong584 发表于 2009-4-10 18:42
11111111111
回复

使用道具 举报

7

主题

43

帖子

0

精华

高级会员

Rank: 4

积分
903
QQ
威望
351
贡献
430
兑换币
0
注册时间
2009-10-15
在线时间
61 小时
8#
发表于 2009-11-29 20:15:13 | 只看该作者
duoxie
回复

使用道具 举报

7

主题

56

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
356
威望
237
贡献
21
兑换币
0
注册时间
2009-10-28
在线时间
49 小时
9#
发表于 2010-3-13 16:38:27 | 只看该作者
非常感谢!
回复

使用道具 举报

1

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
262
威望
237
贡献
23
兑换币
0
注册时间
2010-3-13
在线时间
1 小时
10#
发表于 2010-3-13 19:05:04 | 只看该作者
学习来
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 15:51 , Processed in 0.048958 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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