TI中文支持网
TI专业的中文技术问题搜集分享网站

APWM

请问ECAP里面用来产生APWM的模块,捕获脉冲是从哪个GPIO口输入的?

user5878224:

这是ECAP文件配置的程序:

// TI File $Revision: /main/2 $// Checkin $Date: March 15, 2007   16:54:36 $//###########################################################################//// FILE:   DSP2833x_ECap.c//// TITLE:  DSP2833x eCAP Initialization & Support Functions.////###########################################################################// $TI Release: DSP2833x/DSP2823x C/C++ Header Files V1.31 $// $Release Date: August 4, 2009 $//###########################################################################

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

//—————————————————————————// InitECap://—————————————————————————// This function initializes the eCAP(s) to a known state.//void InitECap(void){   // Initialize eCAP1/2/3

   //tbd…

}

//—————————————————————————// Example: InitECapGpio://—————————————————————————// This function initializes GPIO pins to function as ECAP pins//// Each GPIO pin can be configured as a GPIO pin or up to 3 different// peripheral functional pins. By default all pins come up as GPIO// inputs after reset.//// Caution:// For each eCAP peripheral// Only one GPIO pin should be enabled for ECAP operation.// Comment out other unwanted lines.

void InitECapGpio(){

   InitECap1Gpio();#if (DSP28_ECAP2)   InitECap2Gpio();#endif // endif DSP28_ECAP2#if (DSP28_ECAP3)   InitECap3Gpio();#endif // endif DSP28_ECAP3#if (DSP28_ECAP4)   InitECap4Gpio();#endif // endif DSP28_ECAP4#if (DSP28_ECAP5)   InitECap5Gpio();#endif // endif DSP28_ECAP5#if (DSP28_ECAP6)   InitECap6Gpio();#endif // endif DSP28_ECAP6}

void InitECap1Gpio(void){   EALLOW;/* Enable internal pull-up for the selected pins */// Pull-ups can be enabled or disabled by the user.// This will enable the pullups for the specified pins.// Comment out other unwanted lines.

// GpioCtrlRegs.GPAPUD.bit.GPIO5 = 0;      // Enable pull-up on GPIO5 (CAP1)   GpioCtrlRegs.GPAPUD.bit.GPIO24 = 1;     // Disable pull-up on GPIO24 (CAP1)// GpioCtrlRegs.GPBPUD.bit.GPIO34 = 0;     // Enable pull-up on GPIO34 (CAP1)

// Inputs are synchronized to SYSCLKOUT by default.// Comment out other unwanted lines.

// GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 0;    // Synch to SYSCLKOUT GPIO5 (CAP1)   GpioCtrlRegs.GPAQSEL2.bit.GPIO24 = 0;   // Synch to SYSCLKOUT GPIO24 (CAP1)// GpioCtrlRegs.GPBQSEL1.bit.GPIO34 = 0;   // Synch to SYSCLKOUT GPIO34 (CAP1)

/* Configure eCAP-1 pins using GPIO regs*/// This specifies which of the possible GPIO pins will be eCAP1 functional pins.// Comment out other unwanted lines.

// GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 3;     // Configure GPIO5 as CAP1   GpioCtrlRegs.GPAMUX2.bit.GPIO24 = 1;    // Configure GPIO24 as CAP1// GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 1;    // Configure GPIO24 as CAP1

    EDIS;}

#if DSP28_ECAP2void InitECap2Gpio(void){   EALLOW;/* Enable internal pull-up for the selected pins */// Pull-ups can be enabled or disabled by the user.// This will enable the pullups for the specified pins.// Comment out other unwanted lines.

//   GpioCtrlRegs.GPAPUD.bit.GPIO7 = 0;     // Enable pull-up on GPIO7 (CAP2)   GpioCtrlRegs.GPAPUD.bit.GPIO25 = 0;    // Enable pull-up on GPIO25 (CAP2)// GpioCtrlRegs.GPBPUD.bit.GPIO37 = 0;    // Enable pull-up on GPIO37 (CAP2)

// Inputs are synchronized to SYSCLKOUT by default.// Comment out other unwanted lines.

//  GpioCtrlRegs.GPAQSEL1.bit.GPIO7 = 0;    // Synch to SYSCLKOUT GPIO7 (CAP2)   GpioCtrlRegs.GPAQSEL2.bit.GPIO25 = 0;   // Synch to SYSCLKOUT GPIO25 (CAP2)// GpioCtrlRegs.GPBQSEL1.bit.GPIO37 = 0;   // Synch to SYSCLKOUT GPIO37 (CAP2)

/* Configure eCAP-2 pins using GPIO regs*/// This specifies which of the possible GPIO pins will be eCAP2 functional pins.// Comment out other unwanted lines.

//   GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 3;    // Configure GPIO7 as CAP2   GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 1;   // Configure GPIO25 as CAP2// GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 3;   // Configure GPIO37 as CAP2

    EDIS;}#endif // endif DSP28_ECAP2

