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.

[参考译文] TMS320F28374S:ADC int 标志无法在 CLA 任务中清除

Guru**** 2539500 points
Other Parts Discussed in Thread: SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1383621/tms320f28374s-the-adc-int-flag-cant-be-cleared-in-the-cla-task

器件型号:TMS320F28374S
Thread 中讨论的其他器件:SYSBIOS

工具与软件:

我们使用 AdcaRegs INT1来引发 CPU 中的 ADC_ISR、

and  AdcdRegs int2 to cause interrupt CLA_task1 in CLA、

但是 CLA_task1只工作一次(i32count = 1)。 我们发现 adcdRegs adcint2未被清除。

那么、为什么它(adcdRegs.ADCINTFLAGCLR.bit.ADCINT2=1)不能在 CLA 中工作?

我们 在 CPU 的 ADC_ISR 中添加 adcdRegs.ADCINTFLAGCLR.bit.ADCINT2=1、它可以正常工作!  添加 i32count。

我的问题是、如何清除 CLATASK 中的标志?

谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请注意、由于美国假期、大部分团队都是 OOO。  请在下周回复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jane:

    我有几个关于您的设置的问题要澄清:

    1. 您是否在 CPU 的 ADC ISR 内部使用软件触发器触发 CLA 任务? 或者您是否使用相同的触发事件同时触发 CPU 上的中断和 CLA 上的任务?
    2. 您是否在 CPU 上使用任何 CLA 任务结束中断(下面突出显示)?

    此致、

    Delaney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     感谢您的帮助

    我们 使用相同的触发事件在  CPU 上触发中断 ADCint1、并使用 CLAint2在 CLA 上触发任务。 ADCa 中断 为10kHz、而 adcd 中断为100kHz

    ADCaREGS.ADCINTSEL1N2.bit.INT2E = 1;

    program.global.ti_sysbios_family_c28_hwi1 = hwi.create (32、"&ADC_ISR"、hwi0Params);

    ADCdREGS.ADCINTSEL1N2.bit.INT2E = 1;

    CLA1TASKSRCSEL1.bit.TASTK1 = CLA_TRIG_ADCDINT2

    任务末尾中断未被使用。  清除 ADCDREGS。 ADCINTFALGCLR 在.cla 文件中的 CLA 任务中、该命令不起作用。  但可以在 ADC.c 文件的 ADC_ISR ()中将其清除。   在28374中、我们可以操作.cla 文件中的 ADC 寄存器吗?

    3.在 CPU ( INT11.1)上、CLA 结束任务中断的优先级低于 ADC1.1 (INT1.1)吗?  如果 INT1.1在运行时出现 INT11.1错误、  INT11.1是否应在 INT1.1完成之前恢复?

    谢谢   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Jane:

    可以、因此如果您使用 ADCDINT2事件触发 CPU 中断和 CLA 任务、您应该不需要清除两者中的 ADC INT 标志、只需要从 CPU 中断清除。 尽管不需要这样做、但您应该可以从 CLA 文件访问 ADC 寄存器、但不能像屏幕截图中所示那样使用位域访问。 这个问题的原因和解决方案包含在我对你的另一个 线程的回答中。

    如果你不使用 CLA 任务末尾中断、它的优先级应该对你为 CPU 使用的 ADC 中断没有影响。 PIE 表中的优先级也不会对 CLA 任务产生影响、因为 CLA 独立于 CPU 运行并为其任务提供服务。 当事件发生时、CPU 将分支到其 ISR、CLA 将同时独立运行其任务。  

    此致、

    Delaney