智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 8328|回复: 13
打印 上一主题 下一主题

[控制类] 产生20ms周期的PWM波,错误,PWM波的周期如何设定?

  [复制链接]

3

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
334
威望
270
贡献
52
兑换币
0
注册时间
2010-1-16
在线时间
6 小时
跳转到指定楼层
1#
发表于 2010-4-18 18:45:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
我用示波器检测出来我的PWM波的周期是60ms,为什么呀?PWM波的周期如何计算呢?望给出事例......



void PLL_Init(void)      //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
{                                 //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
  REFDV=1;                 //总线时钟=48/2=24MHz
  SYNR=2;
  while(!(CRGFLG&0x08));
  CLKSEL=0x80;        //选定锁相环时钟
}
void PWM(void)
{
    PWME=0;
    PWMPRCLK=3;          //24M总线时钟8分频,得3M
    PWMSCLA=150;       //SA=A/2/150=10K
    PWMCLK_PCLK0=1;  //选SA
    PWMPOL_PPOL0=1;
    PWMCAE_CAE0=0;
    PWMPER0=200;       //10k/200=50Hz=20ms
    PWMDTY0=100;
   PWME=1;
}

最佳答案

查看完整内容

#include #include #pragma LINK_INFO DERIVATIVE "mc9s12xs128" void PWM_int(void) { PWME = 0x00; //关闭PWM各通道输出 PWMCTL = 0xF0; //01.23.45.67分别级联 //01 23舵机 //45 67电机 // PWMCLK = 0x00; //时钟选择寄存器 PWMCLK_PCLK1 = 1; PWMCLK_PCLK3 = 1; PWMCLK_PCLK5 = 0; ...

30

主题

477

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4940

论坛元老奖章

威望
705
贡献
4087
兑换币
0
注册时间
2009-6-14
在线时间
74 小时
2#
发表于 2010-4-18 18:45:58 | 只看该作者
#include <hidef.h>      
#include <MC9S12XS128.h>   
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"  


void PWM_int(void)

{
  
  PWME = 0x00;       //关闭PWM各通道输出
  PWMCTL = 0xF0;     //01.23.45.67分别级联  
                     //01 23舵机
                     //45 67电机
                     
    // PWMCLK = 0x00;     //时钟选择寄存器  
  PWMCLK_PCLK1 = 1;
  PWMCLK_PCLK3 = 1;
  PWMCLK_PCLK5 = 0;
  PWMCLK_PCLK7 = 0;
  
  
  PWMPRCLK = 0x22;   //预分频寄存器  2分频
  
  PWMSCLA = 0x0a;     //二次分频
  PWMSCLB = 0x0a;
   
  //PWMPOL = 0x00;     //极性选择寄存器
  PWMPOL_PPOL1 = 1;
  PWMPOL_PPOL3 = 1;
  
  PWMPOL_PPOL5 = 0;
  PWMPOL_PPOL7 = 0;
  
  PWMCAE = 0x00;     //波形对齐寄存器
                  //通道周期寄存器
  PWMPER01 = 0x4E1F;//20000-1=19999
  PWMPER23 = 0x4E1F;//20000-1=19999
  
  PWMPER45 = 0x07CF;//2000-1
  PWMPER67 = 0x07CF;//2000-1
  
                 //通道占空比寄存器
  PWMDTY01 = 1640;
  PWMDTY23 = 2000;
  
  PWMDTY45 = 0x03E8;
  PWMDTY67 = 0x0000;  //0-2000
  PWME = 0xff;       //打开PWM各通道输出
  
}


/***********************后期直接赋值不需要在调用***************/
void PWM_01_out(int out)

{
  PWMDTY01 = out;
}
void PWM_23_out(int out)

{
  PWMDTY23 = out;
}
void PWM_45_out(int out)

{
  PWMDTY45 = out;
}
void PWM_67_out(int out)

{
  PWMDTY67 = out;
}
回复

使用道具 举报

30

主题

477

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4940

论坛元老奖章

威望
705
贡献
4087
兑换币
0
注册时间
2009-6-14
在线时间
74 小时
3#
发表于 2010-4-18 19:19:56 | 只看该作者
说明一下,我用的总线频率是80 m
回复

使用道具 举报

15

主题

90

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1792
QQ
威望
542
贡献
1094
兑换币
0
注册时间
2010-1-11
在线时间
78 小时
4#
发表于 2010-4-18 21:54:20 | 只看该作者
80m !!
回复

使用道具 举报

30

主题

477

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4940

论坛元老奖章

威望
705
贡献
4087
兑换币
0
注册时间
2009-6-14
在线时间
74 小时
5#
发表于 2010-4-19 08:53:45 | 只看该作者
回复 4# francis


    应该不高吧, 我看别的论坛生用这个频率的挺多的
回复

使用道具 举报

5

主题

69

帖子

0

精华

高级会员

Rank: 4

积分
749
威望
304
贡献
403
兑换币
2
注册时间
2010-3-23
在线时间
21 小时
6#
发表于 2010-4-19 12:21:49 | 只看该作者
回复 2# 王怀玉


    里面 的那个pwm—in函数和pwm—out函数是什么啊,实现的是什么功能啊 ?刚学的,知道每句话的意思,就是不太明白具体实现的功能!求解。谢谢
回复

使用道具 举报

30

主题

477

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4940

论坛元老奖章

威望
705
贡献
4087
兑换币
0
注册时间
2009-6-14
在线时间
74 小时
7#
发表于 2010-4-19 13:01:58 | 只看该作者
回复 6# nonfreedom


    就是你想输出多少占空比 就给out多少的数值
回复

使用道具 举报

5

主题

69

帖子

0

精华

高级会员

Rank: 4

积分
749
威望
304
贡献
403
兑换币
2
注册时间
2010-3-23
在线时间
21 小时
8#
发表于 2010-4-19 22:01:18 | 只看该作者
回复 7# 王怀玉


    好想明白了,谢谢 啊
回复

使用道具 举报

30

主题

477

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4940

论坛元老奖章

威望
705
贡献
4087
兑换币
0
注册时间
2009-6-14
在线时间
74 小时
9#
发表于 2010-4-20 18:58:26 | 只看该作者
回复 8# nonfreedom


    我用的pwm001控制舵机 函数PWM_01_out(int out);这个周期是20ms 你可也在 int out 那里写数字0到2000;即表示0到2ms注意要看你的舵机适合多少的占空比
   我用pwm45控制电机 周期是1k,输入值是0到2000;
回复

使用道具 举报

2

主题

87

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
421
威望
315
贡献
82
兑换币
0
注册时间
2010-4-19
在线时间
12 小时
10#
发表于 2010-5-16 10:19:54 | 只看该作者
看过
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 00:38 , Processed in 0.378045 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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