#if DSP28_ECAP3void InitECap3Gpio(void){   EALLOW;

/* Enable internal pull-up for the selected pins */// Pull-ups can be enabled or disabled by the user.// This will enable the pullups for the specified pins.// Comment out other unwanted lines.

//   GpioCtrlRegs.GPAPUD.bit.GPIO9 = 0;      // Enable pull-up on GPIO9 (CAP3)   GpioCtrlRegs.GPAPUD.bit.GPIO26 = 0;     // Enable pull-up on GPIO26 (CAP3)

// Inputs are synchronized to SYSCLKOUT by default.// Comment out other unwanted lines.

//   GpioCtrlRegs.GPAQSEL1.bit.GPIO9 = 0;    // Synch to SYSCLKOUT GPIO9 (CAP3)   GpioCtrlRegs.GPAQSEL2.bit.GPIO26 = 0;   // Synch to SYSCLKOUT GPIO26 (CAP3)

/* Configure eCAP-3 pins using GPIO regs*/// This specifies which of the possible GPIO pins will be eCAP3 functional pins.// Comment out other unwanted lines.

//   GpioCtrlRegs.GPAMUX1.bit.GPIO9 = 3;     // Configure GPIO9 as CAP3   GpioCtrlRegs.GPAMUX2.bit.GPIO26 = 1;    // Configure GPIO26 as CAP3

    EDIS;}#endif // endif DSP28_ECAP3

#if DSP28_ECAP4void InitECap4Gpio(void){   EALLOW;

/* Enable internal pull-up for the selected pins */// Pull-ups can be enabled or disabled by the user.// This will enable the pullups for the specified pins.// Comment out other unwanted lines.

   GpioCtrlRegs.GPAPUD.bit.GPIO11 = 0;   // Enable pull-up on GPIO11 (CAP4)// GpioCtrlRegs.GPAPUD.bit.GPIO27 = 0;   // Enable pull-up on GPIO27 (CAP4)

// Inputs are synchronized to SYSCLKOUT by default.// Comment out other unwanted lines.

   GpioCtrlRegs.GPAQSEL1.bit.GPIO11 = 0; // Synch to SYSCLKOUT GPIO11 (CAP4)// GpioCtrlRegs.GPAQSEL2.bit.GPIO27 = 0; // Synch to SYSCLKOUT GPIO27 (CAP4)

/* Configure eCAP-4 pins using GPIO regs*/// This specifies which of the possible GPIO pins will be eCAP4 functional pins.// Comment out other unwanted lines.

   GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 3;  // Configure GPIO11 as CAP4// GpioCtrlRegs.GPAMUX2.bit.GPIO27 = 1;  // Configure GPIO27 as CAP4

    EDIS;}#endif // endif DSP28_ECAP4

#if DSP28_ECAP5void InitECap5Gpio(void){   EALLOW;

/* Enable internal pull-up for the selected pins */// Pull-ups can be enabled or disabled by the user.// This will enable the pullups for the specified pins.// Comment out other unwanted lines.

// GpioCtrlRegs.GPAPUD.bit.GPIO3 = 0;     // Enable pull-up on GPIO3 (CAP5)   GpioCtrlRegs.GPBPUD.bit.GPIO48 = 1;    // Disable pull-up on GPIO48 (CAP5)

// Inputs are synchronized to SYSCLKOUT by default.// Comment out other unwanted lines.

// GpioCtrlRegs.GPAQSEL1.bit.GPIO3 = 0;  // Synch to SYSCLKOUT GPIO3 (CAP5)   GpioCtrlRegs.GPBQSEL2.bit.GPIO48 = 0; // Synch to SYSCLKOUT GPIO48 (CAP5)

/* Configure eCAP-5 pins using GPIO regs*/// This specifies which of the possible GPIO pins will be eCAP5 functional pins.// Comment out other unwanted lines.

// GpioCtrlRegs.GPAMUX1.bit.GPIO3 = 2;   // Configure GPIO3 as CAP5   GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 1;  // Configure GPIO48 as CAP5

    EDIS;}#endif // endif DSP28_ECAP5

#if DSP28_ECAP6void InitECap6Gpio(void){   EALLOW;

