📄 dsp281x_ev.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 + -