问题标签 [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 投票
5 回答
1446 浏览

c - MSP 430 显示错误值

我正在开发压力测量装置。我使用过 MSP430F133 芯片并使用 IAR 嵌入式工作台。它以 3 个不同的单位显示压力。

我正在采集 32 个样本并取平均值。P5上的单位选择,根据单位选择的输出值计算并显示在LCD上。

现在一个单元“IN WC”显示输入的二进制平均值,仅用于分析。

问题:默认单位(MM WC)值显示正确,但在测试情况下,当压力释放时,它会下降并且 LCD 读数如下

如您所见,显示了一个错误的值,我无法找出原因。

0 投票
5 回答
808 浏览

mono - 嵌入式单声道

我是一名 C# 开发人员,我对 MSP430 等芯片的嵌入式开发很感兴趣。请推荐一些工具和教程。Mono 框架非常强大且可定制,mono 具体示例会更有帮助。

0 投票
5 回答
1519 浏览

c - C 语言:#DEFINed 值弄乱了 8 位乘法。为什么?

我有以下 C 代码:

如果我编译它(使用 msp430 平台编译器,对于名为contiki的小型嵌入式操作系统),结果为 0,而我预期为 191。(uint8_t 被 typedef 为无符号字符)

如果我将其更改为:

它运行正常并打印 191。

在 Ubuntu 机器上使用 gcc 编译这个“通常”的简单版本会在两种情况下打印正确的值。

我不确定这是为什么。我可以通过预先将 DEFINed 值分配给变量来规避它,但我宁愿不这样做。

有人知道这是为什么吗?也许有一个链接到有关此的更多信息?

0 投票
5 回答
2918 浏览

embedded - 为 msp430 编写嵌入式应用程序?

我希望能够拥有一个用于高端 MSP430 的基本操作系统和基本文件系统,可能是MSP430F5438。我知道我可以使用诸如FreeRTOSIAR PowerPacMicrium之类的东西来命名操作系统和文件系统的一些选项。但是,我希望以后也能够加载小小程序或线程,理想情况下从文件系统中获取这些额外的代码。我的目标是不必重新刷新整个设备来更改或实现嵌入式设备上的功能。不知道去哪里实现这个功能,或者我是否需要切换到另一个处理器,比如 ARM。

0 投票
3 回答
2228 浏览

assembly - 这些说明有什么作用

我正在为 msp430 指令集开发一个模拟器。gnu 汇编器将允许您对如下指令进行编码:

我的猜测是 rrc &0x0200 将从地址 0x0200 获取执行旋转然后将答案写回地址 0x0200,对吗?但是 rra #4 会做什么呢?我假设源是立即的 4 但操作后有目的地吗?add #4,#2 组装成您所期望的(如 2b10,source = r2,ad = 1b0,dest = r3),但 binutils 反汇编程序不知道如何处理该指令。

这些指令有效吗?

0 投票
1 回答
10259 浏览

c - FreeRTOS 配置TICK_RATE_HZ

我正在使用带有 FreeRTOS 5.4 版的 MSP430f5438。

我有一个有趣的问题,我无法弄清楚。

基本上,当我将 configTICK_RATE_HZ 设置为不同的值时,LED 会更快或更慢地闪烁;它应该保持不变。我将 configTICK_RATE_HZ 设置得越高,它就会闪烁得越慢,而当我将 TICK_RATE 设置得越低时,它就会越快闪烁。

vTaskDelayUntil(&xLastFlashTime, xFlashRate); 这样无论 configTICK_RATE_HZ 是什么,LED 都应该每秒闪烁一次。我一步一步检查了 xFlashRate 以确保。它总是 = 到 configTICK_RATE_HZ。代码:

当我将 configtick_rate_hz 设置为 1000 时,LED 闪烁的周期大于 1 秒,当我将滴答率设置为小于 ~200 时,LED 闪烁的周期远小于 1 秒

configTICK_RATE_HZ 不应影响 LED 闪烁时间。

我意识到需要更多信息,并且会随时提供所需的任何代码片段来提供帮助。

0 投票
1 回答
1654 浏览

rtos - 使用 MSP430f5438 时的 FreeRTOS 睡眠模式危害

我写了一个这里显示的空闲钩子

这应该会导致 LED 关闭,并且 MSP430 在无事可做时进入睡眠状态。我在某些任务期间打开 LED。

我还确保在退出任何可能唤醒 MCU 的中断时修改 SR 中的睡眠模式位(portext.s43 中的调度程序滴答 isr 除外。iar 中的宏是

然而,似乎让 MCU 进入睡眠状态会导致一些异常行为。LED 始终保持打开状态,尽管当我确定它时,当我通过其中一个中断(UART)唤醒 mcu 时,它会关闭几个指令周期,然后重新打开。如果我注释掉 LPM3 指令,事情就会按计划进行。LED 灯大部分时间保持关闭状态,仅在任务运行时亮起。

我正在使用 MSP4f305438

有任何想法吗?

0 投票
7 回答
1169 浏览

c - 在c中的“正常”变量之前声明数组?

我们目前正在为 msp430 MCU 开发应用程序,并且遇到了一些奇怪的问题。我们发现,在声明“正常”变量之后声明具有范围的数组有时会导致似乎未定义的行为。像这样:

foo 作为第二个变量传递一个指针,该指针有时不指向arr数组。我们通过单步执行程序来验证这一点,发现主作用域中的 arr array-as-a-pointer 变量的值与 foo 作用域中的 b 指针变量的值不同。不,这不是真正可复制的,我们只是偶尔观察到这种行为。

这甚至在执行 foo 函数的单行之前就可以观察到,传递的指针参数 (b) 根本没有指向 arr 所在的地址。

更改示例似乎可以解决问题,如下所示:

是否有人对我们为什么会遇到这种行为有任何意见或提示?或者类似的经历?MSP430 编程指南指定代码应符合 ANSI C89 规范。所以我想知道它是否说必须在非数组变量之前声明数组?

对此的任何意见将不胜感激。


更新

@Adam Shiemke 和 tomlogic:

我想知道 C89 对在声明中初始化值的不同方式有什么规定。你是否允许写类似的东西:

如果是这样,那又如何:

这是允许的吗?我假设以下内容一定是非法的 C89:

提前致谢。


更新 2 问题已解决。基本上,我们在调用函数(foo)之前和声明变量之后禁用中断。我们可以在一个简单的示例中重现该问题,解决方案似乎是在禁用中断调用之后添加一个 _NOP() 语句。

如果有人有兴趣,我可以发布重现问题的完整示例,以及修复?

感谢您对此的所有意见。

0 投票
3 回答
7216 浏览

c - TI MSP430 中断源

我知道在使用 MSP430F2619 和 TI 的 CCSv4 时,我可以获得多个中断来使用相同的中断处理程序,代码如下所示:

我的问题是,当我发现自己被打断时,有没有办法弄清楚是哪一个打断让我来到了这里?

0 投票
2 回答
13208 浏览

memory-address - 如何正确计算地址空间?

以下是我在计算机工程课程中的最后一次测试中给出的问题示例。有人介意向我解释如何获取每个的开始/结束地址吗?我已经在底部列出了正确的答案...

MSP430F2410 器件的地址空间为 64 KB(基本的 MSP430 架构)。如果我们知道以下内容,请填写下表。地址空间的前 16 个字节(从地址 0x0000 开始)为特殊功能寄存器(IE1、IE2、IFG1、IFG2 等)保留,接下来的 240 个字节为 8 位外围设备保留,下一个256 字节为 16 位外围设备保留。RAM 内存容量为 2 KB,从地址 0x1100 开始。地址空间的顶部是为代码和中断向量表保留的 56KB 闪存。