📄 dsp28_ev.c
字号:
//
// TMDX ALPHA RELEASE
// Intended for product evaluation purposes
//
//###########################################################################
//
// FILE: DSP28_Ev.c
//
// TITLE: DSP28 Event Manager Initialization & Support Functions.
//
//###########################################################################
//
// Ver | dd mmm yyyy | Who | Description of changes
// =====|=============|======|===============================================
// 0.55| 06 May 2002 | L.H. | EzDSP Alpha Release
// 0.56| 20 May 2002 | L.H. | No change
// 0.57| 27 May 2002 | L.H. | No change
//###########################################################################
#include "DSP28_Device.h"
//---------------------------------------------------------------------------
// InitEv:
//---------------------------------------------------------------------------
// This function initializes to a known state.
//
void InitEv(void)
{
// Initialize EVA Timer 1:
// Setup Timer 1 Registers (EV A)
EvaRegs.EVAIFRA.all=0xFFFF;
// EvaRegs.T1PR=4000;
EvaRegs.T1PR=SpwmData.TPR_Modelation;
EvaRegs.T1CNT=0;
EvaRegs.CMPR1=SpwmData.TPR_Modelation;
//以下初始化定时器控制寄存器T1CON
EvaRegs.T1CON.bit.FREE=1;
EvaRegs.T1CON.bit.TMODE=1; //连续增减计数模式
// EvaRegs.T1CON.bit.TMODE=1; //连续增计数模式
EvaRegs.T1CON.bit.TPS=0; //输入时钟=HSPCLK
EvaRegs.T1CON.bit.TENABLE=1; //定时器使能
EvaRegs.T1CON.bit.TCLKS10=0; //使用内部时钟源HSPCLK
EvaRegs.T1CON.bit.TCLD10=0; //当T1CNT下溢时TICON重载
EvaRegs.T1CON.bit.TECMPR=1;
//以下初始化ACTRB,输出有效方式
EvaRegs.ACTR.bit.CMP1ACT=0; //CMP1输出强制低
EvaRegs.ACTR.bit.CMP2ACT=0; //CMP2输出强制低
EvaRegs.ACTR.bit.CMP3ACT=0; //CMP3输出强制低
EvaRegs.ACTR.bit.CMP4ACT=0; //CMP4输出强制低
EvaRegs.ACTR.bit.CMP5ACT=0; //CMP5输出强制低
EvaRegs.ACTR.bit.CMP6ACT=0; //CMP6输出强制低
//以下初始化COMCONA,使能比较器、ACTRA立即加载、CMP下溢加载、比较输出使能、使能SVPWM
EvaRegs.COMCONA.bit.CENABLE=1; //使能比较器操作
EvaRegs.COMCONA.bit.CLD=2; // CMPx立即加载
EvaRegs.COMCONA.bit.SVENABLE=0; //禁止SVPWM模式
EvaRegs.COMCONA.bit.ACTRLD=2; //ACTRA立即加载
EvaRegs.COMCONA.bit.FCOMPOE=1; //比较输出使能
//死区控制寄存器DBTCONA的设置
EvaRegs.DBTCONA.bit.DBT=SpwmData.D_B; //死区定时器周期设置
EvaRegs.DBTCONA.bit.EDBT1=0; //死区定时器1使能,控制PWM1,PWM2
EvaRegs.DBTCONA.bit.EDBT2=0; //死区定时器2使能,控制PWM3,PWM4
EvaRegs.DBTCONA.bit.EDBT3=0; //死区定死器3使能,控制PWM5,PWM6
EvaRegs.DBTCONA.bit.DBTPS=5; //死区预定标因子设定,HCLK/32
EvaRegs.EVAIFRA.bit.T1UFINT=1; //复位定时器下溢中断标志位
EvaRegs.EVAIMRA.bit.T1UFINT=1; //使能定时器下溢中断
PieCtrl.PIEIER2.all |= M_INT6;
IER|=M_INT2;
/*
// Initialize EVB Timer 3:
//清除EVB的中断标志位
EvbRegs.EVBIFRA.all=0xFFFF;
EvbRegs.T3PR = SpwmData.TPR_Modelation; // Timer3 period
EvbRegs.T3CNT=0;
//EvbRegs.T3CMPR = 0x0004; // Timer3 compare
//以下初始化定时器控制寄存器T3CON
//EvbRegs.T3CON.all=0xED42;
EvbRegs.T3CON.bit.FREE=1;
EvbRegs.T3CON.bit.SOFT=1;
EvbRegs.T3CON.bit.TMODE=1; //连续增减计数模式
EvbRegs.T3CON.bit.TPS=0; //输入时钟=HSPCLK
EvbRegs.T3CON.bit.TENABLE=1; //定时器使能
EvbRegs.T3CON.bit.TCLKS10=0; //使用内部时钟源HSPCLK
EvbRegs.T3CON.bit.TCLD10=0; //当T1CNT下溢时TICON重载
EvbRegs.T3CON.bit.TECMPR=1;
//以下初始化ACTRB,确定旋转方向,输出有效方式
//EvbRegs.ACTRB.all=0x9666;
EvbRegs.ACTRB.bit.CMP7ACT=2; //CMP7输出高有效
EvbRegs.ACTRB.bit.CMP8ACT=0; //CMP8输出强制低
EvbRegs.ACTRB.bit.CMP9ACT=2; //CMP9输出高有效
EvbRegs.ACTRB.bit.CMP10ACT=0; //CMP10输出强制低
EvbRegs.ACTRB.bit.CMP11ACT=0; //CMP11输出强制低
EvbRegs.ACTRB.bit.CMP12ACT=2; //CMP12输出高有效
//以下初始化COMCONA,使能比较器、ACTRA立即加载、CMP下溢加载、比较输出使能、使能SVPWM
//EvbRegs.COMCONB.all=0x2DB8;
EvbRegs.COMCONB.bit.CENABLE=1; //使能比较器操作
EvbRegs.COMCONB.bit.CLD=2; // CMPx立即加载
EvbRegs.COMCONB.bit.SVENABLE=0; //禁止SVPWM模式
EvbRegs.COMCONB.bit.ACTRLD=2; //ACTRA立即加载
EvbRegs.COMCONB.bit.FCOMPOE=1; //比较输出使能
EvbRegs.EVBIFRA.bit.T3UFINT=1; //复位定时器下溢中断标志位
EvbRegs.EVBIFRA.bit.CMP4INT=1; //复位比较器4中断标志位
EvbRegs.EVBIFRA.bit.CMP5INT=1; //复位比较器5中断标志位
EvbRegs.EVBIFRA.bit.CMP6INT=1; //复位比较器6中断标志位
EvbRegs.EVBIMRA.bit.T3UFINT=1; //使能定时器下溢中断
EvbRegs.EVBIMRA.bit.CMP4INT=1; //使能比较器4中断
EvbRegs.EVBIMRA.bit.CMP5INT=1; //使能比较器5中断
EvbRegs.EVBIMRA.bit.CMP6INT=1; //使能比较器6中断
*/
}
//===========================================================================
// No more.
//===========================================================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -