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.

[参考译文] MSPM0G1507:使用计时器 EVENT1和 EVENT2

Guru**** 2468460 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1459980/mspm0g1507-use-of-timer-event1-and-event2

器件型号:MSPM0G1507

工具与软件:

您好!
控制面板 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结果时触发中断。 不存在奇异的"转换结束"中断、而是使用存储器结果加载的中断。

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

    尊敬的 Dylan:
    好的、明白。

    >因此、您可以启用此功能以在加载 CH1结果和加载 CH2结果时触发中断。  
    这将是相同的中断处理程序? 如何区分触发中断的是哪个 ch?

    此致、Holger

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

    载入 CH1结果和载入 CH2结果时、会执行相同的 ISR。 当您进入 ISR 时,可以使用 DL_ADC12_getPendingInterrupt()函数来确定触发 ISR 的存储器结果。 如需相关示例、请参阅 TI Resource Explorer 中的此示例。 您可以看到、在 ISR 内部、您可以使用带有 DL_ADC12_IIDX_MEMx_RESULT_LOADED 定义的条件语句、以针对特定的存储器结果加载中断执行某些代码位。

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

    尊敬的 Dylan:
    使用序列 ADC 模式并使用事件1生成4个事件会怎样:零、CMP 向上、LOAD、CMP 向下。 使用4个事件1、您可以触发4次 ADC 转换。 您可以在每次事件2 =每个 SW/CPU 为零的情况下启动 ADC。 这样可以吗?

    此致、Holger

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

    我想这在大多数情况下都可行、但例外情况是使用 CMP 向上和 CMP 向下事件不起作用、因为计时器只能处于1向上或向下模式。 您 可以做的是:通道0上的 CMP 向上、通道1上的 LOAD、ZERO、CMP 向上。

    Re -阅读您的帖子、但是您不需要"started the ADC"的事件2。 Im 不确定我是否能完全理解您的意思、但是-您可以在源代码中加电并初始化 ADC、然后 ADC 订阅的事件就只会触发转换。 我不理解/认为您需要这里的活动2部分。 如果我有误解、请添加一些澄清、说明您打算在这里为事件2做些什么。

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

    尊敬的 Dylan:
    我认为定时器可以在增/减模式中计数(请参阅第27.2.2.3章"增/减计数模式"):

    > ADC-reading 你的文章,虽然,你不需要事件2 ,"启动 Re ".
    由于 ADC 只有一个事件(零、向上、负载、向下)、因此我不清楚在何时测量哪个信号。 因此、我想使用 Event2与零事件同步。

    此致、Holger

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

    抱歉、Holger、您是对的、我们有向上/向下模式。 您可以使用它并获得在同一配置下的上行和下行信号。

    没有事件来重新启动 ADC 序列、您需要确保序列通过测试在预期事件上可靠触发、或者您可以使用软件在序列之间复位 ADC 外设。

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

    尊敬的 Dylan:

    >您可以使用软件在序列之间复位 ADC 外设。
    如何复位 ADC?

    此致、Holger

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

    请看一下  

    DL_ADC12_RESET (ADC12_0_INST);  
    结构。 请注意、执行此操作后、您需要重新初始化 ADC。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    SO、使用 DL_ADC12_RESET (ADC12_0_INST);
    完整的 ADC 配置是否已重置?

    此致、Holger

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

    正确、使用复位 API 后不应保留 ADC 设置。