PWM基础认识

1.功能描述

  • MC9S12DG128 有7个PWM通道,每个通道各自可编程、专用计数器
  • 通道可编程占空比和脉冲极性
  • 周期和占空比是双缓冲的
  • 可编程时钟选择逻辑
  • 紧急关闭操作

2.寄存器设置

Registerdetails
PWMEPWM允许寄存器
PWMPOLPWM极性寄存器
PWMCLKPWM时钟选择R
PWMPRCLKPWM预分频时钟选择R
PWMCAEPWM居中对齐允许R
PWMCTLPWM控制寄存器
PWMTSTPWM测试寄存器
PWMPRSCPWM预分频计数R
PWMSCLA(B)PWM比例因子R
PWMSCNTA(B)PWM比例因子A计数R
PWMCNT(0-7)PWM通道(0-7)计数R
PWMPER(0-7)PWM通道(0-7)周期R
PWMDTY(0-7)PWM通道(0-7)占空比R
PWMSDNPWM关断R

以下引用至Akun6的博客

3.PWM 初始化步骤总结

1、禁止PWM PWME = 0
2、选择时钟 PWMPRCLK,PWMSCLA,PWMSCLB,PWMCLK
3、选择极性 PWMPOL
4、选择对齐方式 PWMCAE
5、选择占空比和周期 PWMDTYx, PWMPERx
6、使能PWM PWME = 1

4.功能说明:MC9S12XS128–PWM例程

//使用说明:实现通道3(PTP3)输出频率为1KHz,占空比为50%的方波,用示波器观察
//程序设计:电子设计吧
//设计时间:2010.01.21
//----------------------------------------------------------------------------------------------------------------//

#include <hidef.h>     
#include "derivative.h"     


//--------------初始化函数----------------//

//-----时钟初始化程序--------//

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;        //选定锁相环时钟

}


//-----PWM初始化程序------//

void PWM_Init(void)

{

  PWME_PWME3=0x00;  // Disable  PWM            禁止            
  PWMPRCLK=0x33;    // 0011 0011 A=B=24M/8=3M  时钟预分频寄存器设置
  PWMSCLA=150;      // SA=A/2/150=10k          时钟设置
  PWMSCLB=15;       // SB=B/2/15 =100k         时钟设置                   
  PWMCLK_PCLK3=1;   // PWM3-----SB             时钟源的选择
  PWMPOL_PPOL3=1;   // Duty=High Time          极性设置
  PWMCAE_CAE3=0;    // Left-aligned            对齐方式设置
  PWMCTL=0x00;      // no concatenation        控制寄存器设置 
  PWMPER3=100;      // Frequency=SB/100=1K     周期寄存器设置
  PWMDTY3=50;       // Duty cycle = 50%        占空比寄存器设置
  PWME_PWME3=1;     // Enable  PWM             使能

}

//-----------------主函数--------------------//

void main(void)

{


  PLL_Init();
  PWM_Init();

 EnableInterrupts;


  for(;;) {
    _FEED_COP();
  }

}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值