主题中讨论的其他器件: BOOSTXL-SHARP128
您好、E2E 专家、
你好。
我正在使用连接 BOOSTXL-SHARP128 LCD 的 MSP-EXP430FR5969 LaunchPad。 我引入一个模拟波形(ECG、无论其值是多少)、通过板载 A/D 转换器上的 ADC12运行该波形、然后在 SHARP128 LCD 上显示波形。 模拟 ECG 波形以256Hz 的频率进行采样、每4个样本显示一次、以便在128像素宽的显示屏上显示大约2秒的波形。 我将保存30秒的数据(7680值)到 FRAM 中、并通过 JSON 通信发送到外部器件。 我还在控制一些连接到 MSP430上特定输出端口的 LED 灯。 首先、我在屏幕上展示了 Loyola University 标识。 在输入并显示波形时、我还将计算波形的心率并将其显示在屏幕上。
这意味着我将运行多个 TI 代码片段、所有这些代码片段都整合到一个可执行文件中:
- GPIO 代码、用于运行 LED 灯;
- 用于运行模数转换器的 ADC12代码;
- GRLIB 代码,用于显示徽标并将文本放在屏幕上;
- 将256Hz 采样率计时到 ADC 的计时器代码;
- JSON 通信代码、用于处理与外部器件的 JSON 通信。
我已将我的所有"全局"变量移入 FRAM、以尝试减少使用的 RAM 量。 我还尝试增加堆大小(我目前为384)和堆栈大小(我目前为180)。 不过、不确定它们是否一定会有所帮助。 当所有内容都在代码中时、该编译告诉我我我正在使用38596 FRAM 和1830 RAM。
出于传统目的、显示屏使用"上下颠倒"、因此您会注意到显示屏的"顶部"实际上是底部。 也就是说、"顶部"是最靠近带状连接器的边缘。 故事很长、但这就是它的样子。 因此原点位于"右上"显示屏的顶部、左角-和显示屏的底部、右角、如图所示。
我已经附加了两张 JPEG 图片。
开始 Waveform.jpg 会显示首次显示的波形。 请注意、波形的"基线"大约是屏幕"向上"方向的1/4 -略高于屏幕"右侧"的"GND"标签。 随着时间的推移、波形往往会在屏幕上"向上"漂移、即使显示值没有向上漂移。 随着时间的推移、波形开始看起来与后续 Waveform.jpg 图片中的波形类似。 大多数显示屏使用 GrLineDrawV 函 数从之前的 ADC 输出值到当前值绘制一条垂直线、以获得连续波形的外观。 我已经使用调试器来检查实际发送到 GrLineDrawV 函数以显示在屏幕上的 X 和 Y 值、对于两个波形实例、它们处于同一范围内。 但出于某种原因、GRLIB 函数会在屏幕上"向上"显示显示的值(增加 Y)。
真正有趣的是、如果我只是注释掉用于初始化 JSON 组件的函数调用、代码大小会降至36154 RAM 和1738 RAM。 此外、波形看起来不会"在屏幕上走动"。 我不确定根本不会发生这种情况、但"步行"肯定会延迟。 在构建中使用 JSON 代码时、"步行"会在前5分钟内发生。 如果没有 JSON 代码、我已经运行了20分钟、波形仅略有漂移。 它仍在上升、但速度显著降低。
我唯一能弄清楚的是、这些行上有某种堆或堆栈溢出或者其他一些最终会影响 GRLIB 代码或显示缓冲区或其他内容的东西。 增加堆和堆栈大小似乎有所帮助、但它不能解决问题。
如果有任何关于尝试的想法、我们将不胜感激! 堆和堆栈的大小有多大? 其他什么可能导致这种情况发生? 我不是说我的代码中没有任何可能导致这种情况的错误、但我肯定不知道这会是什么、我真的不知道如何解决问题。
BTW -在我将"全局"变量移入 FRAM 之前、如果我在其中包含 JSON 初始化代码、则波形根本不会显示。 代码似乎被调用-它实际上没有显示任何内容。 取出指示到所显示波形的 JSON 初始化代码。 同样、将所有"全局变量"移动到 FRAM 也会导致显示波形、即使其中包含 JSON 代码也是如此。 因此、这似乎与代码的整体大小有关。
提前感谢您。
此致、
CSC