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.

[参考译文] MSP430FR2476:通过中断驱动开发使用 LPM 3.5时的最佳实践

Guru**** 2535250 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/974092/msp430fr2476-best-practices-when-when-using-lpm-3-5-via-interrupt-driven-development

器件型号:MSP430FR2476
主题中讨论的其他器件:MSP430WARE

我想知道在使用中断驱动型开发时要使用的最佳软件工具和做法是什么。 我的程序目前已设置为遵循以下基本路径:

#include "driverlib.h"

//Global 变量
#pragma PERSISTENT (hello)
int hello;

int main(){
while (1){}

/*


下面的中断例程...
* 

如何将我的微控制器置入 LPM3.5、以及处理该模式进入和退出中断服务例程的最佳做法是什么。

谢谢!

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

    我建议您从此处的示例 msp430fr267x_LPM3_5_01.c 开始:

    dev.ti.com/.../node

    通读一次(简短描述)、然后阅读用户指南(SLAU445I)第1.4.3节(尤其是1.4.3.1)。  

    该示例大部分时间在 LPM3.5下运行、通过 RTC 中断唤醒、并通过在备用存储器中保存 P1配置来使 LED 闪烁(因为端口配置和 SRAM 都丢失)。  该流程将让您了解 LPM3.5的工作原理。

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

    我在示例代码中看到 GPIO 的配置存储在备用存储器(BK_MEM)中。 它看起来与 ctpl 工具在器件复位/切换到 LPM 时将外设状态存储到 FRAM 中的功能非常相似。 我希望能够利用 MSP430Ware 中包含的 FRAM 实用程序软件。

    此外、我还想使用驱动程序库、因为它似乎大大提高了代码的可读性、并且总体上更易于理解。

    总体而言、您认为是否最好 a)使用 ctpl 库将微控制器放入 LPMx.5中、b)使用 driverlib.h 配置外设并在 main 开始时简单地初始化它们?

    下面是我在查看示例代码后的想法:

    #include "driverlib.h"
    
    int main (void){
    initGPIO ();
    initRTC ();
    
    while (1){
    ctpl_enterLpm35 (CTPL_disable_restore_on_reset);
    }
    
    
    void initGPIO (){
    //执行一些初始化
    }
    
    void initRTC (){
    //执行一些初始化
    }
    
    
    //从此处开始...
    #pragma vector=RTC_Vector
    __interrupt void RTC_ISR (void)
    {
    //执行某些
    操作} 

    谢谢!

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

    (a)是的、我认为这是 CTPL 的预期用途之一。

    (b)我认为使用 driverlib 与 CTPL 没有明显的冲突。