Part Number:TMS320F28379DOther Parts Discussed in Thread:C2000WARE
您好!
在目录C2000Ware_3_04_00_00\device_support\f2837xd\examples\cpu1\adc_soc_epwm\cpu01的代码中:似乎没有对特定的GPIO口复用为ADC的引脚???
void main(void)
{
//
// Step 1. Initialize System Control:
// PLL, WatchDog, enable Peripheral Clocks
// This example function is found in the F2837xD_SysCtrl.c file.
//InitSysCtrl();
//
// Step 2. Initialize GPIO:
// This example function is found in the F2837xD_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 F2837xD_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 F2837xD_DefaultIsr.c.
// This function is found in F2837xD_PieVect.c.
//InitPieVectTable();
//
// Map ISR functions
//EALLOW;PieVectTable.ADCA1_INT = &adca1_isr; //function for ADCA interrupt 1EDIS;
//
// Configure the ADC and power it up
//ConfigureADC();
//
// Configure the ePWM
//ConfigureEPWM();
//
// Setup the ADC for ePWM triggered conversions on channel 0
//SetupADCEpwm(0);
//
// Enable global Interrupts and higher priority real-time debug events:
//IER |= M_INT1; //Enable group 1 interruptsEINT; // Enable Global interrupt INTMERTM; // Enable Global realtime interrupt DBGM
//
// Initialize results buffer
//for(resultsIndex = 0; resultsIndex < RESULTS_BUFFER_SIZE; resultsIndex++){AdcaResults[resultsIndex] = 0;}resultsIndex = 0;bufferFull = 0;
//
// enable PIE interrupt
//PieCtrlRegs.PIEIER1.bit.INTx1 = 1;
//
// sync ePWM
//EALLOW;CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1;
//
//take conversions indefinitely in loop
//do{////start ePWM//EPwm1Regs.ETSEL.bit.SOCAEN = 1; //enable SOCAEPwm1Regs.TBCTL.bit.CTRMODE = 0; //unfreeze, and enter up count mode////wait while ePWM causes ADC conversions, which then cause interrupts,//which fill the results buffer, eventually setting the bufferFull//flag//while(!bufferFull);bufferFull = 0; //clear the buffer full flag////stop ePWM//EPwm1Regs.ETSEL.bit.SOCAEN = 0; //disable SOCAEPwm1Regs.TBCTL.bit.CTRMODE = 3; //freeze counter////at this point, AdcaResults[] contains a sequence of conversions//from the selected channel//////software breakpoint, hit run again to get updated conversions//asm("ESTOP0");}while(1);
}
非常感谢!
user6311038:
DSP的ADC引脚本来就不能复用。。。。。。。。。。
TI中文支持网