/* Enable internal pull-up for the selected pins */// Pull-ups can be enabled or disabled by the user.// This will enable the pullups for the specified pins.// Comment out other unwanted lines.

   GpioCtrlRegs.GPAPUD.bit.GPIO1 = 0;     // Enable pull-up on GPIO1 (CAP6)// GpioCtrlRegs.GPBPUD.bit.GPIO49 = 0;    // Enable pull-up on GPIO49 (CAP6)

// Inputs are synchronized to SYSCLKOUT by default.// Comment out other unwanted lines.

   GpioCtrlRegs.GPAQSEL1.bit.GPIO1 = 0;  // Synch to SYSCLKOUT GPIO1 (CAP6)// GpioCtrlRegs.GPBQSEL2.bit.GPIO49 = 0; // Synch to SYSCLKOUT GPIO49 (CAP6)

/* Configure eCAP-5 pins using GPIO regs*/// This specifies which of the possible GPIO pins will be eCAP6 functional pins.// Comment out other unwanted lines.

   GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 2;   // Configure GPIO1 as CAP6// GpioCtrlRegs.GPBMUX2.bit.GPIO49 = 1;  // Configure GPIO49 as CAP6

    EDIS;}#endif // endif DSP28_ECAP6

//===========================================================================// End of file.//===========================================================================这是主函数程序:

//       $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 ePWM3A for://    – Up count//    – Period starts at 2 and goes up to 1000//    – Toggle output on PRD//    eCAP1 is configured to capture the time between rising//    and falling edge of the PWM3A output.//###########################################################################// $TI Release: DSP2833x/DSP2823x C/C++ Header Files V1.31 $// $Release Date: August 4, 2009 $//############################################################################include "DSP28x_Project.h"     // Device Headerfile and Examples Include File#define   PI  3.14159#define   Radius  0.22#define      LED1    GpioDataRegs.GPBDAT.bit.GPIO60#define      LED2    GpioDataRegs.GPBDAT.bit.GPIO61// Configure the start/end period for the timer#define   DIR_L  GpioDataRegs.GPBDAT.bit.GPIO49#define   DIR_R  GpioDataRegs.GPADAT.bit.GPIO25// Prototype statements for functions found within this file.interrupt void ecap1_isr(void);interrupt void ecap5_isr(void);void InitECapture1(void);void InitECapture5(void);void InitLed(void);void InitDIR(void);// Global variables used in this exampleUint32  ECap1IntCount;Uint32  ECap5IntCount;Uint32  Period1 = 0;Uint32  Period5 = 0;Uint32  Time1[24]={0};Uint32  Time5[24]={0};Uint32  T_Per_L = 0;Uint32  T_Per_R = 0;Uint32  Turn_R = 0;Uint32  Turn_L = 0;float  Spd_L = 0;float  Spd_R = 0;// To keep track of which way the timer value is movingvoid main(void){

// Step 1. Initialize System Control:// PLL, WatchDog, enable Peripheral Clocks// This example function is found in the DSP2833x_SysCtrl.c file.   InitSysCtrl();   InitLed();   InitDIR();// 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        InitECap1Gpio();   InitECap5Gpio();// 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.ECAP1_INT = &ecap1_isr;   PieVectTable.ECAP5_INT = &ecap5_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

   InitECapture1();   InitECapture5();   // Step 5. User specific code, enable interrupts:

// Initalize counters:       ECap1IntCount = 0;    ECap5IntCount = 0;   // Enable CPU INT4 which is connected to ECAP1-4  INT:   IER |= M_INT4;

// Enable eCAP INTn in the PIE: Group 4 interrupt 1-6   PieCtrlRegs.PIEIER4.bit.INTx1 = 1;   PieCtrlRegs.PIEIER4.bit.INTx5 = 1;// 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");   }

