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.

[参考译文] MSP430FR6047:TI-RTOS

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1385541/msp430fr6047-ti-rtos

器件型号:MSP430FR6047
主题中讨论的其他器件:EVM430-FR6047、、 MSP430WARE

工具与软件:

您好!

我已经成功安装了 TI-RTOS v2.20并在 EVM430-FR6047上使用、它看起来正常、但是我不知道如何使用不同的驱动器。

我已经更改了 tirtos.mak 中的路径、并将 MSP430FR6047添加到 了 MSP430DEVLIST 中、它编译正常、但库文件移入  

/home/pen/ti/tirtos_msp43x_2_20_00_06/products/msp430_driverlib_2_70_01_01a/driverlib/MSP430F5xx_6xx/ccs

无需续订、且 MSP430FR6047.lib 已消失。 我遇到了什么问题吗?如何使用 GPIO?

此致 Peter Nielsen

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

    您好!

    在该文件位置是否有一个名为"MSP430F R 5xx_6xx"而不是"MSP430F5xx_6xx"

    此致、

    Cash Hao

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

    您好、Cash Hao、

    感谢您的回复。

    是的、有一个名为的文件夹  

    ~/ti/tirtos_msp43x_2_20_00_06/products/msp430_driverlib_2_70_01_01a/driverlib/MSP430FR5xx_6xx/ccs

    很抱歉、我在原始帖子中复制了错误的路径。 此文件夹也不会更新、仅包含22016年的3个基础库、不包含 MSP430FR6047.lib

    "make all"的输出与 MSP430FR6047具有一些参考、因此出现了一些情况。

    此致 Peter Nielsen

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

    您好!

    好的、抱歉我不熟悉 RTOS。  

    我在本文档的第 8.2章中搜索过、重新为 TI-RTOS 及其驱动程序编译 MSPWare 的 driverlib。 将 其与在 MSP430DEVLIST 中添加器件名称之后。 您还必须 重新构建 TI-RTOS 驱动程序。 您是否检查了您侧边的这一步?  

    https://www.ti.com/lit/ug/spruhd4m/spruhd4m.pdf

    此致、
    Cash Hao

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

    您好、Cash Hao、

    是的、我实际上会按照指南的分步操作、查看示例项目的 make 文件。

    在查看 msp430ware_3_80_14_01的示例 时、我想出了另一种编译项目的方法、以便无需该库。 我只需将整个 driverlib 源文件夹复制到我的项目中、就可以起作用。

    然而、当我执行与"gpiointerrupt"示例类似的操作时、它将编译并运行、使 LED 闪烁、但按下导致中断的按钮将停止该任务、并且看起来代码仍在 RTOS 内部运行、但速度很慢。 你能解释一下发生了什么事吗?

    请注意,我会在办公室3周内,可能不会回复。

    此致 Peter Nielsen

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

    您好!

    明白。  

    代码是否运行到您的中断例程中。 GPIO 中断函数是否正常工作? 唯一的影响是运行中断例程后、LED 闪烁失败。  

    此致、

    Cash Hao

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

    您好、Cash Hao、

    如果我在 RTOS cfg 文件中为中断定义了一个空矢量并激活该按钮、则内核将在 while (1)循环中结束、因此我可以肯定中断会正常工作。 当我使用调试器时、我可以在 cfg 文件中看到要设置的正确矢量值。

    var hwiParams =新 halHwi。 Params();

    /*将 GPIO 端口号添加为 Hwi 参数*/
    hwiParams.arg = 5;
    program.global.hwi0 = halHwi.create (36、"&GPIO_hwiIntFxn"、hwiParams);

    使用该引脚时、控制 LED 的任务会停止、当调试器暂停时、它会中断 RTOS 中的不同位置。 永远不会调用回调。

    我已经附加了此代码、它松散地基于空的 RTOS 工程和 TI-RTOS 示例 empty_min 和 gpiointerrupt。

    此致 Peter Nielsen

    e2e.ti.com/.../Home-rtos-240713.zip

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

    您好!

    好的、明白了。 我先检查代码、看看是否能在这里找到一些内容。  

    此致、

    Cash Hao

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

    您好、Cash Hao、

    我希望你度过一个美好的周末。 您是否检查过代码或找到原因?

    此致 Peter

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

    您好!

    很高兴听到您的回复。  

    我在代码中找不到 mu 线索。 软件看起来非常清晰和简单。 只有一个问题、在哪里定义 GPIO 中断例程? 您 不需要将其添加到代码中?

    此致、

    Cash Hao

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

    您好!

    感谢您的回答。

    我不定义 GPIO 中断例程、它是从 RTOS 配置文件"hello.cfg"完成的、但我不确定语法。

    hwiParams.arg = 2;
    Program.global.hwi0 = halHwi.create(36, "&GPIO_hwiIntFxn", hwiParams);

    我已略微更改了代码、因为它看起来像是 arg 就是端口号。 现在它适用于端口2上的上/下行、但如何在端口3上添加右/下行?

    此致 Peter  

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

    您好!

    不知道如何使用 hwiParams 来更改端口号。 但是、您仍然可以写入 P3OUT/P3DIR 寄存器来控制引脚、对吧?

    此致、

    Cash Hao

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

    您好!

    当然、我可以直接写入该引脚。 但是、我希望中断函数的工作原理是 这样的  

    GPIO_setCallback (Board_button3、gpioButtonFxn3);
    GPIO_enableInt (Board_button3);

    但是、当我尝试 像这样添加 RTOS cfg 文件中的配置时  

    hwiParams.arg = 2;
    program.global.hwi0 = halHwi.create (36、"&GPIO_hwiIntFxn"、hwiParams);

    hwiParams.arg = 3;
    program.global.hwi0 = halHwi.create (33、"&GPIO_hwiIntFxn"、hwiParams);

    代码停止工作。

    此致 Peter Nielsen

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

    尊敬的 Peter:

    我可以在第 5.2.8章适用于 MSP43x 器件的 TI-RTOS 驱动程序 Hwi 中找到一些内容。 其中包含一个如何配置 I2C 中断例程的演示。 您可以看一看并进行检查。  

    https://www.ti.com/lit/ug/spruhd4m/spruhd4m.pdf

    此致、

    Cash Hao

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

    您好、Cash Hao、

    非常感谢、我想知道出了什么问题。

    配置结构时的示例  

    GPIO_PinConfig gpioPinConfigs[] = {
    /* Input pins */
    GPIOMSP430_P2_5 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING,
    GPIOMSP430_P2_6 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING,
    GPIOMSP430_P3_0 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING,
    GPIOMSP430_P3_2 | GPIO_CFG_IN_PU | GPIO_CFG_IN_INT_RISING,
    
    /* Output pins */
    GPIOMSP430_P1_0 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
    GPIOMSP430_P1_1 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
    GPIOMSP430_P1_4 | GPIO_CFG_OUT_STD | GPIO_CFG_OUT_STR_HIGH | GPIO_CFG_OUT_LOW,
    };

    并且中断是必需的、它们也必须被添加到 CallbackFxn 结构中

    GPIO_CallbackFxn gpioCallbackFunctions[] = {
    NULL, /* MSP_EXP430FR6989_S1 */
    NULL, /* MSP_EXP430FR6989_S2 */
    NULL, /* MSP_EXP430FR6989_S1 */
    NULL /* MSP_EXP430FR6989_S2 */
    };

    以及上面的 cfg 文件中。 如果有人感兴趣、我附上了一个功能示例。

    此致 Peter Nielsen

    e2e.ti.com/.../Home-rtos-240807.zip

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

    太棒了、太棒了!