This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
求助:ecap在连续模式下如何通过sysconfig配置触发cla任务?
目前已经配置成功连续模式,并能获取ecap寄存器值。但是想通过ecap触发cla,以实现咋icla中进行计算时,发现无法触发。
配置如下:
CLA:
CLA_setTriggerSource(CLA_TASK_2, CLA_TRIGGER_ECAP3INT);
ECAP:
void HRECAP_init(){ // // HRCAP module configuration for HRECAP_HR_BASE (part of HRECAP_BASE). // // Enable High resolution clock // HRCAP_enableHighResolutionClock(HRECAP_HR_BASE); DEVICE_DELAY_US(1); // 1us delay as mentioned in HRCAP chapter of TRM // // Enable High Resolution module // HRCAP_enableHighResolution(HRECAP_HR_BASE); DEVICE_DELAY_US(1); // 1us delay as mentioned in HRCAP chapter of TRM // // Disables time stamp capture. // ECAP_disableTimeStampCapture(HRECAP_BASE); // // Stops Time stamp counter. // ECAP_stopCounter(HRECAP_BASE); // // Sets eCAP in Capture mode. // ECAP_enableCaptureMode(HRECAP_BASE); // // Sets the capture mode. // ECAP_setCaptureMode(HRECAP_BASE,ECAP_CONTINUOUS_CAPTURE_MODE,ECAP_EVENT_2); // // Sets the Capture event prescaler. // ECAP_setEventPrescaler(HRECAP_BASE, 0U); // // Sets the Capture event polarity. // ECAP_setEventPolarity(HRECAP_BASE,ECAP_EVENT_1,ECAP_EVNT_RISING_EDGE); ECAP_setEventPolarity(HRECAP_BASE,ECAP_EVENT_2,ECAP_EVNT_FALLING_EDGE); ECAP_setEventPolarity(HRECAP_BASE,ECAP_EVENT_3,ECAP_EVNT_RISING_EDGE); ECAP_setEventPolarity(HRECAP_BASE,ECAP_EVENT_4,ECAP_EVNT_FALLING_EDGE); // // Configure counter reset on events // ECAP_disableCounterResetOnEvent(HRECAP_BASE,ECAP_EVENT_1); ECAP_disableCounterResetOnEvent(HRECAP_BASE,ECAP_EVENT_2); ECAP_disableCounterResetOnEvent(HRECAP_BASE,ECAP_EVENT_3); ECAP_disableCounterResetOnEvent(HRECAP_BASE,ECAP_EVENT_4); // // Select eCAP input. // ECAP_selectECAPInput(HRECAP_BASE,ECAP_INPUT_INPUTXBAR7); // // Sets a phase shift value count. // ECAP_setPhaseShiftCount(HRECAP_BASE,0U); // // Enable counter loading with phase shift value. // ECAP_enableLoadCounter(HRECAP_BASE); // // Configures Sync out signal mode. // ECAP_setSyncOutMode(HRECAP_BASE,ECAP_SYNC_OUT_SYNCI); // // Resets eCAP counters and flags. // ECAP_resetCounters(HRECAP_BASE); // // Configures emulation mode. // ECAP_setEmulationMode(HRECAP_BASE,ECAP_EMULATION_FREE_RUN); // // Set up the source for sync-in pulse.. // ECAP_setSyncInPulseSource(HRECAP_BASE,ECAP_SYNC_IN_PULSE_SRC_SYNCOUT_EPWM1); // // Starts Time stamp counter for HRECAP. // ECAP_startCounter(HRECAP_BASE); // // Enables time stamp capture for HRECAP. // ECAP_enableTimeStampCapture(HRECAP_BASE); // // Re-arms the eCAP module for HRECAP. // ECAP_reArm(HRECAP_BASE); // // HRECAP_HR_BASE Calibration Settings // // Set calibration period (register is in SYSCLK cycles), 1.6ms recommended // HWREG(HRECAP_HR_BASE + HRCAP_O_HRCALPRD) = (uint32_t) (120e9 * (1.6/1000)); // // Configure in continuous calibration mode // HRCAP_setCalibrationMode(HRECAP_HR_BASE); // // Enable HRCAP calibration interrupts // HRCAP_enableCalibrationInterrupt(HRECAP_HR_BASE, (HRCAP_CALIBRATION_DONE | HRCAP_CALIBRATION_PERIOD_OVERFLOW)); // // Start HR calibration // HRCAP_startCalibration(HRECAP_HR_BASE); }