智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2120|回复: 2
打印 上一主题 下一主题

mc9s12单片机的PWM的通道级联问题

[复制链接]

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
跳转到指定楼层
1#
发表于 2011-10-22 21:36:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面这个程序 是要实现通道0和1的级联 然后使其输出的方波占空比从0慢慢的变化 变到最大  可是实现不了呀  是怎么回事  各位大侠帮忙看看
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#define uchar unsigned char
#define uint unsigned int
void delay(uint z)
{
  uint x,y;
  for(x=z;x>0;x--)
    for(y=110;y>0;y--);
}
void PLL_INIT(void)
{
  DisableInterrupts;
  CLKSEL_PLLSEL=0;
  PLLCTL_PLLON=0;
  SYNR=2;
  REFDV=1;  //设置24MHZ
  PLLCTL_PLLON=1;
  while(CRGFLG_LOCK==0);
  CLKSEL_PLLSEL=1;
}
void PWM_INIT(void)
{
  PWME=0x00;
  PWMCTL=0xf0;//通道0和1级联
  PWMPRCLK=0x00;
  PWMSCLA=0x01;
  PWMCLK=0xff;
  PWMPOL=0xff;
  PWMCAE=0x00;
  PWMPER01=20000;//PWM通道频率为4MHZ
  PWMDTY01=20000;//初始化占空比
  PWME_PWME0=0x20;
}
void PWM_CASCADE(void)
{
  uint i;
  PWM_INIT();
  for(i=20000;i>0;i--)
  {
     PWMDTY01=i;
     delay(10);
  }
}
void main(void)
{
  PLL_INIT();
EnableInterrupts;
  for(;;)
  {
     PWM_CASCADE();
  }
}

13

主题

70

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1902
威望
934
贡献
622
兑换币
114
注册时间
2011-7-31
在线时间
173 小时
2#
发表于 2011-10-29 01:49:58 | 只看该作者
把"PWMDTY01=20000;//初始化占空比"除去试一试~
回复 支持 反对

使用道具 举报

34

主题

373

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2524
QQ
威望
1344
贡献
750
兑换币
24
注册时间
2011-8-4
在线时间
215 小时
3#
 楼主| 发表于 2011-12-14 16:18:34 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 04:00 , Processed in 0.117245 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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