void InitECapture1(){   ECap1Regs.ECEINT.all = 0x0000;             // Disable all capture interrupts 禁用所有中断使能寄存器   ECap1Regs.ECCLR.all = 0xFFFF;              // Clear all CAP interrupt flags 清除所有CAP中断旗帜   ECap1Regs.ECCTL1.bit.CAPLDEN = 0;          // Disable CAP1-CAP4 register loads 禁止在捕获事件中加载CAP1-4寄存器的时间   ECap1Regs.ECCTL2.bit.TSCTRSTOP = 0;        // Make sure the counter is stopped 计数器停止      // Configure peripheral registers   ECap1Regs.ECCTL2.bit.CAP_APWM = 0;         // CAP moudle ECAP模块工作于捕捉模式   ECap1Regs.ECCTL2.bit.CONT_ONESHT = 1;      // One shot 单次模式   ECap1Regs.ECCTL2.bit.STOP_WRAP = 0;        // Stop at 1 events 单次模式下,在CAP1的捕捉事件发生后产生停止信号   ECap1Regs.ECCTL1.bit.CAP1POL = 0;          // Rising edge CAP1上升沿捕捉   // ECap1Regs.ECCTL1.bit.CAP2POL = 0;        // Falling edge   // ECap1Regs.ECCTL1.bit.CAP3POL = 0;        // Rising edge   //ECap1Regs.ECCTL1.bit.CAP4POL = 0;        // Falling edge   ECap1Regs.ECCTL1.bit.CTRRST1 = 1;          // Difference operation  在CAP1捕获后重置计数器   // ECap1Regs.ECCTL1.bit.CTRRST2 = 1;        // Difference operation   //ECap1Regs.ECCTL1.bit.CTRRST3 = 1;        // Difference operation   //ECap1Regs.ECCTL1.bit.CTRRST4 = 1;        // Difference operation   ECap1Regs.ECCTL2.bit.SYNCI_EN = 0;         // Disable sync 屏蔽同步输入操作   ECap1Regs.ECCTL2.bit.SYNCO_SEL = 2;        // Disable sync out 屏蔽同步信号输出   ECap1Regs.ECCTL1.bit.CAPLDEN = 1;          // Enable CAP1-CAP4 register loads 使能在捕获事件中加载CAP1-4寄存器的时间   ECap1Regs.ECCTL1.bit.PRESCALE = 0;         //输入信号不分频

   ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1;        // Start Counter 计数器计数   ECap1Regs.ECCTL2.bit.REARM = 1;            // arm one-shot 以下情况将强制为单次模式   ECap1Regs.ECEINT.bit.CEVT1 = 1;            // CEVENT = interrupt 捕获事件1中断使能}

void InitECapture5(){   ECap5Regs.ECEINT.all = 0x0000;             // Disable all capture interrupts   禁用所有中断使能寄存器   ECap5Regs.ECCLR.all = 0xFFFF;              // Clear all CAP interrupt flags    清除所有CAP中断旗帜   ECap5Regs.ECCTL1.bit.CAPLDEN = 0;          // Disable CAP1-CAP4 register loads 禁止在捕获事件中加载CAP1-4寄存器的时间   ECap5Regs.ECCTL2.bit.TSCTRSTOP = 0;        // Make sure the counter is stopped 计数器停止      // Configure peripheral registers   ECap5Regs.ECCTL2.bit.CAP_APWM = 0;         // CAP moudle        ECAP模块工作于捕捉模式   ECap5Regs.ECCTL2.bit.CONT_ONESHT = 1;      // One shot          单次模式   ECap5Regs.ECCTL2.bit.STOP_WRAP = 0;        // Stop at 1 events  单次模式下,在CAP1的捕捉事件发生后产生停止信号   ECap5Regs.ECCTL1.bit.CAP1POL = 0;          // Rising edge       CAP1上升沿捕捉   //ECap5Regs.ECCTL1.bit.CAP2POL = 1;          // Falling edge  // ECap5Regs.ECCTL1.bit.CAP3POL = 0;          // Rising edge   //ECap5Regs.ECCTL1.bit.CAP4POL = 0;          // Falling edge   ECap5Regs.ECCTL1.bit.CTRRST1 = 1;          // Difference operation      在CAP1捕获后重置计数器   //ECap5Regs.ECCTL1.bit.CTRRST2 = 1;          // Difference operation            //ECap5Regs.ECCTL1.bit.CTRRST3 = 1;          // Difference operation            //ECap5Regs.ECCTL1.bit.CTRRST4 = 1;          // Difference operation            ECap5Regs.ECCTL2.bit.SYNCI_EN = 0;         // Disable sync              屏蔽同步输入操作   ECap5Regs.ECCTL2.bit.SYNCO_SEL = 2;        // Disable sync out          屏蔽同步信号输出   ECap5Regs.ECCTL1.bit.CAPLDEN = 1;          // Enable CAP1-CAP4 register loads  使能在捕获事件中加载CAP1-4寄存器的时间   ECap5Regs.ECCTL1.bit.PRESCALE = 0;            //不分频

   ECap5Regs.ECCTL2.bit.TSCTRSTOP = 1;        // Start Counter  计数器计数   ECap5Regs.ECCTL2.bit.REARM = 1;            // arm one-shot   以下情况将强制为单次模式   ECap5Regs.ECEINT.bit.CEVT1 = 1;            //捕获事件4-1中断使能,1:使能   //ECap6Regs.ECEINT.bit.CEVT2 = 1;            // CEVENT = interrupt  }

interrupt void ecap1_isr(void){   Uint32 i;   LED1=~LED1;   ECap1IntCount++;   Period1 = ECap1Regs.CAP1;   if (ECap1IntCount<=24)   {       Time1[ECap1IntCount-1] = Period1;       Period1 = 0;       if(ECap1IntCount==24)       {         for(i=0;i<24;i++)         {              T_Per_R = T_Per_R + Time1[i];         }         Spd_R = 2*PI*Radius/(float)T_Per_R/6.67*1000000000*60;         T_Per_R = 0;       }   }   else    {       Turn_R = Turn_R + 1;       ECap1IntCount = 0;   }      ECap1Regs.ECCLR.bit.CEVT1 = 1;            //捕捉事件4~1标志,清除该位标志位   ECap1Regs.ECCLR.bit.INT = 1;              //全局中断标志,清除该位标志位,不影响中断的使能   ECap1Regs.ECCTL2.bit.REARM = 1;           //以下情况下将强制为单次模式:复位Mod4计数器为0,允许Mod4计数器持续计数,使能捕捉寄存器加载

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

interrupt void ecap5_isr(void){   Uint32 j;   LED2=~LED2;   ECap5IntCount++;   Period5 = ECap5Regs.CAP1;   if (ECap5IntCount<=24)   {       Time5[ECap5IntCount-1] = Period5;       Period5 = 0;       if(ECap5IntCount==24)       {         for(j=0;j<24;j++)         {              T_Per_L = T_Per_L + Time5[j];         }         Spd_L = 2*PI*Radius/(float)T_Per_L/6.67*1000000000*60;         T_Per_L = 0;       }   }   else    {       Turn_L = Turn_L + 1;       ECap5IntCount = 0;   }      ECap5Regs.ECCLR.bit.CEVT1 = 1;              //捕捉事件4~1标志,清除该位标志位   //ECap5Regs.ECCLR.bit.CEVT2 = 1;            // CEVENT = interrupt   ECap5Regs.ECCLR.bit.INT = 1;                //全局中断标志,清除该位标志位,不影响中断的使能   ECap5Regs.ECCTL2.bit.REARM = 1;             //以下情况下将强制为单次模式:复位Mod4计数器为0,允许Mod4计数器持续计数,使能捕捉寄存器加载   // Acknowledge this interrupt to receive more interrupts from group 4   PieCtrlRegs.PIEACK.all = PIEACK_GROUP4;

}

void InitLed(void){   EALLOW;   GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 0; // GPIO60 = GPIO60   GpioCtrlRegs.GPBDIR.bit.GPIO60 = 1;  //Output   LED1=1;   GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 0; // GPIO61 = GPIO61   GpioCtrlRegs.GPBDIR.bit.GPIO61 = 1;     LED2=1;   EDIS;}void InitDIR(void){   EALLOW;   GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 0; // GPIO25 = GPIO25   GpioCtrlRegs.GPADIR.bit.GPIO25 = 0;  // Intput   GpioCtrlRegs.GPBMUX2.bit.GPIO49 = 0; // GPIO49 = GPIO49   GpioCtrlRegs.GPBDIR.bit.GPIO49 = 0;     EDIS;}//===========================================================================// No more.//===========================================================================请问捕获脉冲是从什么地方进入的?

请问ECAP里面用来产生APWM的模块,捕获脉冲是从哪个GPIO口输入的?

Green Deng:请问你用的是哪款芯片?捕获脉冲是指什么?

请问ECAP里面用来产生APWM的模块,捕获脉冲是从哪个GPIO口输入的?

user5878224:

回复 Green Deng:

28335,就是说我是不是要先捕获一个脉冲,然后用捕获的脉冲才能产生APWM?

请问ECAP里面用来产生APWM的模块,捕获脉冲是从哪个GPIO口输入的?

Green Deng:

回复 user5878224:

APWM可以看成简化版的ePWM,你可以参考TI的例程配置:
C:\ti\controlSUITE\device_support\f2833x\v142\DSP2833x_examples_ccsv5\ecap_apwm

请问ECAP里面用来产生APWM的模块,捕获脉冲是从哪个GPIO口输入的?

user5878224:

回复 Green Deng:

就是这个例程我看不懂,这个例程里面,被捕获的脉冲是从什么地方输入的?

赞(0)
未经允许不得转载:TI中文支持网 » APWM
分享到: 更多 (0)