我试图将一系列LED图案存储到EEPROM中,以便稍后写入外部闪存模块。下面是包含模式的头文件。
#ifndef DefaultPatterns_h
#define DefaultPatterns_h
#define DEFAULT_SIZE 147
const byte defaultData[DEFAULT_SIZE] PROGMEM ={225,112,111,};
#define RAINBOWPIXEL_SIZE 972
const byte rainbowpixelData[RAINBOWPIXEL_SIZE] PROGMEM ={255,0,0,0,0,0,0};
#endif
我已经从上述模式中删除了一些字节,因为它们对于这篇文章来说太长了。
以下是我的ESP8266 EEPROM示例库中的草图,我试图将其作为起点。我已经评论了一些我尝试过的东西。请记住,模式位于头文件中。
#include "EEPROM.h"
#include "defaultPatterns.h"
int addr = 0;// address of EEPROM to write to
void setup() {
EEPROM.begin(512);
}
void loop() {
Serial.begin(9600);
//const byte defaultData[] = PROGMEM(defaultData,DEFAULT_SIZE );
// write the value to the appropriate byte of the EEPROM.
// these values will remain there when the board is
// turned off.
// EEPROM.write(addr, val);
//EEPROM.write(addr,byte (defaultData)) sizeof(defaultData));
//EEPROM.write ( 0, (byte *)defaultData), sizeof(defaultData)));
const char pattern = defaultData ;
EEPROM.write(addr, pattern);
// advance to the next address. There are 512 bytes in
// the EEPROM, so go back to 0 when we hit 512.
// save all changes to the flash.
addr = addr + 1;
if (addr == 512) {
addr = 0;
EEPROM.commit();
}
delay(100);
}
我尝试过各种不同的方法,但我遇到了错误和语法错误。
我自己试图这样做,但我会永远这样做。任何帮助都会很棒。
我正在尝试构建一个LED控制器,它可以在头文件中以图案的形式存储大量图案,并在按下按钮时通过WS2812B LED条播放它们。我还有很长的路要走。
为什么要使用闪光灯?太空,我需要很多空间。我知道闪光灯磨损得更快,但我可以换几块钱。
答案 0 :(得分:0)
查看'john123456smith' -replace "[^0-9]" , ''
123456
的定义 - 它只写一个字节。您需要使用EEPROM.write()
循环或for
。