我正在尝试获得一些帮助,因为我正在将其他人的代码(使用PROGMEM)移动到我的闪存......
访问http://forum.arduino.cc/index.php?topic=218899.0
所以,这是我的问题: 这是原始代码段:
prog_uint8_t Image[ImageColumns][LEDEights] PROGMEM = {{
B11111111, B11111111, B11111111, B11111111, B11111111, B11111111, B11111111, B11111111,
B11111111 }
, {
B11111111, B10110111, B10111001, B11111111, B11111111, B11111111, B11111111, B11111111, B11111111 }};
这是我修改后的代码:
const int Image[ImageColumns][LEDEights] = {};
我尝试使用其他笔记本电脑编译它,然后它实际上很有用,但我注意到并且了解到程序不可能用于外出。我的修订版是否正确?>?
我不能完全说整个代码都能正常工作,因为:(我知道这与AVR-GCC bla bla bla progmem有关,对吗?我刚刚读过它只是为了一分钟。)。
代码: prog_uint8_t imageEights = pgm_read_byte(&(Image [column] [8]));
如果这不起作用,那么如何从SRAM中读取字节呢?
答案 0 :(得分:0)
你的问题不是很清楚。如果您只是想使用PROGMEM切换到具有现有代码的闪存,那么您所拥有的内容就是关闭 - ,除非您将该var初始化为空数组。
你是正确的,你不能在运行时更改PROGMEM。
这有效:
int image[][9]= {
{
B11111111,
B11111111,
B11111111,
B11111111,
B11111111,
B11111111,
B11111111,
B11111111,
B11111111 }
,
{
B11111111,
B10110111,
B10111001,
B11111111,
B11111111,
B11111111,
B11111111,
B11111111,
B11111111 }
};