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

TMS320F280039C: 求助:ecap在连续模式下如何通过sysconfig配置触发cla任务?

Part Number:TMS320F280039COther Parts Discussed in Thread:SYSCONFIG

求助: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);
}

Jie Song:

已解决

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F280039C: 求助:ecap在连续模式下如何通过sysconfig配置触发cla任务?
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1