问题标签 [progmem]
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.
c - “'char'之前的预期'=',',',';','asm'或'__attribute__'”是什么意思?AVR
'char' 之前应有 '='、','、';'、'asm' 或 '__ attribute__'
为什么我两次收到此错误消息?
c - 将 char[] 与另一个 char[] 连接
我正在使用 Arduino IDE 完成 Sketch 并能够在 UNO 上运行它,我必须使用 C char[]
。这对我来说并不容易,不久前我已经问过一些关于这个的问题。
char[]
我需要通过连接较小的部分来创建更长的时间。到目前为止,我已经能够通过以下方式做到这一点:
但是在我的代码中,我有很多静态字符串,它们占用了大部分 2K RAM 内存,所以我想使用 PROGMEM 所以我尝试了以下方法:
在串行监视器上打印时,第一个片段可以正常工作,而第二个则不能。
我一直在尝试谷歌它,但无济于事。
你们的任何进一步的教育将不胜感激。提前致谢!
arduino - MacOS High Sierra Arduino Mac 1.8.5 上的 PROGMEM 错误
我正在使用在 MacOS High Sierra 上运行的 MacBook Pro。
每当我尝试上传包含 PROGMEM 的 Arduino 代码以将原始 HTML 字符串(Arduino Mac 1.8.5)存储到我的 ESP 板时,就会出现问题。我使用的开发板是 ESP8266 LoLin V3。
每当我在 Web 浏览器上访问 ESP 的 IP 地址时,串行监视器中就会引发异常 (3) 。我还尝试使用适用于 Windows 的Arduino 的Windows 版本(1.8.5)上传相同的确切代码,并且网页可以完美显示。
代码:
引发的错误如下:
这里的任何人都可以使用 Mac 尝试将代码上传到您的 ESP8266 上,看看您是否遇到与我相同的错误?任何对 PROGMEM 和 ESP8266 有深入了解的人都可以帮我解决这个问题吗?
arrays - 从程序中读取字节
我正在尝试编写一个简单的程序(作为更复杂程序的前导),它将字节数组存储到 progmem,然后读取并打印该数组。我已经浏览了一百万个在线博客/论坛帖子,并认为我做的一切都很好,但我仍然得到完全的胡言乱语作为输出。
这是我的代码,任何帮助将不胜感激!
如果我使用memcpy
,我会得到输出:
如果我buffer = ....
在 for 循环中使用语句(而不是memcpy
):
c - 将数据存储在程序存储器(PROGMEM)中并通过usb串行通信发送到puTTY屏幕
我正在尝试将数据存储在 PROGMEM 中并稍后检索它。然后通过 USB 串行通讯将它们发送到屏幕。
它只是行不通。任何提示或替代方案?干杯。
c++ - 一种避免 pgm_read 访问闪存的方法(avr 微控制器)
当您想访问闪存时,您必须编写如下内容:
我不喜欢这种访问内存的方式。我想以相同的方式访问每种类型的内存(RAM、闪存、EEPROM……)。我想写这样一个更好的东西:
我天真地尝试像这样实现:
并以这种方式进行测试:
它可以编译,但 x 中的数字存储不正确。
我该如何写这门课?
谢谢你。
c++ - 将内容从 PROGMEM 复制到 const char []
将字符串形式复制到 的最佳方法是PROGMEM
什么const char[]
?
虽然这样的事情可能会起作用:
也许有一个使用内部initializer_list
lambda 返回的对象的解决方案pgm_read_byte
,类似于http://www.cplusplus.com/forum/beginner/213574/?
c++ - Char 数组的问题,如何正确构造和显示它们
对于我正在共同设计的产品,我想在 LCD 屏幕上显示位图图标。受本教程的启发,我创建了一个单独的 C 文件,其中包含我要显示的图标的字节数组。
当我尝试直接显示图标时,它似乎可以工作。但是当我试图间接地做这件事时——这最终会变得很重要——它失败了。
真正让我感到困惑和我想要理解的是;当我将垃圾图标(CHAR ARRAY)的数组打印到串行监视器并将其与字节数组进行比较时,假设它们表示它们正确匹配。但是当我对正确显示的图像(ICON ARRAY)执行相同操作时,我打印到串行监视器的内容与它显示的字节数组不匹配,我打印的信息甚至不一致......这怎么可能?!
我已经为此苦恼了一个星期,所以任何帮助都将不胜感激。
主文件:
位图的单独文件:
左边的图像是 CHAR ARRAY,右边的图像是 ICON ARRAY。
c++ - 在 PROGMEM 中添加更多数据会中断 Arduino Mega 2560 上的 SPI 传输
我正在做一个涉及 Arduino Mega (2560) 和 Waveshare ePaper 显示器的小项目(或者我认为是这样)。
我已经让它与库(epd7in5)一起正常工作,并且我已经将两个图像添加到PROGMEM
. 但是,一旦我添加了第三张图像(因此在 中添加了第三个条目PROGMEM
),ePaper 屏幕就不再启动了。在库中添加一些调试表明代码卡在特定的SPI.transfer()
.
编辑:理论 当闪存中有太多数据时,SPI 是否可能不兼容?我读过它,64kb 是最大值。我在两张图片上略高于这一点,但在三张图片上则明显高于这一点。这可能会破坏SPI吗?如果是这样:我可以修复它吗?
我添加了下面的代码和库中SPI.transfer()
失败的特定部分。
主文件
删除与 dummy3 相关的代码可确保 dummy3 数组无法编译。仅使用 dummy1 和 dummy2 一切正常。添加 dummy3 并且程序卡在epd.Init()
.
图像数据.cpp
我已经删除了实际的图像数据,因为它很多。两个图像产生的总闪存为 67326 字节(约占 2560 总闪存的 26%)。三个图像的总闪存为 98052 字节(约占 2560 总闪存的 38%)。头文件只包含声明。
epd7in5.cpp
我已经添加了调试功能。SendData 也包括在内并使用调试。
epdif.cpp
这是不继续的 SPI 传输部分。
该项目的串口打印如下...
因此,一旦它运行SpiTransfer
,代码就会停止工作。似乎它处于无限循环中,SPI.transfer();
但我不知道这将如何发生。我看不出怎么PROGMEM
会干扰传输,我还有足够的闪存...
有什么办法可以解决这个问题?我需要更改 SPI 中的问题吗?还是我需要以不同的方式存储我的数据PROGMEM
?我有点不知所措。
提前感谢您的帮助,非常感谢。
c - 使用带有指向 int 数组的指针的 PROGMEM 时出现问题
我的 arduino nano 驱动一个 LED 矩阵。一切工作正常。但是我的“大纲路径”对于 SRAM 来说太大了,所以我尝试将它放入 PROGMEM。现在从这个程序数组中读取值会导致完全错误的整数。我究竟做错了什么?
谢谢你的帮助!!
再见安德烈
}