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

📄 pwm.c

📁 这里面包括所有的DSP程序例程
💻 C
字号:
#include "DSP28_Device.h"

void xnitgpio()
{
	EALLOW;
    GpioMuxRegs.GPEMUX.bit.XINT2_ADCSOC_GPIOE1=1;
	GpioMuxRegs.GPEQUAL.BIT.QUALPRD=0x0ff;
	XIntruptRegs.XINT2CR.bit.ENABLE=1;
	XIntruptRegs.XINT2CR.bit.POLARITY=0;
	EDIS;
}


void InitEvA(void){
//设置GPIO	
	EALLOW;
	GpioMuxRegs.GPAMUX.all=0x00ff;
	//GpioMuxRegs.GPAMUX.all=0x00fe;
	//GpioMuxRegs.GPADIR.bit.GPIOA0=1;    
	//GpioDataRegs.GPADAT.bit.GPIOA0=1;
	EDIS;
	
// 初始化定时器控制寄存器 (EV A)
    EvaRegs.GPTCONA.all = 0;
   
//设置定时器1
    // 设置定时器1的周期和比较;
    EvaRegs.T1PR = 0x1d4c;//10khz;       // 周期
    EvaRegs.T1CMPR = 0x1d4c;     // 比较
    // 中断使能
    EvaRegs.EVAIMRA.bit.T1PINT = 1;
    EvaRegs.EVAIFRA.bit.T1PINT = 1;
    // 清除计数寄存器
    EvaRegs.T1CNT = 0x0000;
    // 设置定时器控制寄存器
    //EvaRegs.T1CON.all = 0x1042;
	EvaRegs.T1CON.all = 0x1040;
    //连续递增/递减计数,定时器使能,比较使能
    
//设置定时器2
    // 设置定时器2的周期和比较;
    EvaRegs.T2PR = 0x1d4c;//0x0fff;       // 周期
    EvaRegs.T2CMPR = 0x000;     // 比较
    // 清除计数寄存器
    EvaRegs.T2CNT = 0x0000;
    // 设置定时器控制寄存器
    //EvaRegs.T2CON.all = 0x1042;
	EvaRegs.T2CON.all = 0x1040;
	EvaRegs.EVAIMRB.bit.T2PINT = 1;//定时器2周期中断允许
    EvaRegs.EVAIFRB.bit.T2PINT = 1;//清除标志 
    
//设置T1PWM和T2PWM
	//比较逻辑驱动T1/T2PWM
    EvaRegs.GPTCONA.bit.TCOMPOE=1;
	//EvaRegs.GPTCONA .bit .TCMPOE=1;
	//定时器1比较其极性设置为低电平有效
	EvaRegs.GPTCONA .bit .T1PIN =1;
	//定时器2比较其极性设置为高电平有效
	EvaRegs.GPTCONA .bit .T2PIN =2;
	
//使能产生PWM1-PWM6的比较功能
	/*EvaRegs.CMPR1 =0x00c0;
	EvaRegs.CMPR2 =0x03c0;
	EvaRegs.CMPR3 =0x0fc0;*/
	
//比较方式控制
	//输出引脚1CMPR1-高有效	输出引脚2CMPR1-低有效	
	//输出引脚3CMPR2-高有效	输出引脚4CMPR2-低有效	
	//输出引脚5CMPR3-高有效	输出引脚6CMPR3-低有效	
	//EvaRegs.ACTRA .all=0x0666;
	//EvaRegs.DBTCONA.all=0x0Af8;//x/4,死区开,m=2,p=4,t=0.2us
//	EvaRegs.COMCONA .all=0xA600;		
}	

⌨️ 快捷键说明

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