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

📄 dsp28_ev.c

📁 基于dsp2812逆变电源设计 基于dsp2812逆变电源设计
💻 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 + -