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

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

?? example_2833xepwmtimerint.c

?? 這是TI公司最新TMS320F28335DSP的常用基礎代碼集6非常有用只要你用該DSP的話.
?? C
字號:
// TI File $Revision: /main/8 $
// Checkin $Date: August 10, 2007   09:04:44 $
//###########################################################################
//
// FILE:    Example_2833xEPwmTimerInt.c
//
// TITLE:   DSP2833x ePWM Timer Interrupt example.
//
// ASSUMPTIONS:
//
//    This program requires the DSP2833x header files.
//
//    Other then boot mode configuration, no other hardware configuration
//    is required.
//
//    As supplied, this project is configured for "boot to SARAM"
//    operation.  The 2833x Boot Mode table is shown below.
//    For information on configuring the boot mode of an eZdsp,
//    please refer to the documentation included with the eZdsp,
//
//       $Boot_Table:
//
//         GPIO87   GPIO86     GPIO85   GPIO84
//          XA15     XA14       XA13     XA12
//           PU       PU         PU       PU
//        ==========================================
//            1        1          1        1    Jump to Flash
//            1        1          1        0    SCI-A boot
//            1        1          0        1    SPI-A boot
//            1        1          0        0    I2C-A boot
//            1        0          1        1    eCAN-A boot
//            1        0          1        0    McBSP-A boot
//            1        0          0        1    Jump to XINTF x16
//            1        0          0        0    Jump to XINTF x32
//            0        1          1        1    Jump to OTP
//            0        1          1        0    Parallel GPIO I/O boot
//            0        1          0        1    Parallel XINTF boot
//            0        1          0        0    Jump to SARAM	    <- "boot to SARAM"
//            0        0          1        1    Branch to check boot mode
//            0        0          1        0    Boot to flash, bypass ADC cal
//            0        0          0        1    Boot to SARAM, bypass ADC cal
//            0        0          0        0    Boot to SCI-A, bypass ADC cal
//                                              Boot_Table_End$
//
// DESCRIPTION:
//
//    This example configures the ePWM Timers and increments
//    a counter each time an interrupt is taken.
//
//    As supplied:
//
//    All ePWM's are initalized.  Note that not all devices in the 2833x
//    family have all 6 ePWMs.
//
//    All timers have the same period
//    The timers are started sync'ed
//    An interrupt is taken on a zero event for each ePWM timer
//
//       ePWM1: takes an interrupt every event
//       ePWM2: takes an interrupt every 2nd event
//       ePWM3: takes an interrupt every 3rd event
//       ePWM4-ePWM6: take an interrupt every event
//
//    Thus the Interrupt count for ePWM1, ePWM4-ePWM6 should be equal
//    The interrupt count for ePWM2 should be about half that of ePWM1
//    and the interrupt count for ePWM3 should be about 1/3 that of ePWM1
//
//    Watch Variables:
//       EPwm1TimerIntCount
//       EPwm2TimerIntCount
//       EPwm3TimerIntCount
//       EPwm4TimerIntCount
//       EPwm5TimerIntCount
//       EPwm6TimerIntCount
//
//###########################################################################
// $TI Release: DSP2833x Header Files V1.01 $
// $Release Date: September 26, 2007 $
//###########################################################################


#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File

// Configure which ePWM timer interrupts are enabled at the PIE level:
// 1 = enabled,  0 = disabled
#define PWM1_INT_ENABLE  1
#define PWM2_INT_ENABLE  1
#define PWM3_INT_ENABLE  1
#define PWM4_INT_ENABLE  1
#define PWM5_INT_ENABLE  1
#define PWM6_INT_ENABLE  1

// Configure the period for each timer
#define PWM1_TIMER_TBPRD   0x1FFF
#define PWM2_TIMER_TBPRD   0x1FFF
#define PWM3_TIMER_TBPRD   0x1FFF
#define PWM4_TIMER_TBPRD   0x1FFF
#define PWM5_TIMER_TBPRD   0x1FFF
#define PWM6_TIMER_TBPRD   0x1FFF


