亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? example_281xevpwm.c

?? 該程序是TI的電機控制程序
?? C
字號:
//###########################################################################
//
// FILE:   Example_281xEvPwm.c
//
// TITLE:  DSP281x Event Manager PWM Generation.
//
// ASSUMPTIONS:
//
//          This program requires the DSP281x V1.00 header files. 
//          As supplied, this project is configured for "boot to H0" operation.
//
//          Other then boot mode pin configuration, no other hardware configuration
//          is required.    
//
// DESCRIPTION:
//
//          This program sets up the EV timers (TIMER1, TIMER2, TIMER3 and TIMER4) 
//          to generate T1PWM, T2PWM, T3PWM, T4PWM and PWM1-12 waveforms.  
//          The user can then observe the waveforms using an scope.  
//          
//
//###########################################################################
//
//  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
#include "park.h"
#include "IQmathLib.h"

// Global variables used in this system
float32 VdTesting = 0.25;         // Vd testing (pu)
float32 VqTesting = 0;            // Vq testing (pu)
float32 IdRef = 0.2;              // Id reference (pu)
float32 IqRef = 0.05;             // Iq reference (pu)
float32 SpeedRef = 0.5;           // Speed reference (pu)
//float32 T = 0.001/ISR_FREQUENCY;  // Samping period (sec), see parameter.h

Uint16 IsrTicker = 0;
Uint16 BackTicker = 0;

int16 PwmDacCh1 = 0;
int16 PwmDacCh2 = 0;
int16 PwmDacCh3 = 0;

int16 DlogCh1 = 0;
int16 DlogCh2 = 0;
int16 DlogCh3 = 0;
int16 DlogCh4 = 0;

//volatile Uint16 EnableFlag = FALSE;

Uint16 SpeedLoopPrescaler = 10;     // Speed loop prescaler
Uint16 SpeedLoopCount = 1;    		// Speed loop counter


PARK park1 = PARK_DEFAULTS;
IPARK ipark1 = IPARK_DEFAULTS;

// Instance PID regulators to regulate the d and q synchronous axis currents,
// and speed
//PIDREG3 pid1_id = PIDREG3_DEFAULTS;
//PIDREG3 pid1_iq = PIDREG3_DEFAULTS;
//PIDREG3 pid1_spd = PIDREG3_DEFAULTS;

RAMPGEN rg1 = RAMPGEN_DEFAULTS;

// Instance a PWM driver instance
PWMGEN pwm1 = PWMGEN_DEFAULTS;

// Instance a Space Vector PWM modulator. This modulator generates a, b and c
// phases based on the d and q stationery reference frame inputs
SVGENDQ svgen_dq1 = SVGENDQ_DEFAULTS;

// Prototype statements for functions found within this file.
void init_eva(void);
void init_evb(void);

// Global counts used in this example


void main(void)
{

// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the DSP281x_SysCtrl.c file.
   InitSysCtrl();

// Step 2. Initalize GPIO: 
// This example function is found in the DSP281x_Gpio.c file and
// illustrates how to set the GPIO to it's default state.
// InitGpio();  // Skipped for this example  

// Initialize only GPAMUX and GPBMUX for this test
   EALLOW;
   // Enable PWM pins
   GpioMuxRegs.GPAMUX.all = 0x00FF; // EVA PWM 1-6  pins
   GpioMuxRegs.GPBMUX.all = 0x00FF; // EVB PWM 7-12 pins
   EDIS;
    
// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts 
   DINT;

// Initialize PIE control registers to their default state.
// The default state is all PIE interrupts disabled and flags
// are cleared.  
// This function is found in the DSP281x_PieCtrl.c file.
   InitPieCtrl();

// Disable CPU interrupts and clear all CPU interrupt flags:
   IER = 0x0000;
   IFR = 0x0000;

// Initialize the PIE vector table with pointers to the shell Interrupt 
// Service Routines (ISR).  
// This will populate the entire table, even if the interrupt
// is not used in this example.  This is useful for debug purposes.
// The shell ISR routines are found in DSP281x_DefaultIsr.c.
// This function is found in DSP281x_PieVect.c.
   InitPieVectTable();
   
// Step 4. Initialize all the Device Peripherals:
// This function is found in DSP281x_InitPeripherals.c
// InitPeripherals(); // Not required for this example
   init_eva();
   init_evb();

// Step 5. User specific code, enable interrupts:

  
  // Just sit and loop forever:
  // PWM pins can be observed with a scope.	
  while(1)
  {

// ------------------------------------------------------------------------------
//    Connect inputs of the RMP module and call the Ramp control
//    calculation function.
// ------------------------------------------------------------------------------
    rc1.TargetValue = _IQ(SpeedRef);
    rc1.calc(&rc1);

// ------------------------------------------------------------------------------
//    Connect inputs of the RAMP GEN module and call the Ramp generator
//    calculation function.
// ------------------------------------------------------------------------------
    rg1.Freq = rc1.SetpointValue;
    rg1.calc(&rg1);

// ------------------------------------------------------------------------------
//    Connect inputs of the INV_PARK module and call the inverse park transformation
//    calculation function.
// ------------------------------------------------------------------------------
    ipark1.Ds = _IQ(VdTesting);
    ipark1.Qs = _IQ(VqTesting);	
    ipark1.Angle = rg1.Out;
    ipark1.calc(&ipark1);

// ------------------------------------------------------------------------------
//    Connect inputs of the SVGEN_DQ module and call the space-vector gen.
//    calculation function.
// ------------------------------------------------------------------------------
    svgen_dq1.Ualpha = ipark1.Alpha;
 	svgen_dq1.Ubeta = ipark1.Beta;
  	svgen_dq1.calc(&svgen_dq1);	

// ------------------------------------------------------------------------------
//    Connect inputs of the PWM_DRV module and call the PWM signal generation 
//    update function.
// ------------------------------------------------------------------------------
    pwm1.MfuncC1 = (int16)_IQtoIQ15(svgen_dq1.Ta); // MfuncC1 is in Q15
    pwm1.MfuncC2 = (int16)_IQtoIQ15(svgen_dq1.Tb); // MfuncC2 is in Q15  
    pwm1.MfuncC3 = (int16)_IQtoIQ15(svgen_dq1.Tc); // MfuncC3 is in Q15
	pwm1.update(&pwm1);
  }

}

