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.
工具/软件:Code Composer Studio
您好、MSP-Team、
我代表客户输入问题。 问题与 Timer_A1 (TA1)的输出行为有关。
他在向上计数模式下使用 TA1、激活 TAIE 并在 OUTMOD = TOGGLE 时切换 GPIO。 相应地设置 GPIO 的 PSEL。 在 TA1的中断例程中、TA1CCR0更新为新值。
如果计数器值高于需要设置的 CCR0值、则 IRQ 将被触发、倒计数将被正确复位、但 GPIO 未被切换。
此行为是否正确? 在这种情况下、预期输出也会切换。
此致、
Gokhan
尊敬的 Barrera 先生
非常感谢您的快速响应!
参考了第 1.2.5.1.1章"输出示例- SLAU400F 中处于增模式的定时器":"当定时器计数到 TAxCCRn 值并且从 TAxCCR0降到零时、OUTn 信号会发生变化、具体取决于输出模式。"
如果我理解正确、TA1R 会向上计数到设置的 TA1CCR0值、并且一旦它们匹配、在计时器时钟的下一个上升沿、TA1R 会回滚到零、TAIFG 会被触发、并且在我的情况下会切换 OUTn。
那么、如果我将 TA1CCR0设置为与当前的 TA1R 相同的值、那么在计时器时钟的下一个上升沿、OUTn 应该切换、因为给出了 TA1R 和 TA1CCR0匹配的条件? 另一方面、当 TA1R 大于新设置的 TA1CCR0值时、不会为 OUTn 提供此条件、只有 TA1R 回滚到零并且触发 TAIFG。
此致、
Pascal Künzi
Pascal、您好!
因此、数据表第一句末尾显示:"取决于输出模式"。 之前提到过、OUTMOD = Toggle 且 Timer_A1处于向上计数模式。 如果您查看输出模式4:切换的输出示例图、它会显示每次计数 TA1R = TA1CCRn 时 OUTn 信号都会切换。 当 TA1R = TA1CCR0时、没有开关行为、因此我很困惑为什么在这种情况下 OUTn 会切换。 这是您看到的行为吗?
如果您使用输出模式2、3、6或7、则该输出的开关行为将取决于 TA1CCR0。
它没有在数据表中明确说明如果您将 TA1CCR0完全更改为 TA1R 将会发生什么行为、更重要的是、此时 OUTn 的行为是什么、因此我将与团队一起研究这一点、看看他们提供了什么反馈。 您是否有用于测试此代码的任何代码?
描述输出模式的表格非常清楚、当定时器计数到 CCRx 时、输出切换。 因此、如果您将 CCRx 更改为小于当前计数的值、则在下次计数到 CCRx 时才会切换。
Pascal、您好!
如果您使用向上计数模式、我建议切换到另一个器件输出信号引脚、如 TA1.1或 TA1.2、以便 TA1CCR1或 TA1CCR2切换输出引脚。 由于 TA1CCR0设置了 PWM 周期、因此在将该引脚用作 PWM 输出时、使用 TA1.0将不会很有用。 您看到的是下面的线程中显示的行为(最下面的回复)-输出在每个周期都会发生变化。
我在 Launchpad 上尝试了一个简单的测试。 我将 TA0.1配置为计时器输出(连接到绿色 LED)以监控结果。
CCR1被设置为等于 CCR0、该 CCR0已从计数为0xff 的32KHz ACLK 运行。 CCTL1被设置为切换/复位输出模式。
用户指南中的表25.2告诉我、当定时器计数到 CCR1时、输出将切换、而当它计数到 CCR0时、输出将复位。 如果是这样,那么结果将确切取决于同时发生的冲突所发生的情况。 完全打开或关闭是可能的结果。 但我看到的是 LED 发出的微弱的光。 更改 CCR1会改变其亮度、CCR0+1的值为 FULL OFF。
这告诉我、当定时器在到达 CCR0后复位为零一个计数时、会发生输出复位。
你(们)好、David
感谢您查看该内容。 与我的设置相比、CCTL1设置为模式4切换。
根据我现在介绍的内容、切换/复位和切换均按预期运行、并与此论坛 问题的底部答案相匹配。
此致、
Pascal
你好,Aaron
您共享的论坛条目与我的期望/体验相匹配。
我最初提出的一个问题是、当 TA1R 大于设置的 TA1CCR0值时、OUTn 是否切换已在之前的答复中得到解决。
非常感谢您的努力、分享了指向该论坛条目的链接、并帮助我了解计时器外设的功能! )
此致、
Pascal Künzi