// Prototype statements for functions found within this file.
interrupt void epwm1_timer_isr(void);
interrupt void epwm2_timer_isr(void);
interrupt void epwm3_timer_isr(void);
interrupt void epwm4_timer_isr(void);
interrupt void epwm5_timer_isr(void);
interrupt void epwm6_timer_isr(void);
void InitEPwmTimer(void);

// Global variables used in this example
Uint32  EPwm1TimerIntCount;
Uint32  EPwm2TimerIntCount;
Uint32  EPwm3TimerIntCount;
Uint32  EPwm4TimerIntCount;
Uint32  EPwm5TimerIntCount;
Uint32  EPwm6TimerIntCount;


void main(void)
{
   int i;

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

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


// Step 3. Clear all interrupts and initialize PIE vector table:
// Disable CPU interrupts
   DINT;

// Initialize the 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 DSP2833x_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 DSP2833x_DefaultIsr.c.
// This function is found in DSP2833x_PieVect.c.
   InitPieVectTable();

// Interrupts that are used in this example are re-mapped to
// ISR functions found within this file.
   EALLOW;  // This is needed to write to EALLOW protected registers
   PieVectTable.EPWM1_INT = &epwm1_timer_isr;
   PieVectTable.EPWM2_INT = &epwm2_timer_isr;
   PieVectTable.EPWM3_INT = &epwm3_timer_isr;
   PieVectTable.EPWM4_INT = &epwm4_timer_isr;
   PieVectTable.EPWM5_INT = &epwm5_timer_isr;
   PieVectTable.EPWM6_INT = &epwm6_timer_isr;
   EDIS;    // This is needed to disable write to EALLOW protected registers

// Step 4. Initialize all the Device Peripherals:
// This function is found in DSP2833x_InitPeripherals.c
// InitPeripherals();  // Not required for this example
   InitEPwmTimer();    // For this example, only initialize the ePWM Timers

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

// Initalize counters:
   EPwm1TimerIntCount = 0;
   EPwm2TimerIntCount = 0;
   EPwm3TimerIntCount = 0;
   EPwm4TimerIntCount = 0;
   EPwm5TimerIntCount = 0;
   EPwm6TimerIntCount = 0;

// Enable CPU INT3 which is connected to EPWM1-6 INT:
   IER |= M_INT3;

// Enable EPWM INTn in the PIE: Group 3 interrupt 1-6
   PieCtrlRegs.PIEIER3.bit.INTx1 = PWM1_INT_ENABLE;
   PieCtrlRegs.PIEIER3.bit.INTx2 = PWM2_INT_ENABLE;
   PieCtrlRegs.PIEIER3.bit.INTx3 = PWM3_INT_ENABLE;
   PieCtrlRegs.PIEIER3.bit.INTx4 = PWM4_INT_ENABLE;
   PieCtrlRegs.PIEIER3.bit.INTx5 = PWM5_INT_ENABLE;
   PieCtrlRegs.PIEIER3.bit.INTx6 = PWM6_INT_ENABLE;

// Enable global Interrupts and higher priority real-time debug events:
   EINT;   // Enable Global interrupt INTM
   ERTM;   // Enable Global realtime interrupt DBGM

// Step 6. IDLE loop. Just sit and loop forever (optional):
   for(;;)
   {
       asm("          NOP");
       for(i=1;i<=10;i++)
       {}
   }

}


