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.

F28377D的样例 SOC_EPWM的的问题



AdcaRegs.ADCCTL1.bit.INTPULSEPOS = 1 这句话应该是中断脉冲在 ADC 结果锁存到结果寄存器可的一个周期前产生 

EPwm1Regs.ETPS.bit.SOCAPRD = 1 1 Generate the EPWMxSOCA pulse on the first event 这个事件1是什么意思? 到底是在什么时候产生呢? 

AdcdRegs.ADCINTSEL1N2.bit.INT1SEL = 3;   EOC3 is trigger for ADCINT1 这句话应该就是设置转换结束也就是eoc3触发adc1中断的一个声明

所以   到底中断在什么时候产生? 什么时候进入中断? 第一句和第三句是一个意思的吧 ? 理一下思路吧大哥


  • Hi

    1. INTPULSEPOS = 1,就是中断可以在ADC结果锁存到寄存器提前1个周期触发,原因是因为中断从触发到CPU进入中断服务函数一般要10来个CPU周期,所以这个提前触发,可以缩短这个延时时间。

    2. SOCAPRD = 1是指每个PWM周期都会触发一次SOC信号,如果等于2表示两个PWM周期才触发一次。 有些PWM开关频率比较高,但是控制频率不想那么高的情况,就可以这么去设置。

    3. INT1SEL = 3,表示在ADCSOC采样完之后,就产生中断,也就是EOC3产生中断。如配置SOC0,SOC1,SOC2,SOC3,那么转换顺序依次来的,SOC3是最后一个,所以转换完产生中断也是合理的。

    Eric

  • 嗯 谢谢  算是明白了点, 应该是这个意思吧  1. INTPULSEPOS 的意思就是确定了产生中断的点,到底是结果锁存前一个周期呢 还是adc转换开始时呢由自己决定但是并没有指出是在哪个eoc产生

    而3 INT1SEL 的值是决定了 你具体的是在soc0还是soc1 或者其他的地方产生INTPULSEPOS 定下的位置的这个点  对吧