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

📄 dsp281x_ev.c

📁 许继的2812开发全套驱动程序,很全很实用的.rar
💻 C
字号:
//###########################################################################
//
// FILE:	DSP281x_Ev.c
//
// TITLE:	DSP281x Event Manager Initialization & Support Functions.
//
//###########################################################################
//
//  Ver | dd mmm yyyy | Who  | Description of changes
// =====|=============|======|===============================================
//  1.00| 11 Sep 2003 | L.H. | No change since previous version (v.58 Alpha)
//###########################################################################

#include "DSP281x_Device.h"     // DSP281x Headerfile Include File
#include "DSP281x_Examples.h"   // DSP281x Examples Include File

//---------------------------------------------------------------------------
// InitEv: 
//---------------------------------------------------------------------------
// This function initializes to a known state.
//
void InitEv(void)
{
	/*** Configure the EXTCON registers ***/
	EvaRegs.EXTCONA.all = 0x0000;
	EvbRegs.EXTCONB.all = 0x0000;

// EVA Configure T1PWM, T2PWM, PWM1-PWM6 
// Step 1  Initalize the timers
	// Initalize EVA Timer1 
	EvaRegs.T1PR = pwm_half_per;       // Timer1 period
	EvaRegs.T1CMPR = 0x0000;     // Timer1 compare
	EvaRegs.T1CNT = 0x0000;      // Timer1 counter
    // TMODE = continuous up/down mode
	// Timer enable
	// Timer compare enable
	EvaRegs.T1CON.all = 0x0800;   


	// Initalize EVA Timer2 
	EvaRegs.T2PR = pwm_half_per/2;     // Timer2 period
	EvaRegs.T2CMPR = 0x0000;     // Timer2 compare
	EvaRegs.T2CNT = 0x0000;      // Timer2 counter
    // TMODE = continuous up/down
	// Timer enable
	// Timer compare enable
	EvaRegs.T2CON.all = 0x0880;   

	EvaRegs.T1CON.bit.TENABLE = 1;	// Timer1&2 enable
	
// Step 2  Setup T1PWM and T2PWM
	// T1/T2 PWM are in high-impedance
	EvaRegs.GPTCONA.bit.TCMPOE = 0;
	// Polarity of GP Timer 1 Compare = Active low
	EvaRegs.GPTCONA.bit.T1PIN = 1;
	// Polarity of GP Timer 2 Compare = Active high
	EvaRegs.GPTCONA.bit.T2PIN = 2;

// Step 3 Enable compare for PWM1-PWM6
	EvaRegs.CMPR1 = 0x0000;
	EvaRegs.CMPR2 = 0x0000;
	EvaRegs.CMPR3 = 0x0000;
    
    // Compare action control.  Action that takes place
    // on a cmpare event
    // output pin 1 CMPR1 - active high
    // output pin 2 CMPR1 - active low
    // output pin 3 CMPR2 - active high
    // output pin 4 CMPR2 - active low
    // output pin 5 CMPR3 - active high
    // output pin 6 CMPR3 - active low
    EvaRegs.ACTRA.all = 0x0999;
	EvaRegs.DBTCONA.all = 0x0CF4; // Enable deadband,2.5us
    EvaRegs.COMCONA.all = 0xA060;
    
	EvaRegs.CAPCONA.all = 0xA050;	// Enable CAP12, select GP timer2 , detects rising edge , disable CAP3


// EVB Configure T3PWM, T4PWM and PWM7-PWM12
// Step 1 - Initalize the Timers

    // Initalize EVB Timer3 
	// Timer3 controls T3PWM and PWM7-12
	EvbRegs.T3PR = 0xFFFF;       // Timer3 period
	EvbRegs.T3CMPR = 0x3C00;     // Timer3 compare
	EvbRegs.T3CNT = 0x0000;      // Timer3 counter
    // TMODE = continuous up/down
	// Timer enable
	// Timer compare enable
	EvbRegs.T3CON.all = 0x1042;   

    // Initalize EVB Timer4 
    // Timer4 controls T4PWM
	EvbRegs.T4PR = 0x00FF;       // Timer4 period
	EvbRegs.T4CMPR = 0x0030;     // Timer4 compare
	EvbRegs.T4CNT = 0x0000;      // Timer4 counter
    // TMODE = continuous up/down
	// Timer enable
	// Timer compare enable
	EvbRegs.T4CON.all = 0x1042;   


// Step 2  Setup T3PWM and T4PWM
	// Drive T3/T4 PWM by compare logic
	EvbRegs.GPTCONB.bit.TCMPOE = 1;
    // Polarity of GP Timer 3 Compare = Active low
	EvbRegs.GPTCONB.bit.T3PIN = 1;
	// Polarity of GP Timer 4 Compare = Active high
	EvbRegs.GPTCONB.bit.T4PIN = 2;
 	
// Step 3  Enable compare for PWM7-PWM12
	EvbRegs.CMPR4 = 0x0C00;
	EvbRegs.CMPR5 = 0x3C00;
	EvbRegs.CMPR6 = 0xFC00;
    
    // Compare action control.  Action that takes place
    // on a cmpare event
    // output pin 1 CMPR4 - active high
    // output pin 2 CMPR4 - active low
    // output pin 3 CMPR5 - active high
    // output pin 4 CMPR5 - active low
    // output pin 5 CMPR6 - active high
    // output pin 6 CMPR6 - active low
    EvbRegs.ACTRB.all = 0x0666;
	EvbRegs.DBTCONB.all = 0x0000; // Disable deadband
    EvbRegs.COMCONB.all = 0xA400;
    
    EvbRegs.CAPCONB.all = 0x0000;	// disable CAP4~6

	EvaRegs.EVAIMRA.all = 0x0000;
	EvaRegs.EVAIMRB.all = 0x0004;	//enable T2UFINT
	EvaRegs.EVAIMRC.all = 0x0001;	//enable CAP1INT
	EvbRegs.EVBIMRA.all = 0x0000;
	EvbRegs.EVBIMRB.all = 0x0000;
	EvbRegs.EVBIMRC.all = 0x0000;
}	
	
//===========================================================================
// No more.
//===========================================================================

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -