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.

[参考译文] MSP430L092:如何为msp430l092添加millis ()函数代码?

Guru**** 2382480 points
Other Parts Discussed in Thread: MSP430L092, ENERGIA
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/582980/msp430l092-how-can-i-add-millis-function-code-for-msp430l092

部件号:MSP430L092
主题中讨论的其他部件: Energia

我准备了一个包含millis ()函数的项目来确定Arduino Uno上两个信号之间的时间间隔,但我打算用msp430l092微控制器替换Arduino Uno。 我在IAR嵌入式工作台上使用了c++的ADC示例代码来读取我的传感器值,但我无法使用millis ()函数,因为msp430l092库中未定义该函数。 有人能帮我吗?

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

    如果它适用于您的处理器,请使用Energia,它是用于启动板的Arduino叉。

    否则使用Systick并将其设置为每毫秒触发一次。 递增一个32位计数器。millis ()只返回计数器的值。

    这是我添加了Tick和millis的driverlib示例。

    将0.5 sec更改为.001 sec,将留给感兴趣的学生。 8^)

    /*
    --------------------------------------------
    * MSP432驱动程序库- v3_21_00_05
    *----------------------------------
    *
    **-版权所有-,BSD,BSD
    *版权所有(c) 2016,Texas Instruments Incorporated
    *保留所有权利。
    *
    **
    允许以源代码和二进制格式重新发布和使用,无论是否进行*修改,只要
    满足以下条件*:
    *
    ****重新发布源代码必须保留上述版权
    *声明,此条件列表和以下免责声明。
    *
    ***以二进制格式重新分发时,必须在
    
    随分发提供的*文档和/或其他材料中复制上述版权*声明,此条件列表和以下免责声明。
    *
    ***
    
    未经事先书面许可,不得使用德州仪器(TI)公司的名称或*其贡献者的名称来支持或促销由本软件衍生的产品*。
    *
    *本软件由版权所有者和贡献者"按原样"提供
    *,
    
    不提供任何明示或暗示的担保,包括但不限于*对适销性和特定*用途适用性的暗示担保。 在任何情况下,版权所有者或
    *贡献者均不对任何直接,间接,附带,特殊,
    *示范, 或后果性损害(包括但不限于
    *购买替代商品或服务;使用,数据或利润损失;
    (*或业务中断),但根据任何责任理论
    ,*无论是合同,严格责任还是侵权行为(包括疏忽或
    *其他),均因使用本软件而导致*
    ,即使已被告知此类损害的可能性。
    -/copyright--*//*******************************************************************************************************
    
    * MSP432 Systick -闪烁LED程序
    *
    说明:此程序将使用Systick模块使LED闪烁
    *一秒钟。 设置后,应用程序将进入LPM3
    *模式,并且仅唤醒以切换GPIO引脚。
    *
    **此程序无限运行,直到用户手动停止。
    *
    ** MSP432P401
    * -----------
    * /|\\| |
    * || |
    * --|RST WFP 1.0 |-->WFP 1.0 LED
    * | |
    * | |
    * | |
    * | |
    * | |
    *
    *作者:Timothy Logan
    ******************************************************************************* /*
    DriverLib包括*/
    #include "driverlib.h"
    
    /*标准包括*/
    #include <stdint.h>
    
    #include <stdbool.h>UINT32_t
    
    millis (void);
    
    volatile UINT32_t Tick;
    
    int main(void){
    
    /*停止监视程序*/
    MAP_WDT_A_HoldTimer();
    
    /*将GPIO配置为输出*/
    MAP_GPIO_setAsOutputPin (GPIO端口P1,GPIO _PIN0);
    
    /*配置Systick在150万时触发(MCLK为3MHz,因此这将产生
    *每隔0.5秒切换一次)*/
    MAP_Systick_enableModule();
    MAP_Systick_setPeriod (150万);
    MAP_Interrupt_enableSleepOnIsrExit();
    MAP_Systick_enableInterrupe();
    
    /*启用主中断*/
    MAP_Interrupt_enableMaster();
    
    同时(1)
    {
    MAP_PCM_GotoLPM0();
    }
    }
    
    作废Systick_Handler(void){
    
    MAP_GPIO_toggleOutputOnPin (GPIO端口P1,GPIO _PIN0);
    tick+;
    }
    
    UINT32_t millis (void){返回Tick;}