0

我正在尝试使用 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?

4

0 回答 0