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

📄 pwm.c

📁 医疗设备中激光手术台程序源代码
💻 C
字号:

// PWM period = [(PR2) + 1] x 4 x Tosc x (TMR2 prescale value)=8000
// PWM duty cycle = (CCPR1L:CCP1CON<5:4>) x Tosc x (TMR2 prescale value)
//	PR2=0xF9;	// TMR2值,用于设置PWM Timer2 Period
//	CCP1CON=0x0f;	// ccp1 为pwm mode, CCP1CON<5:4>为00,分辨率为8位
//	T2CON=0x04;	// 预分频为1:1,Postscale为1:1,TMR2使能

/************************************************************************** 
*** 程序思想:PWM period恒定为8000,通过改变(CCPR1L:CCP1CON<5:4>)的值
*** 而改变duty cycle,使其在0~8184之间变化
***************************************************************************/
#include	<pic.h>

void pwm_out(unsigned int dat)
{
	unsigned char buf;
	buf = (unsigned char)(dat&0x00ff);
	buf &= 0x03;
	buf = buf<<4;
	CCP1CON |= buf;		// 共十位,CCP1CON的5:4为地2为,CCPR1L为高8位
	CCP2CON |= buf;
	
	dat = dat>>2;
	CCPR1L = (unsigned char)(dat&0x00ff);
	CCPR2L = (unsigned char)(dat&0x00ff);
	
	
//	CCPR2L = i;
	//CCP2CON=0x0f;
}

















⌨️ 快捷键说明

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