📄 spwm.c
字号:
#include "DSP281x_Device.h"
#include "DSP281x_Examples.h"
Uint16 flag=0,count=0;
Uint16 SPWM[125]={8,23,38,53,68,83,98,112,127,142,157,171,185,200,214,228,242,255,269,282,296,
309,321,334,347,359,371,382,394,405,416,427,437,448,457,467,476,485,494,503,511,518,526,533,
540,546,552,558,563,568,573,577,581,585,588,591,593,595,597,598,599,600,600,600,599,598,597,
595,593,591,588,585,581,577,573,568,563,558,552,546,540,533,526,518,511,503,494,485,476,467,
457,448,437,427,416,405,394,382,371,359,347,334,321,309,296,282,269,255,242,228,214,200,185,
171,157,142,127,112,98,83,68,53,38,23,8};
void init_EVA(void);
interrupt void EVA_timer1_isr(void);
void main(void)
{
InitSysCtrl();
EALLOW;
GpioMuxRegs.GPAMUX.all = 0x00FF;
GpioMuxRegs.GPBMUX.all = 0x00FF;
EDIS;
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
init_EVA();
EvaRegs.EVAIMRA.bit.T1PINT=1;
EvaRegs.EVAIFRA.bit.T1PINT=1;
EALLOW;
PieVectTable.T1PINT = &EVA_timer1_isr;
EDIS;
PieCtrlRegs.PIEIER2.all=M_INT4;
IER|=M_INT2;
EINT;
ERTM;
for(;;);
}
interrupt void EVA_timer1_isr(void)
{
if(count==125)
{
flag=~flag;
count=0;
}
else
{
EvaRegs.CMPR1 = 625+SPWM[count];
EvaRegs.CMPR2 = 625+SPWM[count];
count++;
}
else
{
EvaRegs.CMPR1 = 625-SPWM[count];
EvaRegs.CMPR2 = 625-SPWM[count];
count++;
}
EvaRegs.EVAIMRA.bit.T1PINT=1;
EvaRegs.EVAIFRA.all=BIT7;
PieCtrlRegs.PIEACK.all=PIEACK_GROUP2;
}
void init_EVA()
{
EvaRegs.T1PR = 1250;
EvaRegs.T1CMPR = 1250;
EvaRegs.T1CNT = 0x0000;
EvaRegs.T1CON.all = 0x0842;
EvaRegs.GPTCONA.bit.TCMPOE = 1;
EvaRegs.GPTCONA.bit.T1PIN = 1;
EvaRegs.CMPR1 = 1000;
EvaRegs.CMPR2 = 625;
EvaRegs.ACTRA.all = 0x0666;
EvaRegs.DBTCONA.all = 0x0000;
EvaRegs.COMCONA.all = 0xA600;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -