由于我的电流频率基本在50KHz左右,需要比较高的采样频率,但用中断读取AD采样值会占用主CPU大量时间,所以我想用CLA读取这个电流的采样值,我看一般的例子都是将ADC连续模式关闭,待CLA任务执行完毕之后触发主CPU中断再清除ADCINT的标志,这样相当于主CPU依旧需要执行中断程序,所以我的想法是:将ADC设置连续采样模式,我看datasheet里面提到 “ADCINTy pulses are generated whenever an EOC pulse is generated irrespective if the flag bit is cleared or not.”也就是说在连续模式下EOC脉冲依旧会产生不管ADCINT中断标志是否置位,是否可以说明不用去清除ADCINT中断标志也可以触发CLA任务呢?也就是说CLA任务是依靠中断标志位触发还是依靠EOC脉冲触发呢?(我的主要目的是主CPU不执行中断下能读出较高采样频率下的AD值)?
芯片是TMS 28035,望各位高手能够指点下!
Gavin J:
CLA的任务,需要外设(例如ADC)的中断来触发。
如果ADC 不产生中断,则不能触发CLA任务
由于我的电流频率基本在50KHz左右,需要比较高的采样频率,但用中断读取AD采样值会占用主CPU大量时间,所以我想用CLA读取这个电流的采样值,我看一般的例子都是将ADC连续模式关闭,待CLA任务执行完毕之后触发主CPU中断再清除ADCINT的标志,这样相当于主CPU依旧需要执行中断程序,所以我的想法是:将ADC设置连续采样模式,我看datasheet里面提到 “ADCINTy pulses are generated whenever an EOC pulse is generated irrespective if the flag bit is cleared or not.”也就是说在连续模式下EOC脉冲依旧会产生不管ADCINT中断标志是否置位,是否可以说明不用去清除ADCINT中断标志也可以触发CLA任务呢?也就是说CLA任务是依靠中断标志位触发还是依靠EOC脉冲触发呢?(我的主要目的是主CPU不执行中断下能读出较高采样频率下的AD值)?
芯片是TMS 28035,望各位高手能够指点下!
囧:
CLA是协处理器,可以和主CPU并行处理任务,所以你只有需要用一个频率比较高的PWM模块定时触发ADC SOC,然后用ADCINT标志去触发CLA任务读取就可以了。
由于我的电流频率基本在50KHz左右,需要比较高的采样频率,但用中断读取AD采样值会占用主CPU大量时间,所以我想用CLA读取这个电流的采样值,我看一般的例子都是将ADC连续模式关闭,待CLA任务执行完毕之后触发主CPU中断再清除ADCINT的标志,这样相当于主CPU依旧需要执行中断程序,所以我的想法是:将ADC设置连续采样模式,我看datasheet里面提到 “ADCINTy pulses are generated whenever an EOC pulse is generated irrespective if the flag bit is cleared or not.”也就是说在连续模式下EOC脉冲依旧会产生不管ADCINT中断标志是否置位,是否可以说明不用去清除ADCINT中断标志也可以触发CLA任务呢?也就是说CLA任务是依靠中断标志位触发还是依靠EOC脉冲触发呢?(我的主要目的是主CPU不执行中断下能读出较高采样频率下的AD值)?
芯片是TMS 28035,望各位高手能够指点下!
XIAO ZHOU:
Lz你好,我明白你的意思。问下你现在实现了吗?我刚刚也使用了你讲的这种模式,但是貌似采用Continuous Int触发后,其采样也是连续的,即处理不再是50K了。因此最后总体来看这种模式也没法使用。