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.
工具与软件:
你好、专家
当我使用 GPIO0、GPIO1、GPIO2、GPIO3、GPIO4、GPIO5作为 PWM_uH、PWM_ul、PWM_VH、PWM_vl、PWM_wh、PWM_wl 时。
ADC 设置:
使用了 epmw1_SOCA 触发器 soc0、soc1。
选择 ADCA-INT3-SOC1、启用 ADC 中断
当图中将 PWM GPIO 配置为 altfunction 1时、会发生 ADC 中断。
但当我在 图中使用 GPIO alt函 数15时、不会发生 ADC 中断。
为什么?
器件型号:TMS320F2800156-Q1
工具与软件:
你好、专家
当我使用 GPIO0、GPIO1、GPIO2、GPIO3、GPIO4、GPIO5作为 PWM_uH、PWM_ul、PWM_VH、PWM_vl、PWM_wh、PWM_wl 时。
ADC 设置:
使用了 epmw1_SOCA 触发器 soc0、soc1。
选择 ADCA-INT3-SOC1、启用 ADC 中断
当图中将 PWM GPIO 配置为 altfunction 1时、会发生 ADC 中断。
但当我在 图中使用 GPIO alt函 数15时、不会发生 ADC 中断。
为什么?
我没有看到哪个通道输出 PWM 配置与 ADC 中断相关
尊敬的 Zhang:
接收到 ePWm1触发器时、会发生 SOC 事件。 当转换完成时、会产生 ADC 中断。 无论 PWM GPIO 选择如何、都要进行这种操作。
请参阅 C2000ware ADC 示例
[安装路径]\driverlib\f280015x\examples\adc
您能在两种情况下发送您的代码吗?
谢谢!
Susmitha
初始代码是参考 C2000ware ADC 示例
区别是什么
生成 ADC 中断。
// gpio0->gpio0->pump_uH
GPIO_setPinConfig (GPIO_0_EPWM1_A);
GPIO_setPinConfig (GPIO_2_EPWM2_A);
GPIO_setPinConfig (GPIO_4_EPWM2_A);
GPIO_setPinConfig (GPIO_1_EPWM1_B);
GPIO_setPinConfig (GPIO_3_EPWM2_B);
GPIO_setPinConfig (GPIO_5_EPWM3_B);
//ePWM 通道
#define MTR1_PWM_U_BASE EPWM1_BASE
#define MTR1_PWM_V_BASE EPWM2_BASE
#define MTR1_PWM_W_BASE EPWM3_BASE
未生成 ADC 中断。
// gpio0->gpio0->pump_uH
GPIO_setPinConfig (GPIO_0_EPWM3_A);
GPIO_setPinConfig (GPIO_2_EPWM4_A);
GPIO_setPinConfig (GPIO_4_EPWM1_A);
GPIO_setPinConfig (GPIO_1_EPWM3_B);
GPIO_setPinConfig (GPIO_3_EPWM4_B);
GPIO_setPinConfig (GPIO_5_EPWM1_B);
//ePWM 通道
#define MTR1_PWM_U_BASE EPWM3_BASE
#define MTR1_PWM_V_BASE EPWM4_BASE
#define MTR1_PWM_W_BASE EPWM1_BASE
尊敬的 Zhang:
以上配置看起来正常。 在这两种情况下如何配置中断?
谢谢!
Susmitha
ADC_setInterruptSource (MTR1_ADC_INT_BASE、MTR1_ADC_INT_NUM、MTR1_ADC_INT_SOC);
// ADC 中断
#define MTR1_ADC_INT_BASE ADCA_BASE // ADCA-A5*/C2 -SOC8
//ADCA_INTx (1~4)
#define MTR1_ADC_INT_NUM ADC_INT_Number3 // ADCA_INT3-SOC1
//与相电流样本匹配
#define MTR1_ADC_INT_SOC ADC_SOC_NUMBER1 // ADCA_INT3-SOC1
//ePWM 配置
//设置事件触发选择寄存器(ETSEL)
ePWM_setInterruptSource (obj->pwmHandle[0]、ePWM_INT_TBCTR_U_CMPA);
EPWM_setADCTriggerSource (obj->pwmHandle[0]、EPWM_SOC_A、
EPWM_SOC_TBCTR_U_CMPA);
ePWM_enableADCTrigger (obj->pwmHandle[0]、ePWM_SOC_A);
尊敬的 Zhang:
我们在 C200ware 示例中提供了 ex2、它与您正在执行的操作类似。 这是路径。
[安装路径]\driverlib\f280015x\examples\adc
如果您能够解决问题、请告诉我、如果您有其他问题、请联系我。
谢谢!
Susmitha