工具与软件:
您好!
控制面板 Timer0事件1 中断为零、加载至触发 存储器1的 ADC0 CH1 和 Timer0事件2 中断 CMP 以触发 MEM2的 ADC0 CH2 . 这是真的吗?
那么 ADC0可以触发2个不同的 EOC 中断吗? 或者、是否可以在 EOC 中断例程的某些寄存器中读取 MEMx 加载结果中断?
此致、Holger
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.
工具与软件:
您好!
控制面板 Timer0事件1 中断为零、加载至触发 存储器1的 ADC0 CH1 和 Timer0事件2 中断 CMP 以触发 MEM2的 ADC0 CH2 . 这是真的吗?
那么 ADC0可以触发2个不同的 EOC 中断吗? 或者、是否可以在 EOC 中断例程的某些寄存器中读取 MEMx 加载结果中断?
此致、Holger
您好、Holger、
我看到的唯一限制是一个 ADC 只能订阅一个事件、因此无法完全实现。
您可以让单个计时器生成两个不同的事件、然后让 ADC0订阅一个事件、ADC1订阅另一个事件。
或者、如果您知道您始终要让 ADC 通道1和2交替触发、您可以订阅一个 ADC 模块到计时器事件、然后只需让计时器发布这两个事件。 然后使 ADC 进入通道1和2的序列模式。
对于您的次要问题、ADCx 可以触发 A 加载存储器结果 中断、表示将转换结果加载到结果寄存器时会触发中断。 因此、您可以启用此功能以便在加载 CH1结果和加载 CH2结果时触发中断。 不存在奇异的"转换结束"中断、而是使用存储器结果加载的中断。
载入 CH1结果和载入 CH2结果时、会执行相同的 ISR。 当您进入 ISR 时,可以使用 DL_ADC12_getPendingInterrupt()函数来确定触发 ISR 的存储器结果。 如需相关示例、请参阅 TI Resource Explorer 中的此示例。 您可以看到、在 ISR 内部、您可以使用带有 DL_ADC12_IIDX_MEMx_RESULT_LOADED 定义的条件语句、以针对特定的存储器结果加载中断执行某些代码位。
我想这在大多数情况下都可行、但例外情况是使用 CMP 向上和 CMP 向下事件不起作用、因为计时器只能处于1向上或向下模式。 您 可以做的是:通道0上的 CMP 向上、通道1上的 LOAD、ZERO、CMP 向上。
Re -阅读您的帖子、但是您不需要"started the ADC"的事件2。 Im 不确定我是否能完全理解您的意思、但是-您可以在源代码中加电并初始化 ADC、然后 ADC 订阅的事件就只会触发转换。 我不理解/认为您需要这里的活动2部分。 如果我有误解、请添加一些澄清、说明您打算在这里为事件2做些什么。