void init_eva()
{

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


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


  // Setup T1PWM and T2PWM
  // Drive T1/T2 PWM by compare logic
  EvaRegs.GPTCONA.bit.TCMPOE = 1;
  // 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;

  // Enable compare for PWM1-PWM6
  EvaRegs.CMPR1 = 0x0C00;
  EvaRegs.CMPR2 = 0x3C00;
  EvaRegs.CMPR3 = 0xFC00;
    
  // 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 = 0x0666;
  EvaRegs.DBTCONA.all = 0x0000; // Disable deadband
  EvaRegs.COMCONA.all = 0xA600;


} 

void init_evb()
{

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

  // Initialize 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;   

  // Initialize 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;   

  // 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;
 
  // 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 = 0xA600;
}


// No ISR's used in this example


//===========================================================================
// No more.
//===========================================================================

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品国产三级国产a久久| 久久精品99国产精品日本| 亚洲成人av电影| 国产精品系列在线观看| 日本高清不卡aⅴ免费网站| 精品福利一区二区三区免费视频| 日本欧美一区二区三区乱码| 高清视频一区二区| 欧美一区二区女人| 午夜欧美视频在线观看| 国产91高潮流白浆在线麻豆| 日韩一区国产二区欧美三区| 亚洲欧洲综合另类| 成人一区二区视频| 久久久久久久一区| 日韩视频在线永久播放| 精品一区二区三区的国产在线播放| 欧美日韩国产高清一区二区| 欧美日韩一区二区三区四区五区 | 国产精品18久久久久久久网站| 欧洲av一区二区嗯嗯嗯啊| 国产欧美精品一区aⅴ影院 | 欧美一区二区视频在线观看| 一区二区三区在线视频播放 | 极品少妇一区二区| 欧美一区日本一区韩国一区| 亚洲成精国产精品女| 91久久香蕉国产日韩欧美9色| 日本一区二区成人在线| 国产成人自拍高清视频在线免费播放| 欧美大片国产精品| 激情六月婷婷久久| 久久久久久久久久久电影| 美国三级日本三级久久99| 日韩欧美一级二级三级久久久| 免费不卡在线视频| 日韩免费视频线观看| 激情久久五月天| www国产成人免费观看视频 深夜成人网 | 欧美一级在线观看| 久久国产综合精品| 久久久.com| 97精品国产露脸对白| 亚洲精品久久久蜜桃| 欧美色网站导航| 日韩国产欧美在线观看| 欧美不卡一区二区| 粉嫩aⅴ一区二区三区四区五区| 国产亲近乱来精品视频| 99精品视频一区| 亚洲高清视频中文字幕| 日韩午夜在线观看视频| 国产成人在线影院| 亚洲一区二区在线免费看| 91麻豆精品国产91久久久 | 国产99久久久国产精品| 亚洲欧美韩国综合色| 精品婷婷伊人一区三区三| 久久精品二区亚洲w码| 日本一区二区视频在线观看| 色香色香欲天天天影视综合网| 婷婷一区二区三区| 欧美韩日一区二区三区四区| 在线看一区二区| 国模套图日韩精品一区二区| 最新日韩在线视频| 欧美一区二区三区四区五区 | 色综合天天综合在线视频| 日产精品久久久久久久性色| 国产亚洲欧美日韩日本| 在线一区二区三区四区| 国产一区二区三区av电影| 伊人夜夜躁av伊人久久| 2019国产精品| 欧美日韩国产另类不卡| 成人午夜视频在线| 美女精品自拍一二三四| 亚洲丝袜制服诱惑| 精品国产成人在线影院| 色美美综合视频| 国产高清不卡一区二区| 日日噜噜夜夜狠狠视频欧美人| 国产精品网站导航| 日韩精品专区在线影院观看| 在线亚洲高清视频| 国产成人午夜高潮毛片| 青青草成人在线观看| 一级精品视频在线观看宜春院| 久久精品视频一区二区| 欧美一级久久久久久久大片| 一本色道久久综合亚洲aⅴ蜜桃| 九色|91porny| 日韩不卡免费视频| 亚洲成av人在线观看| 亚洲一二三四久久| 亚洲人123区| 欧美日韩亚洲不卡| 97久久久精品综合88久久| 久久狠狠亚洲综合| 亚洲一区二区成人在线观看| 久久这里只有精品视频网| 在线不卡欧美精品一区二区三区| 日韩va欧美va亚洲va久久| 一区二区三区四区中文字幕| 日本一区二区不卡视频| 337p日本欧洲亚洲大胆色噜噜| 欧美日韩电影在线播放| 欧洲激情一区二区| 91影视在线播放| 成人综合在线视频| 国产精品99久久久久久似苏梦涵 | 国产亚洲一区二区在线观看| 欧美肥妇bbw| 4438成人网| 欧美日韩亚洲不卡| 欧美电影影音先锋| 欧美久久一二三四区| 欧美午夜电影一区| 91黄色激情网站| 91精彩视频在线观看| 色呦呦一区二区三区| 色婷婷av一区二区三区大白胸 | 日韩一区二区三区高清免费看看| 欧美吻胸吃奶大尺度电影| 91影院在线观看| 色婷婷av一区二区三区软件 | 99久精品国产| 色综合久久久久综合体| 91黄色小视频| 欧美日韩国产系列| 91精品久久久久久蜜臀| 日韩精品一区二区三区中文精品| 亚洲丝袜美腿综合| 亚洲天堂久久久久久久| 亚洲欧美偷拍三级| 亚洲国产成人精品视频| 人人爽香蕉精品| 国产精品一品视频| 99久久国产综合色|国产精品| 99精品视频一区二区三区| 色94色欧美sute亚洲线路二| 在线观看视频91| 欧美一区二区福利在线| 国产亚洲一区二区三区四区 | 成人av一区二区三区| 99国产精品国产精品毛片| 欧美三级在线视频| 精品嫩草影院久久| 自拍av一区二区三区| 偷拍一区二区三区| 国产福利91精品| 在线视频一区二区免费| 精品久久久久一区二区国产| 国产亚洲婷婷免费| 亚洲国产一区二区视频| 国产在线视视频有精品| av亚洲精华国产精华| 91麻豆精品国产自产在线| 国产精品午夜免费| 午夜精品免费在线| 成人中文字幕电影| 91.xcao| 久久九九影视网| 亚洲18色成人| 成人小视频在线观看| 在线不卡a资源高清| 国产精品电影一区二区三区| 日韩 欧美一区二区三区| 91在线小视频| 精品国产91九色蝌蚪| 亚洲国产综合人成综合网站| 国产精品影视在线| 欧美日韩国产综合草草| 国产精品麻豆欧美日韩ww| 免费成人结看片| 在线视频一区二区免费| 国产精品久久三| 久久国产精品72免费观看| 色国产综合视频| 中文欧美字幕免费| 激情五月婷婷综合| 69堂成人精品免费视频| 亚洲男人的天堂av| 懂色av中文一区二区三区| 日韩免费视频一区| 日本欧洲一区二区| 欧美色爱综合网| 亚洲乱码中文字幕综合| 成人毛片老司机大片| 久久综合精品国产一区二区三区| 天天综合网 天天综合色| 在线免费不卡电影| 亚洲欧美日韩系列| 99亚偷拍自图区亚洲| 日本一区二区三区四区在线视频 | 欧美丝袜丝交足nylons图片| 国产精品久久久久久久岛一牛影视| 极品美女销魂一区二区三区免费| 欧美一级日韩一级| 奇米影视在线99精品|