Other Parts Discussed in Thread: C2000WARE
主题中讨论的其他器件:C2000WARE
您好!
我想使用一个 PWM 来进行两次中断、但我不确定我的操作是否正确。
我在0处检测到 ePWM1A 的上升沿、以进行第一次中断:
EPwm1Regs.ETSEL.bit.SOCAEN = 1; //为 ePWM1A 启用 INT
EPwm1Regs.ETSEL.bit.SOCASEL = ET_CTR_ZERO; //选择 INT on Zero
EPwm1Regs.ETPS.bit.SOCAPRD = ET_1ST; //在发生第一个事件时生成 INT
然后、我检测到 ePWM1B 的下降沿(CNT=CMPB)以进行第二次中断:
EPwm1Regs.ETSEL.bit.SOCBEN = 1; //为 ePWM1B 启用 INT
EPwm1Regs.ETSEL.bit.SOCBSEL = ET_CTRL_CMPB;//在 CNT = CMPB 时选择 INT,递增计数
EPwm1Regs.ETPS.bit.SOCBPRD = et_1st; //在第一个事件发生时生成 INT
为了将每个触发器链接到正确的中断、我在主函数中执行了以下操作:
PieVectTable.EPWM1_INT =&epwm1_ISR;
PieVectTable.EPWM1_INT =&ADC_ISR;
够了吗? 我觉得有些东西缺少了...
谢谢你