📄 ev.c
字号:
#include "ev.h"
#include "DSP281x_PieCtrl.h"
#include "DSP281x_DefaultIsr.h"
void InitEV()
{
EALLOW;
EvaRegs.T1PR = 0x927C; //T1周期定为500us
// EvaRegs.T1CMPR = 0x3c00;
EvaRegs.ACTRA.all = 0x666; //设置pwm输出135为高有效,246为低有效
EvaRegs.T1CNT = 0; //T1计数值初始为0
EvaRegs.T1CON.all = 0x1042; //定时器比较使能,定时器使能,连续增计数模式
EvaRegs.CMPR1 = 0x493e; //250us
EvaRegs.CMPR2 = 0x249f; //125us
EvaRegs.CMPR3 = 0x57e4; //300us
EvaRegs.COMCONA.bit.CENABLE = 1; //比较使能
EvaRegs.COMCONA.bit.FCOMPOE = 1; //完全比较输出使能pwm1-6
EvaRegs.EVAIMRA.bit.CMP1INT = 1; //比较器中断使能
EvaRegs.EVAIFRA.bit.CMP1INT = 1; //清比较器中断标志位
EDIS;
}
Uint16 g_Time = 9375;
Uint16 *pt = (Uint16 *)0x2001;
Uint16 g_cnt = 0;
interrupt void CMP1INT_ISR(void)
{
g_cnt++;
if(g_cnt / 500 == 1)
*pt = 8;
if(g_cnt / 1000 == 1)
{
*pt = 0;
g_cnt = 0;
}
EALLOW;
EvaRegs.CMPR1 = g_Time;
EDIS;
g_Time += 3750;
if(g_Time > 30000)
g_Time = 9375;
EvaRegs.EVAIFRA.bit.CMP1INT = 1;
PieCtrlRegs.PIEACK.all = 0x2;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -