我正在尝试使用 PROGMEM 属性将大型像素阵列移动到闪存
#include <FastLED.h>
#define ROWS 10
#define COLS 10
const CRGB crab[ROWS][COLS] PROGMEM =
{
CRGB::Red, CRGB::Blue, CRGB::Red, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Red, CRGB::Blue, CRGB::Red,
CRGB::Red, CRGB::Red, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Red, CRGB::Red,
CRGB::Red, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Blue, CRGB::Red,
CRGB::Red, CRGB::Blue, CRGB::DarkGrey, CRGB::DarkGrey, CRGB::Blue, CRGB::Blue, CRGB::DarkGrey, CRGB::DarkGrey, CRGB::Blue, CRGB::Red,
CRGB::Red, CRGB::Blue, CRGB::DarkGrey, CRGB::Black, CRGB::Blue, CRGB::Blue, CRGB::DarkGrey, CRGB::Black, CRGB::Blue, CRGB::Red,
CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red,
CRGB::Blue, CRGB::Blue, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Blue, CRGB::Blue,
CRGB::Blue, CRGB::Blue, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Blue, CRGB::Blue,
CRGB::Blue, CRGB::Blue, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Red, CRGB::Blue, CRGB::Blue,
CRGB::Blue, CRGB::Red, CRGB::Blue, CRGB::Red, CRGB::Blue, CRGB::Blue, CRGB::Red, CRGB::Blue, CRGB::Red, CRGB::Blue
};
但编译器抱怨说
variable 'crab' with dynamic initialization put into program memory area
.
当然,我可以直接使用 HTML 颜色(例如 0xff0000),但我想保留 FastLed 提供的人类可读值。
有什么方法可以同时实现:在闪存中使用阵列并使用 CRGB::Red?