问题标签 [msp430]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1811 浏览

io - MSP430 - 如何读取接地的 I/O 引脚?

我有一个 MSP430 G2452 连接了几个拨动开关(阅读:NOT 按钮)。我知道如何设置中断和去抖动按钮,但是我很难设置我的端口,所以我可以采样哪些开关是关闭/打开的。

我希望能够读取 P1IN(带屏蔽)以找出哪些开关是关闭/打开的,哪些是打开/关闭的。开关连接到 GND,我将它们连接的引脚拉高,所以当开关闭合/打开时,它连接的引脚应该被拉低。但 P1IN 似乎没有改变。

我可以设置一个在引脚接地时触发的中断,但我只想对引脚进行采样,而不是使用中断。如何设置我的端口引脚,以便我可以使用 PxIN 读取它们的状态?

(头文件定义:)

0 投票
1 回答
856 浏览

msp430 - 如何让 msp430 休眠 12 秒?

让 MSP430 休眠 10 秒的最佳方法是什么。速度不如低功耗重要。

0 投票
2 回答
3313 浏览

debugging - UART 代码端口后的 TI MSP430 中断问题

我将 MSP430F2013 处理器用于没有 UART 的应用程序。我需要一个 UART,因此我使用了 TI 的示例代码“msp430x20x3_ta_uart2400.c”来模拟一个使用 Timer 模块的代码。这一切都很好(使用 IAR Embedded Workbench 编译),使用 PuTTY 将字符传输到开发板并使用环回将它们回显到终端对其进行了测试。

这是一个降低风险的练习,现在我已经将该代码移植到我的应用程序的状态机中。完成此操作后,我遇到了有关定时器中断和低功耗睡眠模式的问题。这是我进入低功耗(睡眠)模式的代码片段:

我在调试器 (C-Spy) 上看到的是,有时它会bis_SR_register()在第一次进入时执行该行,然后转到if语句,即忽略我已要求它进入睡眠状态的事实。在其他情况下,当它应该进入睡眠状态时,ISR 会正确触发并最终将我带回if语句以继续程序执行(正如我所期望的那样)。但是,如果我尝试跳到下一条语句,应用程序会在第一行冻结,即我无法前进。

我想不出与我正在做的 TI 示例在功能上有何不同,所以我认为我的问题一定与我如何移植它有关。例如,我的 Timer ISR 和我在此处发布的代码位于不同的编译单元中 - 这种决定会对事情产生任何影响吗?我知道我的问题可能有点含糊,但不幸的是我不能发布我的所有代码,所以我正在寻找具有 MSP 经验的人,他们可能能够提出一些值得关注的事情或一些潜在的陷阱我可能陷入了。

0 投票
1 回答
1740 浏览

msp430 - CC1120 和 STM32

我目前正在使用TrxEB基于msp430RF module基于CC1120.

我想用STM32微处理器代替我现在的msp430.

是否可以将MCUin更改Smart RfCC1120 SPI connection. 如果不是,为什么不可能?

0 投票
3 回答
523 浏览

c++ - 从 C 编译器更改为 C++ 编译器会导致 MSP430 固件的编译器错误

我正在尝试使用新编译器(C++ 编译器,在 Visual Studio 下使用 VisualGDB)为德州仪器 MSP430 微控制器编译一个经过验证的真实固件。

此固件的所有先前版本均使用 C 编译器编译,零错误和零警告。从 C 编译器到 C++ 编译器的更改一定是我的问题的原因。(用 C 编译器编译的代码已经运行了五年没有问题。)

鉴于此代码段:

我收到此错误:

错误:“WDTCTL”未命名类型 c:\msptest\LedBlink\LedBlink.cpp

WDTCLT 在 msp430x14x.h 中声明。

有人可以指出我正确的方向吗?

0 投票
1 回答
1108 浏览

c - 减少 While 循环中的时钟周期计数以实现粒度

我有一个while用 C 语言为 MSP430 处理器实现的循环,目前看起来像这样:

我将此循环用于校准目的,我认为它的上下文对我的问题不太重要。我计算出循环的每次迭代,包括检查TACCL0 & CCIE需要 11 个时钟周期。出于粒度的目的,我真的希望这个数字尽可能低,如果可能的话以编程方式。我可能是一个彻头彻尾的白痴,但我想不出减少循环周期数的方法,所以任何建议都将不胜感激。我需要sw_loop_count价值,一种或另一种方式。

0 投票
2 回答
4543 浏览

c - 对 MSP430 微控制器的 printf 支持

我正在使用不同的 C 编译器为德州仪器 (TI) MSP430 微控制器升级经过全面测试的 C 程序,从 Quadravox、AQ430 开发工具更改为 VisualGDB C 编译器。

该程序使用 VisualGDB 以零错误和零警告编译。中断服务程序、定时器、UART 控制等等似乎都在工作。但是,sprintf 的某些用途不起作用。例如:

这将返回:break: %3.1f msec

这是预期的:break: 12.5 msec

我了解到以下内容(来自维基百科):

编译器选项 --printf_support=[full | 最小 | nofloat] 允许您使用更小、功能有限的 printf/sprintf 变体,并在构建时做出选择。

有效值为:

full:支持所有格式说明符。这是默认设置。

nofloat:不支持打印浮点值。支持除 %f、%g、%G、%e 和 %E 之外的所有格式说明符。

最小:支持打印没有宽度或精度标志的整数、字符或字符串值。具体来说,仅支持 %%、%d、%o、%c、%s 和 %x 格式说明符

我需要对 printf 的全面支持。我知道我的产品上的 MSP430 将支持这一点,因为这个 C 程序已经使用了多年。

我的问题是我无法弄清楚 1)VisualGDB 是否有办法将 printf 支持设置为完全和 2)如果有,在哪里设置它。

任何和所有的评论和答案将不胜感激。

0 投票
3 回答
179 浏览

c - 对用户定义的函数类型转换错误生成编译器警告

我想知道,如果可能的话,如何根据函数的返回值的类型转换如何对应于传递的参数之一来生成编译器警告。在我的示例中,如果函数调用的类型转换为小于“Bytes”参数定义的任何值,我想生成编译器警告。这在使用 MSP430 的 IAR 的 C 程序中使用

例如:

这是上述功能:

编辑:我也考虑过返回一个空指针,但这意味着我需要一个静态变量。我不想这样做

0 投票
3 回答
25425 浏览

assembly - MSP430 组装说明

我试图了解这些指令对 MSP 430 处理器的作用:

我找不到太多解释汇编指令的东西,并且很想知道这些指令的作用以及每条指令后存储在 r5 寄存器中的内容。有人可以解释一下吗?

0 投票
2 回答
4344 浏览

c - 使用 Code Composer 5.2.1 打开现有项目

我正在评估使用 TI Code Composer 来支持 TI MSP430 微控制器的 C 程序。

但是,我无法弄清楚如何打开上周我一直在处理的项目文件,并取得了巨大的成功。

似乎没有打开现有项目的菜单项。同样,似乎没有可供选择的近期项目列表。菜单选项“切换工作场所”给了我一些选择,但我最终得到的只是一个空项目。TI 关于“Workplace”的文档对我来说不是很清楚,而且简单地打开现有项目文件的能力对我来说似乎最神秘。

我怎样才能打开一个项目并重新开始工作?

Code Composer 中的 ccsproject、cproject 和项目文件有什么区别?

谢谢!