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

📄 dsp28_ev.c

📁 实验室做的SVC无功补偿项目
💻 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)
{
//Initalize the timers
   EvaRegs.T1PR = 0x0000;       // Timer1 period//65535
   //EvaRegs.T1CMPR = 0xffff;     // Timer1 compare//15360
   EvaRegs.T1CNT = 0x0000;      // Timer1 counter
   //EvaRegs.T1CON.all = 0x1742;
   EvaRegs.T1CON.bit.TMODE=2;//连续增计数模式
   EvaRegs.T1CON.bit.TPS=5;//预定标HSPCLK/128
   //EvaRegs.T1CON.bit.TENABLE=1;//使用定时器操作
   EvaRegs.T1CON.bit.TCLKS10=00;//使用内部时钟
   EvaRegs.T1CON.bit.TCLD10=10;
   EvaRegs.T1CON.bit.TECMPR=0;//禁止定时器比较操作
   
   EvaRegs.ACTRA.all = 0x0000;

   EvaRegs.T2PR = 0xffff;       // Timer2 period//4095
   //EvaRegs.T2CMPR = 0xffff;     // Timer2 compare//960
   EvaRegs.T2CNT = 0x0000;      // Timer2 counter
   //EvaRegs.T2CON.all = 0x1742;   
   EvaRegs.T2CON.bit.TMODE=2;//连续增计数模式
   EvaRegs.T2CON.bit.TPS=5;//预定标HSPCLK/128
   EvaRegs.T2CON.bit.TENABLE=0;//使用定时器操作
   EvaRegs.T2CON.bit.TCLKS10=00;//使用内部时钟
   EvaRegs.T2CON.bit.TCLD10=10;
   EvaRegs.T2CON.bit.TECMPR=1;//使能定时器比较操作

   EvaRegs.GPTCONA.bit.T1CTRIP = 0;
   EvaRegs.GPTCONA.bit.T2CTRIP = 0;
   EvaRegs.GPTCONA.bit.TCMPOE = 1;
   EvaRegs.GPTCONA.bit.T1CMPOE = 1;
   EvaRegs.GPTCONA.bit.T2CMPOE = 1;
  // Polarity of GP Timer 1 Compare = Active low
   //EvaRegs.GPTCONA.bit.T1PIN = 11;
  // Polarity of GP Timer 2 Compare = Active high
   //EvaRegs.GPTCONA.bit.T2PIN = 11;
   GpioDataRegs.GPADAT.bit.GPIOA0= 1;//PWM1/A0输出高
   GpioDataRegs.GPADAT.bit.GPIOA1= 1;//PWM2/A1输出高
   GpioDataRegs.GPADAT.bit.GPIOA2= 1;//PWM3/A2输出高
   GpioDataRegs.GPADAT.bit.GPIOA3= 1;//PWM4/A3输出高
   GpioDataRegs.GPADAT.bit.GPIOA4= 1;//PWM5/A4输出高
   GpioDataRegs.GPADAT.bit.GPIOA5= 1;//PWM6/A5输出高

   //EvaRegs.CAPCONA.all = 0x3504;//00110110 00000100
   EvaRegs.CAPCONA.bit.CAPRES=0;//复位捕获单元
   EvaRegs.CAPCONA.bit.CAPQEPN=1;//捕获12使能
   EvaRegs.CAPCONA.bit.CAP3EN=1;//捕获3使能
   EvaRegs.CAPCONA.bit.CAP3TSEL=0;//为捕获单元3选择通用定时器2
   EvaRegs.CAPCONA.bit.CAP12TSEL=1;//为捕获单元1、2选择通用定时器1
   EvaRegs.CAPCONA.bit.CAP3TOADC=0;//无事件启动ADC
   EvaRegs.CAPCONA.bit.CAP2EDGE=11;//检测上下降沿
   EvaRegs.CAPCONA.bit.CAP3EDGE=11;//检测上下升沿
   EvaRegs.CAPFIFOA.bit.CAP3FIFO=1;//已有一个捕获值,保证再捕获一个CAP3就可以产生中断
   EvaRegs.CAPFIFOA.bit.CAP2FIFO=1;//已有一个捕获值,保证再捕获一个CAP2就可以产生中断
   
  
 // Initialize EVB Timer3 
  // Timer3 controls T3PWM and PWM7-12
   EvbRegs.T3PR = 0xffff;       // Timer1 period//65535
   EvbRegs.T3CMPR = 0x0000;     // Timer1 compare//15360
   EvbRegs.T3CNT = 0x0000;      // Timer1 counter
   //EvaRegs.T3CON.all = 0x1742;
   EvbRegs.T3CON.bit.TMODE=2;//连续增计数模式
   EvbRegs.T3CON.bit.TPS=5;//预定标HSPCLK/128
   EvbRegs.T3CON.bit.TENABLE=0;//使用定时器操作
   EvbRegs.T3CON.bit.TCLKS10=00;//使用内部时钟
   EvbRegs.T3CON.bit.TCLD10=10;
   EvbRegs.T3CON.bit.TECMPR=1;//使能苟ㄊ逼鞅冉喜僮

⌨️ 快捷键说明

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