📄 example_281xevpwm.c
字号:
#include "DSP281x_Device.h" // DSP281x Headerfile Include File
#include "DSP281x_Examples.h" // DSP281x Examples Include File
interrupt void ISRTimer0(void);
void init_eva(void);
#define LED0_ON GpioDataRegs.GPFDAT.bit.GPIOF6=1
#define LED0_OFF GpioDataRegs.GPFDAT.bit.GPIOF6=0
#define LED1_ON GpioDataRegs.GPFDAT.bit.GPIOF7=1
#define LED1_OFF GpioDataRegs.GPFDAT.bit.GPIOF7=0
unsigned int Led_Flag;
void main(void)
{
InitSysCtrl();
EALLOW;
GpioMuxRegs.GPAMUX.all = 0x00F0; // EVA PWM 5-6 GPIOA1,2,3,4
GpioMuxRegs.GPADIR.bit.GPIOA0=1; //配置IO口为输出
GpioMuxRegs.GPADIR.bit.GPIOA1=1;
GpioMuxRegs.GPADIR.bit.GPIOA2=1;
GpioMuxRegs.GPADIR.bit.GPIOA3=1;
GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6=0; //配置GPIOF6,7 为输出
GpioMuxRegs.GPFDIR.bit.GPIOF6=1;
GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7=0;
GpioMuxRegs.GPFDIR.bit.GPIOF7=1;
EDIS;
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;
PieVectTable.TINT0 = &ISRTimer0;
EDIS;
InitCpuTimers();
ConfigCpuTimer(&CpuTimer0, 100, 1500000/8);
StartCpuTimer0(); //定时器开始
IER |= M_INT1; //使能连接到CPU-TIMER0的CPU中断
PieCtrlRegs.PIEIER1.bit.INTx7=1; //使能PIE组1第7个中断
EINT; // 使能全局中断
ERTM; // 使能全局实时中断DBGM
init_eva(); //初始化EVA
for(;;)
{
GpioDataRegs.GPADAT.all=0x000A; //控制电机正转
}
}
void init_eva()
{
// EVA 配置 PWM5-PWM6
// 初始化EVA定时器1
EvaRegs.T1PR = 0xFFFF; // 定时器1周期
// EvaRegs.T1CMPR = 0x3C00; // 定时器1比较器
EvaRegs.T1CNT = 0x0000; // 定时器1计数器
EvaRegs.T1CON.all = 0x1042; // TMODE = 连续递增、递减计数,定时器使能,比较使能
EvaRegs.CMPR3 = 0x3C00; // 使能PWM5-PWM6
EvaRegs.ACTRA.all = 0x0666; // 输出引脚5 CMPR3 - 高有效 输出引脚6 CMPR3 - 低有效
EvaRegs.DBTCONA.all = 0x0000; // 禁止死区
EvaRegs.COMCONA.all = 0xA600;
}
interrupt void ISRTimer0(void)
{
CpuTimer0.InterruptCount++;
PieCtrlRegs.PIEACK.all=PIEACK_GROUP1 //中断相应并准备接受更多中断
if(Led_Flag == 1)
{
LED0_OFF;
LED1_ON;
Led_Flag = 0;
}
else
{
LED0_ON;
LED1_OFF;
Led_Flag = 1;
}
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -