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中断的一个声明
所以 到底中断在什么时候产生? 什么时候进入中断? 第一句和第三句是一个意思的吧 ? 理一下思路吧大哥
Eric Ma:
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
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中断的一个声明
所以 到底中断在什么时候产生? 什么时候进入中断? 第一句和第三句是一个意思的吧 ? 理一下思路吧大哥
datong fang:
回复 Eric Ma:
嗯 谢谢 算是明白了点, 应该是这个意思吧 1. INTPULSEPOS 的意思就是确定了产生中断的点,到底是结果锁存前一个周期呢 还是adc转换开始时呢由自己决定但是并没有指出是在哪个eoc产生
而3 INT1SEL 的值是决定了 你具体的是在soc0还是soc1 或者其他的地方产生INTPULSEPOS 定下的位置的这个点 对吧