智能车制作

 找回密码
 注册

扫一扫,访问微社区

12
返回列表 发新帖
楼主: 南极之星
打印 上一主题 下一主题

[编程类] 求教有关PWM控制舵机的程序

  [复制链接]

17

主题

71

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2531
QQ
威望
347
贡献
2122
兑换币
0
注册时间
2010-1-16
在线时间
31 小时
11#
发表于 2010-4-22 21:25:28 | 只看该作者
试试我编的这个:
//-------------------------------------------
//功能说明:MC9S12XS128--PWM 例程
//使用说明:实现通道3(PP3)输出频率为50Hz,占空比为2%至14%之间循环变化
//-------------------------------------------
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include <MC9S12XS128.h>     /* derivative information */
#define uint unsigned int
#define uchar unsigned char
uchar PWMDTY_NUM=13;      //PWM通道周期寄存器
//-----时钟初始化程序------//
void PLL_Init(void)
{
  REFDV=1; //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)
  SYNR=2; //锁相环时钟=2*16*(2+1)/(1+1)=48MHz
  while(!(CRGFLG & 0x08));
  CLKSEL=0x80; //选定锁相环时钟
}
//--------------------------------
void Delay(void) {
  unsigned int i,j;
  for(i=0;i<50;i++)
    for(j=0;j<3388;j++);
}
//------------------------------
void MCU_Init(void)
{
  DDRB=0x00;
  DDRP=0x08;
  PUCR_PUPBE=1;
}
//-------PWM初始化程序--------//
static void PWM_Init(void)
{
// PWME_PWME3=0;
  PWMPRCLK=0x55;//0010 0010 A=B=24M/32=750K 时钟预分频寄存器设置
  PWMSCLA=5;    //SA=A/2/5=75K
  PWMSCLB=50;   //SB=B/2/50=7.5K
  PWMCLK_PCLK3=1;//PWM3---SB
  PWMPOL_PPOL3=1;//Duty=High Time
  PWMCAE_CAE3=0;//Left-aligned
  PWMCTL=0x00;  //no concatenation
  PWMPER3=150;   //Frequency=SB/150=50
  PWMDTY3=13;    //Duty cycle=8.6%
  PWME_PWME3=0; //Disable PWM
}
//--------PWM占空比改变函数---------//
//---K每改变1,占空比就改变0.7%
void Change_dutycycle(uchar k)
{
  PWME_PWME3=1;
  PWMDTY3=k;
//  PWM_Init();
}
//-------------------------------------------------
void main(void) {
  /* put your own code here */
  PLL_Init();
  PWM_Init();
  MCU_Init();
//  EnableInterrupts;
   PWMDTY_NUM=13;
  for(;;) {
   
  
         PWMDTY_NUM++;
        if(PWMDTY_NUM>23){
          PWMDTY_NUM=2;
          Delay();
        }
        
        Change_dutycycle(PWMDTY_NUM);

//   _FEED_COP(); /*feeds  the dog*/
  } /* loop forever */
  /* please make sure that you never leave main */
}
回复

使用道具 举报

1

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
威望
247
贡献
22
兑换币
0
注册时间
2010-3-9
在线时间
3 小时
12#
发表于 2010-4-23 22:36:46 | 只看该作者
谢谢分享
回复

使用道具 举报

1

主题

30

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
275
威望
247
贡献
22
兑换币
0
注册时间
2010-3-9
在线时间
3 小时
13#
发表于 2010-4-23 22:37:05 | 只看该作者
谢谢分享
回复

使用道具 举报

0

主题

3

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
229
威望
191
贡献
34
兑换币
12
注册时间
2010-4-9
在线时间
2 小时
14#
发表于 2010-5-9 12:48:52 | 只看该作者
回复

使用道具 举报

2

主题

36

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
271
威望
178
贡献
49
兑换币
0
注册时间
2011-9-15
在线时间
22 小时
15#
发表于 2011-9-27 15:19:56 | 只看该作者
求高手了!
回复

使用道具 举报

7

主题

94

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
479
威望
283
贡献
122
兑换币
0
注册时间
2011-10-19
在线时间
37 小时
16#
发表于 2011-11-22 21:28:33 | 只看该作者
那我也先收藏一下
回复

使用道具 举报

0

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
威望
210
贡献
46
兑换币
0
注册时间
2012-2-21
在线时间
19 小时
毕业学校
湖南科技大学
17#
发表于 2012-2-26 19:35:02 | 只看该作者
没有波形。。。
回复

使用道具 举报

2

主题

19

帖子

0

精华

注册会员

Rank: 2

积分
172
威望
112
贡献
16
兑换币
70
注册时间
2013-3-5
在线时间
22 小时
18#
发表于 2013-4-6 15:10:58 | 只看该作者
xuexi
回复

使用道具 举报

8

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
374
威望
208
贡献
82
兑换币
113
注册时间
2013-3-22
在线时间
42 小时
19#
发表于 2013-4-6 17:41:28 | 只看该作者
cyyan 发表于 2010-4-22 21:11
试试这个
void main(void) {
  /* put your own code here */

亲···能注释下么?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 13:31 , Processed in 0.109138 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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