void InitEPwmTimer()
{

   EALLOW;
   SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;      // Stop all the TB clocks
   EDIS;

   // Setup Sync
   EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through
   EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through
   EPwm3Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through
   EPwm4Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through
   EPwm5Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through
   EPwm6Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN;  // Pass through

   // Allow each timer to be sync'ed

   EPwm1Regs.TBCTL.bit.PHSEN = TB_ENABLE;
   EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;
   EPwm3Regs.TBCTL.bit.PHSEN = TB_ENABLE;
   EPwm4Regs.TBCTL.bit.PHSEN = TB_ENABLE;
   EPwm5Regs.TBCTL.bit.PHSEN = TB_ENABLE;
   EPwm6Regs.TBCTL.bit.PHSEN = TB_ENABLE;

   EPwm1Regs.TBPHS.half.TBPHS = 100;
   EPwm2Regs.TBPHS.half.TBPHS = 200;
   EPwm3Regs.TBPHS.half.TBPHS = 300;
   EPwm4Regs.TBPHS.half.TBPHS = 400;
   EPwm5Regs.TBPHS.half.TBPHS = 500;
   EPwm6Regs.TBPHS.half.TBPHS = 600;

   EPwm1Regs.TBPRD = PWM1_TIMER_TBPRD;
   EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;    // Count up
   EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;     // Select INT on Zero event
   EPwm1Regs.ETSEL.bit.INTEN = PWM1_INT_ENABLE;  // Enable INT
   EPwm1Regs.ETPS.bit.INTPRD = ET_1ST;           // Generate INT on 1st event


   EPwm2Regs.TBPRD = PWM2_TIMER_TBPRD;
   EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;     // Count up
   EPwm2Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;      // Enable INT on Zero event
   EPwm2Regs.ETSEL.bit.INTEN = PWM2_INT_ENABLE;   // Enable INT
   EPwm2Regs.ETPS.bit.INTPRD = ET_2ND;            // Generate INT on 2nd event


   EPwm3Regs.TBPRD = PWM3_TIMER_TBPRD;
   EPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;     // Count up
   EPwm3Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;      // Enable INT on Zero event
   EPwm3Regs.ETSEL.bit.INTEN = PWM3_INT_ENABLE;   // Enable INT
   EPwm3Regs.ETPS.bit.INTPRD = ET_3RD;            // Generate INT on 3rd event

   EPwm4Regs.TBPRD = PWM4_TIMER_TBPRD;
   EPwm4Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;     // Count up
   EPwm4Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;      // Enable INT on Zero event
   EPwm4Regs.ETSEL.bit.INTEN = PWM4_INT_ENABLE;   // Enable INT
   EPwm4Regs.ETPS.bit.INTPRD = ET_1ST;            // Generate INT on 1st event


   EPwm5Regs.TBPRD = PWM5_TIMER_TBPRD;
   EPwm5Regs.TBCTL.bit.CTRMODE= TB_COUNT_UP;      // Count up
   EPwm5Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;      // Enable INT on Zero event
   EPwm5Regs.ETSEL.bit.INTEN = PWM5_INT_ENABLE;   // Enable INT
   EPwm5Regs.ETPS.bit.INTPRD = ET_1ST;            // Generate INT on 1st event


   EPwm6Regs.TBPRD = PWM6_TIMER_TBPRD;
   EPwm6Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;     // Count up
   EPwm6Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;      // Enable INT on Zero event
   EPwm6Regs.ETSEL.bit.INTEN = PWM6_INT_ENABLE;   // Enable INT
   EPwm6Regs.ETPS.bit.INTPRD = ET_1ST;            // Generate INT on 1st event

   EALLOW;
   SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;         // Start all the timers synced
   EDIS;


}


// Interrupt routines uses in this example:
interrupt void epwm1_timer_isr(void)
{
   EPwm1TimerIntCount++;

   // Clear INT flag for this timer
   EPwm1Regs.ETCLR.bit.INT = 1;

   // Acknowledge this interrupt to receive more interrupts from group 3
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
}

interrupt void epwm2_timer_isr(void)
{
   EPwm2TimerIntCount++;

   // Clear INT flag for this timer
   EPwm2Regs.ETCLR.bit.INT = 1;

   // Acknowledge this interrupt to receive more interrupts from group 3
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
}

