⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwm.c

📁 冷火MCF52255开发板精华资料
💻 C
字号:
#include "PWM.h"


void PWM_init(void)
{
	
	MCF_GPIO_PTCPAR=MCF_GPIO_PTCPAR_DTIN0_PWM0
				   |MCF_GPIO_PTCPAR_DTIN1_PWM2
				   |MCF_GPIO_PTCPAR_DTIN2_PWM4
				   |MCF_GPIO_PTCPAR_DTIN3_PWM6;
	
	MCF_GPIO_PTAPAR=MCF_GPIO_PTAPAR_ICOC0_PWM1
				   |MCF_GPIO_PTAPAR_ICOC1_PWM3
				   |MCF_GPIO_PTAPAR_ICOC2_PWM5
				   |MCF_GPIO_PTAPAR_ICOC3_PWM7;
				   
	//pwm Polarity Register 
	//PWM 极性寄存器 1:高,0:低
	MCF_PWM_PWMPOL=MCF_PWM_PWMPOL_PPOL0
				  |MCF_PWM_PWMPOL_PPOL1
				  |MCF_PWM_PWMPOL_PPOL2
				  |MCF_PWM_PWMPOL_PPOL3
				  |MCF_PWM_PWMPOL_PPOL4
				  |MCF_PWM_PWMPOL_PPOL5
				  |MCF_PWM_PWMPOL_PPOL6
				  |MCF_PWM_PWMPOL_PPOL7;

	//pwm Clock select register:1-SA or SB  0-A or B
	//PWM 时钟选择寄存器 1:SA / SB , 0:A / B
	MCF_PWM_PWMCLK=MCF_PWM_PWMCLK_PCLK0
				  |MCF_PWM_PWMCLK_PCLK1
				  |MCF_PWM_PWMCLK_PCLK2
				  |MCF_PWM_PWMCLK_PCLK3
				  |MCF_PWM_PWMCLK_PCLK4
				  |MCF_PWM_PWMCLK_PCLK5
				  |MCF_PWM_PWMCLK_PCLK6
				  |MCF_PWM_PWMCLK_PCLK7;

	//pwm prescale clock select register bit[6:4]PCKB  bit[2:0]PCKA
	//PWM 预分频寄存器 fA=fBUS/2^PCKA,fB=fBUS/2^PCKB
	MCF_PWM_PWMPRCLK=MCF_PWM_PWMPRCLK_PCKA(0)   
					|MCF_PWM_PWMPRCLK_PCKB(0);

	//pwm center align enable register:1-center-aligned 0-left-aligned
	//PWM 中心对齐使能寄存器 1:中心对齐,0:左对齐
	MCF_PWM_PWMCAE=MCF_PWM_PWMCAE_CAE0
				  |MCF_PWM_PWMCAE_CAE1
				  |MCF_PWM_PWMCAE_CAE2
				  |MCF_PWM_PWMCAE_CAE3
				  |MCF_PWM_PWMCAE_CAE4
				  |MCF_PWM_PWMCAE_CAE5
				  |MCF_PWM_PWMCAE_CAE6
				  |MCF_PWM_PWMCAE_CAE7;

	//pwm control register:0-separate
	//PWM 控制寄存器 
	MCF_PWM_PWMCTL=0x00;

	//pwm scale A&B register Clock SA=Clock A/2*PWMSCLA
	//PWM 分频寄存器 A/B fSA=fA/(2*PWMSCLA)
	MCF_PWM_PWMSCLA=100;
	MCF_PWM_PWMSCLB=100;

	//pwm channel counter register
	//PWM 通道计数寄存器
	MCF_PWM_PWMCNT0=0;
	MCF_PWM_PWMCNT1=0;
	MCF_PWM_PWMCNT2=0;
	MCF_PWM_PWMCNT3=0;
	MCF_PWM_PWMCNT4=0;
	MCF_PWM_PWMCNT5=0;
	MCF_PWM_PWMCNT6=0;
	MCF_PWM_PWMCNT7=0;
	
	
	//pwm channel period register
	//PWM 通道周期寄存器
	MCF_PWM_PWMPER(0)=100;
	MCF_PWM_PWMPER(1)=100;
	MCF_PWM_PWMPER(2)=100;
	MCF_PWM_PWMPER(3)=100;
	MCF_PWM_PWMPER(4)=100;
	MCF_PWM_PWMPER(5)=100;
	MCF_PWM_PWMPER(6)=100;
	MCF_PWM_PWMPER(7)=100;
	
	//pwm channel duty register
	//PWM 通道占空比寄存器
	MCF_PWM_PWMDTY(0)=10;
	MCF_PWM_PWMDTY(1)=20;
	MCF_PWM_PWMDTY(2)=30;
	MCF_PWM_PWMDTY(3)=40;
	MCF_PWM_PWMDTY(4)=50;
	MCF_PWM_PWMDTY(5)=60;
	MCF_PWM_PWMDTY(6)=70;
	MCF_PWM_PWMDTY(7)=80;
	
	//pwm shutdown register
	//PWM 关闭寄存器
	MCF_PWM_PWMSDN=MCF_PWM_PWMSDN_IF;
	
	//PWM 使能寄存器
	MCF_PWM_PWME=MCF_PWM_PWME_PWME0
				|MCF_PWM_PWME_PWME1
				|MCF_PWM_PWME_PWME2
				|MCF_PWM_PWME_PWME3
				|MCF_PWM_PWME_PWME4
				|MCF_PWM_PWME_PWME5
				|MCF_PWM_PWME_PWME6
				|MCF_PWM_PWME_PWME7;
}
				   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -