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

embedded - 嵌入式:SDHC SPI 写入问题

我目前正在使用 MSP430F2618 MCU 和 SanDisk 4GB SDHC 卡的记录器工作。

卡初始化按预期工作,我也可以读取 MBR 和 FAT 表。

问题是我不能在上面写任何数据。我检查了它是否受缺口写保护,但事实并非如此。Windows 7 操作系统读取/写入它没有问题。

不过,我使用了一个名为“HxD”的工具,并且尝试更改某些扇区(在 Windows 下)。当我尝试将内容保存到 SD 卡时,该工具会弹出一个窗口,告诉我“访问被拒绝!”。

然后我回到写入 SD 卡的代码:

问题似乎出在我等待卡状态时:

在这里,我正在等待 X 未定义的“X5”(十六进制值)类型的响应。

但大多数情况下,响应是 0x00(十六进制值),我没有跳出循环。很少有响应为 0xFF(十六进制值)的情况。

我不知道是什么问题。

谁能帮我?谢谢!

0 投票
5 回答
2823 浏览

c - Maximum stack size needed for a C program on MSP430

In a C program that doesn't use recursion, it should be possible in theory to work out the maximum/worst case stack size needed to call a given function, and anything that it calls. Are there any free, open source tools that can do this, either from the source code or compiled ELF files?

Alternatively, is there a way to extract a function's stack frame size from an ELF file, so I can try to work it out manually?

I'm compiling for the MSP430 using MSPGCC 3.2.3 (I know it's an old version, but I have to use it in this case). The stack space to allocate is set in the source code, and should be as small as possible so that the rest of memory can be used for other things. I have read that you need to take account of the stack space used by interrupts, but the system I'm using already takes account of this - I'm trying to work out how much extra space to add on top of that. Also, I've read that function pointers make this difficult. In the few places where function pointers are used here, I know which functions they can call, so could take account of these cases manually if the stack space needed for the called functions and the calling functions was known.

Static analysis seems like a more robust option than stack painting at runtime, but working it out at runtime is an option if there's no good way to do it statically.

Edit:

I found GCC's -fstack-usage flag, which saves the frame size for each function as it is compiled. Unfortunately, MSPGCC doesn't support it. But it could be useful for anyone who is trying to do something similar on a different platform.

0 投票
2 回答
1101 浏览

msp430 - 如何为 TI MSP430 编译 Thingsquare (Contiki-port)

我需要在 868 MHz 的欧洲 ISM 频段上运行我的无线网状网络。我的兴趣落在了Contiki-OS上,而Thingsquare Mist是一个 Contiki 端口,它支持一些德州仪器 868MHz 收发器。

现在,我已经从入门指南成功完成了 Instant Contiki 中的模拟,但是我在编译来自 Thingsquare Mist 的示例代码时遇到了麻烦。

尝试使用来自的固件在模拟中添加节点时

我得到:

尝试编译其中ip64-conf.h缺少的一些示例状态,apps/ip64/并将现有文件重命名为ip64-conf-example.h所述ip64-conf.h文件夹中的文件只会给我很多编译时错误。

显然我在这里做一些根本性的错误,有人能指出我正确的方向吗?

0 投票
1 回答
986 浏览

msp430 - 最小化 Contiki-OS 中的代码

从 Contiki 端口Thingsquare MistEXP430 板上的 MSP430 编译示例代码时,我得到

这个例子也发生了这种情况blink,甚至更多的字节溢出。如何设置优化或删除未使用的组件,以便我可以开始使用基本示例?

0 投票
1 回答
891 浏览

makefile - Thingsquare Mist (Contiki-OS) 中缺少 platform-conf.h

我克隆了Contiki-OS端口Thingsquare 雾来与德州仪器 EXP430 板一起使用。当我Hello World从相应的文件夹运行时

我收到platform-conf.h缺少的错误:

有谁知道怎么写platform-conf.h文件?尝试在其中添加一个空文件../../platform/mist-exp54388可以成功找到该文件,但会产生很多错误。

0 投票
1 回答
1289 浏览

c - msp430g2452 从交换机捕获中断时遇到问题

我正在尝试为 msp430g2452 mcu 编写一些代码。它应该循环使用中断和 switch 语句来打开或关闭 LED 的几种模式。我才刚刚开始学习编码、c 和 python :) 所以我不确定出了什么问题。

据我所知,一切正常,除了我没有捕获 p1.3 上的中断,p1.3 是我的启动板仿真/开发板上的一个按钮。如果我使用 code composer studio 5 进行调试并暂停仿真,然后更改 P1IFG.3 的位并恢复仿真,正确的事件链就会发生。所以在我看来,问题在于捕捉那个开关边缘。

如果有人对这里发生的事情有任何想法,我将非常感激。 有兴趣的人可以使用mcu 数据表。我用来遵循的代码:

这是固定代码

0 投票
1 回答
10068 浏览

master - Msp430 i²c 模块和库

我有一个项目,它有一个 MSP430G2553 主设备和一个三轴数字输出陀螺仪 ITG-3200 分线从属设备。ITG3200 使用 i²c 协议进行通信,所以我一直在 Msp 上检查 i²c 模块的使用情况。作为初学者,我下载了 TI I²c示例,可在http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/msp430_software_landing.page中找到TMP100 温度传感器作为从设备。这是示例代码。

我建立了相同的电路,其中 SDA 和 SCL 上的 2 个 10k 上拉,将从地址更改为 0x69 或 0x68,这是设备用户指南中给出的陀螺仪地址。由于我还没有建立任何监控,我用示波器检查了 SCL 和 SDA 上的脉冲。我没想到会在 SDA 上看到任何东西,但我想知道为什么我什至看不到 SCL 总线上的任何时钟周期。它要么始终处于 3.3V(MSP 内部 vcc)上,要么有时接近 1V(0.80~)。即使我移除陀螺仪、SDA 和 SCL 总线,我在 P1.6 端口上也看不到任何脉冲。有任何想法吗?

另外,如果有人知道这个设备的库,比如 arduino,我真的很想使用它而不是尝试检查所有寄存器和中断。

0 投票
0 回答
1646 浏览

arduino - 来自 ITG3200 陀螺仪的 Arduino I²C 主读卡器

我正在使用将 Arduino 库转换为MSP430库的 Energia库。我将陀螺仪连接到Launchpad并使用所需的上拉电阻构建电路。以下是 Sparkfun 陀螺仪的示例代码:

我将示波器连接到 SDA 和 SCL 总线上以测量结果是否正确。在前 8 个 SCL 周期中,SDA 总线是我所期望的,7 位从地址和 1 位读取。但是对应于来自陀螺仪的 ACK 的第 9 个 SCL 周期应该为低的 SDA 似乎是错误的。陀螺仪永远不会将 SDK 降低到低电平以确认主机。

我最近买了这个产品,所以我认为它没有问题。我猜主人从不释放 SDA 总线来检查 ACK。我在这里想念什么?

0 投票
1 回答
484 浏览

assembly - 有人可以引导我完成这段代码(程序集)吗?

我正在玩一个 MSP430 微控制器,我试图了解如何让不同的物理组件相互通信。在这种情况下,我有代码(来自朋友),它使用 DIP 开关打开 7 段 LED 显示屏的不同段。我正在尝试通读这段代码并了解它是如何工作的,以及哪些寄存器在起作用。

我很难理解代码的各个部分。例如:

我们真的需要这条线:

主要?6搬进去怎么R13样?为什么是它6而不是任何其他数字?我也觉得主要部分可以比现在简化很多。

如果有人可以帮助我完成这段代码?我会很感激的。

0 投票
2 回答
936 浏览

c - 从微控制器发送命令以通过 SPI 显示并接收结果

好的,这个问题可能有点宽泛,因为我真的不知道从哪里开始。我会尽量说清楚。

我有一个带有已知显示驱动程序的手机显示器,我有数据表。该显示器将通过 SPI 与微控制器(msp430g 类型)通信。

发送到显示器的某些命令不会产生响应,但有些会产生响应,响应可能是几个“字节”(9 位数据)。

我首先认为我应该有一个 fifo 缓冲区,微控制器向其提供命令,以便微控制器可以在命令被移出时执行其他操作。但是我觉得在有响应的情况下,命令会与可能的响应“断开”。我不知道如何处理。

我的第二个想法是将所有命令作为函数来执行相关命令所需的 (write->[read*x])。但这感觉就像我会让微型站在那里等待 SPI 接口的方式。

在这种情况下,“正常”的事情是什么?我想有很多答案,但我确信已经编写了很多代码,它们使用某些接口与某些设备进行通信,但在接口“工作”时执行其他操作。

如果对我要做什么有任何含糊之处,请告诉我,我会尽力澄清。