interrupt void epwm3_timer_isr(void)
{
   EPwm3TimerIntCount++;

   // Clear INT flag for this timer
   EPwm3Regs.ETCLR.bit.INT = 1;

   // Acknowledge this interrupt to receive more interrupts from group 3
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
}

interrupt void epwm4_timer_isr(void)
{
   EPwm4TimerIntCount++;

   // Clear INT flag for this timer
   EPwm4Regs.ETCLR.bit.INT = 1;

   // Acknowledge this interrupt to receive more interrupts from group 3
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
}

interrupt void epwm5_timer_isr(void)
{
   EPwm5TimerIntCount++;

   // Clear INT flag for this timer
   EPwm5Regs.ETCLR.bit.INT = 1;

   // Acknowledge this interrupt to receive more interrupts from group 3
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
}

interrupt void epwm6_timer_isr(void)
{
   EPwm6TimerIntCount++;

   // Clear INT flag for this timer
   EPwm6Regs.ETCLR.bit.INT = 1;

   // Acknowledge this interrupt to receive more interrupts from group 3
   PieCtrlRegs.PIEACK.all = PIEACK_GROUP3;
}




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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美在线看| jiyouzz国产精品久久| 国产传媒日韩欧美成人| 在线精品视频一区二区三四| 欧美激情综合五月色丁香| 视频一区二区三区入口| 91麻豆成人久久精品二区三区| 欧美电影免费提供在线观看| 天天综合网天天综合色| 91麻豆国产自产在线观看| 国产女主播视频一区二区| 久久成人免费电影| 欧美酷刑日本凌虐凌虐| 亚洲麻豆国产自偷在线| 国产综合久久久久影院| 欧美成人三级电影在线| 天天综合网 天天综合色| 色婷婷综合久久| 国产精品少妇自拍| 国产成人自拍网| 欧美mv和日韩mv的网站| 蜜桃一区二区三区在线观看| 91.麻豆视频| 亚洲主播在线观看| 91成人免费在线| 亚洲激情欧美激情| 不卡的电影网站| 国产精品第五页| av电影一区二区| 亚洲欧美在线观看| 97国产精品videossex| 中文字幕亚洲一区二区va在线| jizzjizzjizz欧美| 亚洲免费伊人电影| 在线观看av一区二区| 亚洲国产成人va在线观看天堂| 色八戒一区二区三区| 洋洋成人永久网站入口| 在线欧美日韩精品| 亚洲va中文字幕| 日韩一区二区三区观看| 韩国av一区二区| 久久久久久久久久久黄色| 国产成人精品免费视频网站| 国产欧美1区2区3区| 96av麻豆蜜桃一区二区| 一区二区久久久| 91精品国产91久久综合桃花| 久久精品噜噜噜成人av农村| 国产日韩亚洲欧美综合| 91丨九色porny丨蝌蚪| 亚洲一二三区不卡| 欧美成人猛片aaaaaaa| 国产一区二区三区四| 国产精品视频你懂的| 色婷婷综合激情| 麻豆成人久久精品二区三区小说| 久久精品一区四区| 91亚洲精品一区二区乱码| 亚洲成人综合网站| 精品国精品自拍自在线| 北条麻妃国产九九精品视频| 五月开心婷婷久久| 国产日韩三级在线| 欧美日韩一区二区在线观看| 天天爽夜夜爽夜夜爽精品视频 | 精品亚洲免费视频| 中文字幕国产精品一区二区| 欧美亚洲尤物久久| 国产激情视频一区二区在线观看 | 国产精品乡下勾搭老头1| 亚洲欧洲性图库| 欧美福利视频一区| 99九九99九九九视频精品| 免费观看30秒视频久久| 亚洲天天做日日做天天谢日日欢| 日韩欧美一二三四区| 色综合久久中文综合久久97| 国产在线精品一区在线观看麻豆| 亚洲精品伦理在线| 久久噜噜亚洲综合| 欧美一区二区免费| 欧洲av一区二区嗯嗯嗯啊| 国产老肥熟一区二区三区| 亚洲3atv精品一区二区三区| 国产精品萝li| 欧美精品一区二区三区蜜桃视频| 欧美午夜视频网站| 色综合中文字幕国产 | 久久影院午夜片一区| 欧美无乱码久久久免费午夜一区| 成人av资源下载| 国产高清不卡二三区| 免费在线一区观看| 丝瓜av网站精品一区二区| 亚洲精品日日夜夜| 中文字幕视频一区| 日本一区二区三区电影| 久久在线观看免费| 欧美精品一区二区久久婷婷| 欧美一区二区免费| 日韩欧美久久一区| 91精品国产综合久久香蕉麻豆| 欧美在线一区二区| 欧美伊人久久久久久久久影院 | 午夜久久久久久电影| 一区二区三区在线观看动漫| |精品福利一区二区三区| 国产日韩欧美综合在线| 久久久亚洲精华液精华液精华液| 日韩精品中文字幕在线不卡尤物 | 欧美色偷偷大香| 欧美日韩亚州综合| 欧美日本一区二区三区| 欧美在线小视频| 777午夜精品视频在线播放| 欧美午夜精品久久久久久孕妇| 欧美色偷偷大香| 欧美一区二区精品| 精品国产精品网麻豆系列| 久久免费视频色| 国产欧美一区二区三区鸳鸯浴| 欧美国产精品v| 中文字幕亚洲成人| 亚洲图片欧美一区| 日韩电影在线免费看| 美腿丝袜亚洲综合| 国产一区在线观看视频| 成人晚上爱看视频| 亚洲永久免费视频| www.亚洲精品| 成人国产一区二区三区精品| 91免费国产在线| 欧美日韩国产高清一区| 日韩视频一区二区三区在线播放 | 欧美系列日韩一区| 51精品秘密在线观看| 久久美女艺术照精彩视频福利播放| 国产欧美一区二区三区网站| 一区二区免费在线| 美国十次综合导航| 99久久精品免费精品国产| 欧美唯美清纯偷拍| 久久精品视频一区二区| 亚洲精品视频在线观看网站| 蜜臀精品久久久久久蜜臀| 成人综合激情网| 欧美日韩一区三区| 国产亚洲成aⅴ人片在线观看| 亚洲精品欧美在线| 337p日本欧洲亚洲大胆色噜噜| 欧美精品一区二区三区久久久| 国产精品色在线| 日韩高清不卡一区二区| 国产91在线观看| 精品婷婷伊人一区三区三| 精品成人a区在线观看| 亚洲婷婷综合久久一本伊一区 | 亚洲女与黑人做爰| 老汉av免费一区二区三区| 91在线免费播放| 久久久久国产精品麻豆| 午夜国产不卡在线观看视频| 国产+成+人+亚洲欧洲自线| 欧美日韩五月天| 国产精品国产三级国产aⅴ原创 | 欧美性感一类影片在线播放| 久久久精品免费网站| 午夜精品久久久久久久久久久| 成人永久看片免费视频天堂| 国产精品18久久久久久久网站| 国产在线看一区| 欧美一区二区三区在线看| 亚洲视频一区二区在线| 国产精品影视网| 日韩一区二区在线免费观看| 亚洲欧美经典视频| 成人看片黄a免费看在线| 日韩欧美高清在线| 视频精品一区二区| 欧美日韩性生活| 亚洲一区二区三区四区五区黄| 99久久99久久精品免费看蜜桃| 久久品道一品道久久精品| 麻豆国产精品777777在线| 8x福利精品第一导航| 亚洲成人7777| 欧美军同video69gay| 一区二区三区高清| 色婷婷久久久综合中文字幕| 综合色中文字幕| 成人精品高清在线| 国产精品美女视频| 不卡av电影在线播放| 国产女人aaa级久久久级| 国产成人精品综合在线观看| 亚洲精品一区二区三区精华液 | 国产一区二区久久| 精品国产凹凸成av人导航| 精品一区二区在线播放|