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

📄 main.c

📁 这是我从朋友那搞到的pic学习资料
💻 C
字号:
/* ****************************************************************
** 功能描述: ECCP1工作于PWM半桥输出;P1A、P1B带死区控制的调制信号输出
*************************************************************** */
#include	"pic18.h"				/* PIC18系列的头文件 */

/* ****************************************************************
** 函 数 名: initial()
** 功能描述: 系统初始化子程序
*************************************************************** */
void	initial()
{
	INTCON=0x00;			/* bit7-bit0:关总中断 */
	ADCON1=0X07;			/* 设置数字输入输出口 */
	PIE1=0;					/* PIE1 的中断不使能 */			
	PIE2=0;					/* PIE2 的中断不使能 */	
	PIE3=0;					/* PIE3 的中断不使能 */	
}

/* 	**************************************************************
**	函 数 名: ECCPinitial()
**	功    能:ECCP1的PWM工作初始化子程序
****************************************************************** */ 
void	ECCPinitial()
{
	CMCON=0x07;  					/* 关比较器 */
	TRISD=TRISD&0X0F;	/* 关闭ECCP1的P1A、P1B、P1C、P1D输出 */		
	PR2=0XFF;				/* PWM工作周期=((PR2)+1)*4*Tosc*(TMR2前分频值)*/
	ECCPR1L=0X80;			/* ECCP1高电平高8位为1000 0000=0X80 */
	ECCP1CON=0X8C;		/* ECCP1工作于PWM,P1A、P1C激活为高电平,P1B、P1D激活为高电平,半桥输出,P1A、P1B带死区控制的调制信号输出,P1C、P1D分配为端口引脚;PWM工作循环周期的低两位为00,占空比为0.5 */
	ECCP1DEL=0x0f;			/* 半桥输出模式中PWM延时计数为15个指令周期 */
	TMR2IF=0;				/* 清中断标志 */
	T2CON=0X04;			/* 打开TMR2,其前分频为1,同时开始输出PWM波形 */
	while(1)
	{
		if(1==TMR2IF)break;	/* 等待TMR2溢出,新的PWM周期从此开始 */
	}
	TRISD5=0;				/* P1B使能调制输出 */
	TRISD4=0;				/* P1A使能调制输出 */
}

main()
{
	initial();					/* 系统初始化子程序 */
	ECCPinitial();				/* ECCP1设置 */
	while(1)
	{	
		;
	}
}

⌨️ 快捷键说明

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