主题中讨论的其他器件:MSP430FR2433、
工具/软件:Code Composer Studio
您好!
我想知道如何设置以下内容、
1]如何设置3个计时器源中断、一个用于电池监控、另一个用于创建延迟、第三个用于蜂鸣器的 PWM。
2]如何在 通道序列/通道重复序列中设置2个 ADC 通道(A0、A1)。
我知道要设置单个计时器和单个 ADC 通道。 有没有这些示例?
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
您好!
我想知道如何设置以下内容、
1]如何设置3个计时器源中断、一个用于电池监控、另一个用于创建延迟、第三个用于蜂鸣器的 PWM。
2]如何在 通道序列/通道重复序列中设置2个 ADC 通道(A0、A1)。
我知道要设置单个计时器和单个 ADC 通道。 有没有这些示例?
您好、Gourav、
请查找包括计时器和 ADC 1在内的外设示例。
您好、Gourav、
[引用用户="Gourav H"]
我想知道如何设置以下内容、
1]如何设置3个计时器源中断、一个用于电池监控、另一个用于创建延迟、第三个用于蜂鸣器的 PWM。
2]如何在 通道序列/通道重复序列中设置2个 ADC 通道(A0、A1)。
我知道要设置单个计时器和单个 ADC 通道。 有没有这些示例?
[/报价]
让我看看我是否能找到符合您期望的东西、但让我确保我了解您想要做的事情。
1.电池监控的定时器中断-可以是以某个固定速率产生中断的任何定时器。 在 ISR 中、您可以确定是否/何时读取电池。
2.您计划使用哪种 PWM 频率? 或者、更好的问题是、您将使用 PWM 的目的是什么?
3.对于 A/D,是否将使用其中一个 A/D 通道来测量电池电压,另一个通道按顺序读取其他电压?
您好 Dennis、
A0通道用于检查加速计输出、A1通道用于电池管理。
为此、我们需要一个计时器。
或
这两个引脚也可以连续读取、并且当它超过特定的阈值电压时(对于通道 A0和 A1)执行一个任务
计时器用于
您好、Gourav、
随附的示例代码演示了如何将 Timer1用作"节拍"计时器、该计时器可用于触发事件、例如以两种不同的速率读取电池和加速计。 请记住、这也可以通过两个单独的计时器来完成。 这是仅使用一个计时器的示例。
如果您在浏览本示例后有疑问、请随时提问。
另一个计时器 Timer0用于生成蜂鸣器的频率。
注意:这些都基于 Resource Explorer 中的 MSP430FR2433的几个示例代码项目、并且由于与 FR2676属于同一系列、因此这些示例代码项目将起作用。 您只需确保为 FR2676设置项目即可。
e2e.ti.com/.../msp430fr243x_5F00_timer_5F00_adc_5F00_example1.c
尊敬的 Dennis:
我对您提供的代码有一些疑问。
您好、Gourav、
[引用 USER="Gourav H">根据 msp430fr2676tpt 的用户指南、ADCPCTL0至 ADCPCTL7在 msp430fr2676.h 中定义我已经检查它们是否未定义、所以行//SYSCFG2 |= ADCPCTL6 | ADCPCTL7; // A6 =电池、A7 =加速计//生成错误。
我在 MSP430FR2433上执行了此操作、因此您必须选择所需的模拟通道。
[引用 USER="Gourav H"> ADC 通道的切换也可以在 Timer1 A0中断服务例程的计时器节拍事件中完成? 。 [/报价]
是的。 我只展示了一种方法来实现它。 通常、您希望在 ISR (前台)中花费最少的时间并在主循环(后台)中执行此操作。
[引用 USER="Gourav H">调试宏的重要性是什么? 它们用于检查 MCU 是 lmp0模式、还是用于指示加速计和电池的 ADC 数据就绪。[/quot]
我使用调试宏来简化 IO 引脚的设置、清除或切换、因此我可以使用逻辑探头进行监控、以确保时序正确且一切正常工作。 您可以删除它们。
[引用 user="Gourav H"]我想将其与12个自 Capios 按钮集成在一起, 这些按钮使用 lpm3和 wale on Proximity,MCU 如何进入和退出 lpm0和 lpm3
如果您已经使用 CapTIvate 设计中心创建了一个项目,您将在主循环中看到,在调用 CAPT_appHandler()后,该器件被放置在 LPM0或 LPM3中。 这取决于您是将项目配置为使用 UART 运行(必须使用 LPM0)、还是所有其他配置都使用 LPM3。 原因是当使用 UART 时、从 LPM3启动时钟所需的时间太长(10uS)、您将丢失主机(或 PC)发送的一个或多个位、尤其是在波特率较高的情况下。 当使用 LPM0时、只有 CPU 停止、所有时钟保持运行。 因此、如果使用 UART、建议使用 LPM0。
尊敬的 Dennis:
[引用用户="Dennis Lehman">原因是当使用 UART 时、从 LPM3启动时钟所需的时间太长(10uS)、您将会错过主机(或 PC)发送的一个或多个位、尤其是在波特率较高的情况下。 当使用 LPM0时、只有 CPU 停止、所有时钟保持运行。 因此、如果使用 UART、建议使用 LPM0。[/quot]
msp430fr2676在我的应用中充当主机、它通过波特率为9600的 UART 与 cc3220连接、并且这个应用由电池供电、所以必须实现低功耗(即 LPM3)。 9600波特率是否正常? 或者波特率的低多少、这样这些位不会在 LPM3中丢失??
SPI 和 I2C 在使用 LPM3时是否也存在一些问题? 我在 LPM3 (即 CAPT_appSleep ())中配置了项目、而在 LPM0中配置了其他项目(使用定时器/ADC/SPI/i2c/UART)。
您好、Gourav、
UART 由器件本身提供时钟、并且只提供配置波特率的 TX/RX 线上的数据。 因此、如果接收器的时钟未就绪、频率可能错误、甚至正在启动、当数据来自线路时、时钟拍会出错。 无论您配置的波特率如何、都是如此。 当数据来自线路时、应确保 UART 模块的时钟就绪。
SPI 和 I2C 是另一种时钟由 CLK/SCL 线路供源的情况。 因此、即使当数据在线路上启动时器件时钟未就绪、SPI 和 I2C 也可以正常工作。