PROGMEM
- Войдите на сайт для отправки комментариев
Чт, 16/02/2017 - 01:41
Привет,народ!
Не подскажите ли по такой проблемке. Вобщем спаял такую плюшку,зовется лед куб 5Х5Х5 ,все работает прекрасно, но при попытке добавить данных в массив ,с целью увеличения количества световых эффектов конечно, начинается хрень. Скетч вобщем компилируется но железо не работает ,повисает наглухо на старте. о PROGMEM я малость почитал,так понимаю он отправляет данные во flash ну и тд. Неужто флэш переполнен.
скетч компилируется как я выше говорил "Размер скетча в двоичном коде: 5 598 байт (из 32 256 байт максимум)"
#include <avr/pgmspace.h> #include <SPI.h> int p = 500; int latchPin = 8; int clockPin = 13; int dataPin = 11; void GrowingCube(); void CountDown(); void CubeDiman(); void ClearOut(); void MovingCube(); void shift_out(const byte animation[5][6], int animationTime); void setup() { SPI.setBitOrder(MSBFIRST); SPI.setDataMode(SPI_MODE0); SPI.setClockDivider(SPI_CLOCK_DIV2); SPI.begin(); pinMode(dataPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(latchPin, OUTPUT); // ClearOut(); // CountDown(); } void loop(){ CountDown(); MovingCube(); CubeDiman(); GrowingCube(); CubeDiman(); MovingCube(); CubeDiman(); ClearOut(); int randomAnimation = random(4); switch(randomAnimation){ case 0: GrowingCube(); break; case 1: MovingCube(); break; case 2: CountDown(); break; case 3: ClearOut(); break; } } void CubeDiman(){ const byte cubeD1 [5][6] PROGMEM = {{B00001, B11111, B10001, B10001, B10001, B11111}, {B00010, B10001, B00000, B00000, B00000, B10001}, {B00100, B10001, B00000, B00000, B00000, B10001}, {B01000, B10001, B00000, B00000, B00000, B10001}, {B10000, B11111, B10001, B10001, B10001, B11111}}; const byte cubeD2 [5][6] PROGMEM={{B00000, B00000, B00000, B00000, B00000, B00000}, { B00010, B00000 ,B01110, B01110, B01110, B00000}, { B00100, B00000 ,B01110, B01110, B01110, B00000}, { B01000, B00000, B01110, B01110, B01110, B00000}, { B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cubeD3 [5][6] PROGMEM={{B00000, B00000, B00000, B00000, B00000, B00000}, { B00000, B00000, B00000, B00000, B00000, B00000}, { B00100, B00000, B00000, B00100, B00000, B00000}, { B00000, B00000, B00000, B00000, B00000, B00000}, { B00000, B00000, B00000, B00000, B00000, B00000}}; /* const byte cubeD4 [5][6] PROGMEM = {{B00000, B00000, B00000, B00000, B00000, B00000}, { B00000, B00000, B00000, B00000, B00000, B00000}, { B00100, B00000, B00000, B00100, B00000, B00000}, { B00010, B00000, B01110, B01110, B01110, B00000}, { B00000, B00000, B00000, B00000, B00000, B00000}}; */ // const byte cubeD6 [5][6] PROGMEM={{B00000, B00000, B00000, B00000, B00000, B00000}, // { B01000, B00000, B01110, B01110, B01110, B00000}, // { B00100, B00000, B00000, B00100, B00000, B00000}, // { B00000, B00000, B00000, B00000, B00000, B00000}, // { B00000, B00000, B00000, B00000, B00000, B00000}}; // const byte cubeD7 [5][6] PROGMEM={{B10000, B11111, B11111, B11111, B11111, B11111}, // { B01000, B00000, B01110, B01110, B01110, B00000}, // { B00100, B00000, B00000, B00100, B00000, B00000}, // { B00000, B00000, B00000, B00000, B00000, B00000}, // { B00000, B00000, B00000, B00000, B00000, B00000}}; */ shift_out(cubeD1, p+100); shift_out(cubeD2, p+100); shift_out(cubeD3, p+100); //shift_out(cubeD6, 2000); //shift_out(cubeD7, 2000); ClearOut(); } void CountDown(){ const byte FiveRow5 [5][6] PROGMEM = {{ B10000, B01111, B00000, B00000, B00000, B00000}, {B01000, B01000, B00000, B00000, B00000, B00000}, {B00100, B01110, B00000, B00000, B00000, B00000}, {B00010, B00001, B00000, B00000, B00000, B00000}, {B00001, B01110, B00000, B00000, B00000, B00000}}; const byte FiveRow4 [5][6] PROGMEM = {{ B10000, B00000, B01111, B00000, B00000, B00000}, {B01000, B00000, B01000, B00000, B00000, B00000}, {B00100, B00000, B01110, B00000, B00000, B00000}, {B00010, B00000, B00001, B00000, B00000, B00000}, {B00001, B00000, B01110, B00000, B00000, B00000}}; const byte FiveRow3 [5][6] PROGMEM = {{ B10000, B00000, B00000, B01111, B00000, B00000}, {B01000, B00000, B00000, B01000, B00000, B00000}, {B00100, B00000, B00000, B01110, B00000, B00000}, {B00010, B00000, B00000, B00001, B00000, B00000}, {B00001, B00000, B00000, B01110, B00000, B00000}}; const byte FiveRow2 [5][6] PROGMEM = {{B10000, B00000, B00000, B00000, B01111, B00000}, {B01010, B00000, B00000, B00000, B01000, B00000}, {B00100, B00000, B00000, B00000, B01110, B00000}, {B00010, B00000, B00000, B00000, B00001, B00000}, {B00001, B00000, B00000, B00000, B01110, B00000}}; const byte FiveRow1 [5][6] PROGMEM = {{ B10000, B00000, B00000, B00000, B00000, B01111}, {B01000, B00000, B00000, B00000, B00000, B01000}, {B00100, B00000, B00000, B00000, B00000, B01110}, {B00010, B00000, B00000, B00000, B00000, B00001}, {B00001, B00000, B00000, B00000, B00000, B01110}}; const byte FourRow5 [5][6] PROGMEM = {{B10000, B01001, B00000, B00000, B00000, B00000}, {B01000, B01001, B00000, B00000, B00000, B00000}, {B00100, B01111, B00000, B00000, B00000, B00000}, {B00010, B00001, B00000, B00000, B00000, B00000}, {B00001, B00001, B00000, B00000, B00000, B00000}}; const byte FourRow4 [5][6] PROGMEM = {{ B10000, B00000, B01001, B00000, B00000, B00000}, {B01000, B00000, B01001, B00000, B00000, B00000}, {B00100, B00000, B01111, B00000, B00000, B00000}, {B00010, B00000, B00001, B00000, B00000, B00000}, {B00001, B00000, B00001, B00000, B00000, B00000}}; const byte FourRow3 [5][6] PROGMEM = {{ B10000, B00000, B00000, B01001, B00000, B00000}, {B01000, B00000, B00000, B01001, B00000, B00000}, {B00100, B00000, B00000, B01111, B00000, B00000}, {B00010, B00000, B00000, B00001, B00000, B00000}, {B00001, B00000, B00000, B00001, B00000, B00000}}; const byte FourRow2 [5][6] PROGMEM = {{B10000, B00000, B00000, B00000, B01001, B00000}, {B01000, B00000, B00000, B00000, B01001, B00000}, {B00100, B00000, B00000, B00000, B01111, B00000}, {B00010, B00000, B00000, B00000, B00001, B00000}, {B00001, B00000, B00000, B00000, B00001, B00000}}; const byte FourRow1 [5][6] PROGMEM = {{ B10000, B00000, B00000, B00000, B00000, B01001}, {B01000, B00000, B00000, B00000, B00000, B01001}, {B00100, B00000, B00000, B00000, B00000, B01111}, {B00010, B00000, B00000, B00000, B00000, B00001}, {B00001, B00000, B00000, B00000, B00000, B00001}}; const byte ThreeRow5 [5][6] PROGMEM = {{B00001, B01110, B00000, B00000, B00000, B00000}, {B00010, B00001, B00000, B00000, B00000, B00000}, {B00100, B00110, B00000, B00000, B00000, B00000}, {B01000, B00001, B00000, B00000, B00000, B00000}, {B10000, B01110, B00000, B00000, B00000, B00000}}; const byte ThreeRow4 [5][6] PROGMEM = {{B00001, B00000, B01110, B00000, B00000, B00000}, {B00010, B00000, B00001, B00000, B00000, B00000}, {B00100, B00000, B00110, B00000, B00000, B00000}, {B01000, B00000, B00001, B00000, B00000, B00000}, {B10000, B00000, B01110, B00000, B00000, B00000}}; const byte ThreeRow3 [5][6] PROGMEM = {{B00001, B00000, B00000, B01110, B00000, B00000}, {B00010, B00000, B00000, B00001, B00000, B00000}, {B00100, B00000, B00000, B00110, B00000, B00000}, {B01000, B00000, B00000, B00001, B00000, B00000}, {B10000, B00000, B00000, B01110, B00000, B00000}}; const byte ThreeRow2 [5][6] PROGMEM = {{B00001, B00000, B00000, B00000, B01110, B00000}, {B00010, B00000, B00000, B00000, B00001, B00000}, {B00100, B00000, B00000, B00000, B00110, B00000}, {B01000, B00000, B00000, B00000, B00001, B00000}, {B10000, B00000, B00000, B00000, B01110, B00000}}; const byte ThreeRow1 [5][6] PROGMEM = {{B00001, B00000, B00000, B00000, B00000, B01110}, {B00010, B00000, B00000, B00000, B00000, B00001}, {B00100, B00000, B00000, B00000, B00000, B00110}, {B01000, B00000, B00000, B00000, B00000, B00001}, {B10000, B00000, B00000, B00000, B00000, B01110}}; const byte TwoRow5 [5][6] PROGMEM = {{B10000, B00110, B00000, B00000, B00000, B00000}, {B01000, B01001, B00000, B00000, B00000, B00000}, {B00100, B00010, B00000, B00000, B00000, B00000}, {B00010, B00100, B00000, B00000, B00000, B00000}, {B00001, B01111, B00000, B00000, B00000, B00000}}; const byte TwoRow4 [5][6] PROGMEM = {{B10000, B00000, B00110, B00000, B00000, B00000}, {B01000, B00000, B01001, B00000, B00000, B00000}, {B00100, B00000, B00010, B00000, B00000, B00000}, {B00010, B00000, B00100, B00000, B00000, B00000}, {B00001, B00000, B01111, B00000, B00000, B00000}}; const byte TwoRow3 [5][6] PROGMEM = {{B10000, B00000, B00000, B00110, B00000, B00000}, {B01000, B00000, B00000, B01001, B00000, B00000}, {B00100, B00000, B00000, B00010, B00000, B00000}, {B00010, B00000, B00000, B00100, B00000, B00000}, {B00001, B00000, B00000, B01111, B00000, B00000}}; const byte TwoRow2 [5][6] PROGMEM = {{B10000, B00000, B00000, B00000, B00110, B00000}, {B01000, B00000, B00000, B00000, B01001, B00000}, {B00100, B00000, B00000, B00000, B00010, B00000}, {B00010, B00000, B00000, B00000, B00100, B00000}, {B00001, B00000, B00000, B00000, B01111, B00000}}; const byte TwoRow1 [5][6] PROGMEM = {{B10000, B00000, B00000, B00000, B00000, B00110}, {B01000, B00000, B00000, B00000, B00000, B01001}, {B00100, B00000, B00000, B00000, B00000, B00010}, {B00010, B00000, B00000, B00000, B00000, B00100}, {B00001, B00000, B00000, B00000, B00000, B01111}}; const byte OneRow5 [5][6] PROGMEM = {{B10000, B00010, B00000, B00000, B00000, B00000}, {B01000, B00110, B00000, B00000, B00000, B00000}, {B00100, B00010, B00000, B00000, B00000, B00000}, {B00010, B00010, B00000, B00000, B00000, B00000}, {B00001, B00111, B00000, B00000, B00000, B00000}}; const byte OneRow4 [5][6] PROGMEM = {{B10000, B00000, B00010, B00000, B00000, B00000}, {B01000, B00000, B00110, B00000, B00000, B00000}, {B00100, B00000, B00010, B00000, B00000, B00000}, {B00010, B00000, B00010, B00000, B00000, B00000}, {B00001, B00000, B00111, B00000, B00000, B00000}}; const byte OneRow3 [5][6] PROGMEM = {{B10000, B00000, B00000, B00010, B00000, B00000}, {B01000, B00000, B00000, B00110, B00000, B00000}, {B00100, B00000, B00000, B00010, B00000, B00000}, {B00010, B00000, B00000, B00010, B00000, B00000}, {B00001, B00000, B00000, B00111, B00000, B00000}}; const byte OneRow2 [5][6]PROGMEM = {{B10000, B00000, B00000, B00000, B00010, B00000}, {B01000, B00000, B00000, B00000, B00110, B00000}, {B00100, B00000, B00000, B00000, B00010, B00000}, {B00010, B00000, B00000, B00000, B00010, B00000}, {B00001, B00000, B00000, B00000, B00111, B00000}}; const byte OneRow1 [5][6] PROGMEM = {{B10000, B00000, B00000, B00000, B00000, B00010}, {B01000, B00000, B00000, B00000, B00000, B00110}, {B00100, B00000, B00000, B00000, B00000, B00010}, {B00010, B00000, B00000, B00000, B00000, B00010}, {B00001, B00000, B00000, B00000, B00000, B00111}}; //shift_out(Animation you want to run, how long the animation should be runned in milliseconds); shift_out(FiveRow5, p); shift_out(FiveRow4, p); shift_out(FiveRow3, p); shift_out(FiveRow2, p); shift_out(FiveRow1, p); shift_out(FourRow5, p); shift_out(FourRow4, p); shift_out(FourRow3, p); shift_out(FourRow2, p); shift_out(FourRow1, p); shift_out(ThreeRow5, p); shift_out(ThreeRow4, p); shift_out(ThreeRow3, p); shift_out(ThreeRow2, p); shift_out(ThreeRow1, p); shift_out(TwoRow5, p); shift_out(TwoRow4, p); shift_out(TwoRow3, p); shift_out(TwoRow2, p); shift_out(TwoRow1, p); shift_out(OneRow5, p); shift_out(OneRow4, p); shift_out(OneRow3, p); shift_out(OneRow2, p); shift_out(OneRow1, p); ClearOut(); } void GrowingCube(){ const byte cube1 [5][6] PROGMEM = {{B00001, B00000, B00000, B00000, B00011, B00011}, {B00010, B00000, B00000, B00000, B00011, B00011}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube2 [5][6] PROGMEM = {{B00001, B00000, B00000, B00111, B00111, B00111}, {B00010, B00000, B00000, B00111, B00111, B00111}, {B00100, B00000, B00000, B00111, B00111, B00111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube3 [5][6] PROGMEM = {{B00001, B00000, B01111, B01111, B01111, B01111}, {B00010, B00000, B01111, B01111, B01111, B01111}, {B00100, B00000, B01111, B01111, B01111, B01111}, {B01000, B00000, B01111, B01111, B01111, B01111}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube4 [5][6] PROGMEM = {{B00001, B11111, B11111, B11111, B11111, B11111}, {B00010, B11111, B11111, B11111, B11111, B11111}, {B00100, B11111, B11111, B11111, B11111, B11111}, {B01000, B11111, B11111, B11111, B11111, B11111}, {B10000, B11111, B11111, B11111, B11111, B11111}}; const byte cube5 [5][6] PROGMEM = {{B00001, B11111, B11111, B11111, B11111, B11111}, {B00010, B11111, B11111, B11111, B11111, B11111}, {B00100, B11111, B11111, B11111, B11111, B11111}, {B01000, B11111, B11111, B11111, B11111, B11111}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube6 [5][6] PROGMEM = {{B00001, B11111, B11111, B11111, B11111, B11111}, {B00010, B11111, B11111, B11111 ,B11111, B11111}, {B00100, B11111, B11111, B11111, B11111, B11111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube7 [5][6] PROGMEM = {{B00001, B11111, B11111, B11111, B11111, B11111}, {B00010, B11111, B11111, B11111, B11111, B11111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; // To avoid different brightness I always shiftout an array with a 5*6 dimension const byte cube8 [5][6] PROGMEM = {{B00001, B11111, B11111, B11111, B11111, B11111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; shift_out(cube1, 1000); shift_out(cube2, 1000); shift_out(cube3, 1000); shift_out(cube4, 1000); shift_out(cube5, 1000); shift_out(cube6, 1000); shift_out(cube7, 1000); shift_out(cube8, 1000); ClearOut(); } void MovingCube(){ const byte cube1 [5][6] PROGMEM = {{B00001, B00000, B00000, B00000, B00011, B00011}, {B00010, B00000, B00000, B00000, B00011, B00011}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube2 [5][6] PROGMEM = {{B00001, B00000, B00000, B00011, B00011, B00000}, {B00010, B00000, B00000, B00011, B00011, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube3 [5][6]PROGMEM = {{B00001, B00000, B00011, B00011, B00000, B00000}, {B00010, B00000, B00011, B00011, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube4 [5][6] PROGMEM = {{B00001, B00011, B00011, B00000, B00000, B00000}, {B00010, B00011, B00011, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube5 [5][6] PROGMEM = {{B00010, B00000, B00011, B00011, B00000, B00000}, {B00100, B00000, B00011, B00011, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube6 [5][6] PROGMEM = {{B00010, B00000, B00110, B00110, B00000, B00000}, {B00100, B00000, B00110, B00110, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube7 [5][6] PROGMEM = {{B00010, B00000, B01100, B01100, B00000, B00000}, {B00100, B00000, B01100, B01100, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube8 [5][6] PROGMEM = {{B00100, B00000, B01100, B01100, B00000, B00000}, {B01000, B00000, B01100, B01100, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube9 [5][6] PROGMEM = {{B01000, B00000, B01100, B01100, B00000, B00000}, {B10000, B00000, B01100, B01100, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube10 [5][6] PROGMEM = {{B01000, B00000, B00000, B00110, B00110, B00000}, {B10000, B00000, B00000, B00110, B00110, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube11 [5][6] PROGMEM = {{B01000, B00000, B00000, B00000, B00011, B00011}, {B10000, B00000, B00000, B00000, B00011, B00011}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube12 [5][6] PROGMEM = {{B01000, B00000, B00000, B00011, B00011, B00000}, {B10000, B00000, B00000, B00011, B00011, B00011}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube13 [5][6] PROGMEM = {{B01000, B00000, B00011, B00011, B00000, B00000}, {B10000, B00000, B00011, B00011, B00011, B00011}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube14 [5][6] PROGMEM = {{B01000, B00011, B00011, B00000, B00000, B00000}, {B10000, B00011, B00011, B00011, B00011, B00011}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube15 [5][6] PROGMEM = {{B01000, B00110, B00110, B00000, B00000, B00000}, {B10000, B00111, B00111, B00011, B00011, B00011}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube16 [5][6] PROGMEM = {{B01000, B00000, B00110, B00110, B00000, B00000}, {B10000, B00111, B00111, B00111, B00011, B00011}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube17 [5][6] PROGMEM = {{B01000, B00000, B00000, B00110, B00110, B00000}, {B10000, B00111, B00111, B00111, B00111, B00011}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube18 [5][6] PROGMEM = {{B01000, B00000, B00000, B00000, B00110, B00110}, {B10000, B00111, B00111, B00111, B00111, B00111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube19 [5][6] PROGMEM = {{B01000, B00000, B00000, B00000, B01100, B01100}, {B10000, B00111, B00111, B00111, B01111, B01111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube20 [5][6] PROGMEM = {{B01000, B00000, B00000, B01100, B01100, B00000}, {B10000, B00111, B00111, B01111, B01111, B01111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube21 [5][6] PROGMEM = {{B01000, B00000, B01100, B01100, B00000, B00000}, {B10000, B00111, B01111, B01111, B01111, B01111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube22 [5][6] PROGMEM = {{B01000, B01100, B01100, B00000, B00000, B00000}, {B10000, B01111, B01111, B01111, B01111, B01111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube23 [5][6] PROGMEM = {{B01000, B11000, B11000, B00000, B00000, B00000}, {B10000, B11111, B11111, B01111, B01111, B01111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube24 [5][6] PROGMEM = {{B01000, B00000, B11000, B11000, B00000, B00000}, {B10000, B11111, B11111, B11111, B01111, B01111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube25 [5][6] PROGMEM = {{B01000, B00000, B00000, B11000, B11000, B00000}, {B10000, B11111, B11111, B11111, B11111, B01111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube26 [5][6]PROGMEM = {{B01000, B00000, B00000, B00000, B11000, B11000}, {B10000, B11111, B11111, B11111, B11111, B11111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube27 [5][6] PROGMEM = {{B10000, B11111, B11111, B11111, B11111, B11111}, {B01000, B11111, B11111, B11111, B11111, B11111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube28 [5][6]PROGMEM = {{B10000, B11111, B11111, B11111, B11111, B11111}, {B01000, B11111, B11111, B11111, B11111, B11111}, {B00100, B11111, B11111, B11111, B11111, B11111}, {B00000, B00000, B00000, B00000, B00000, B00000}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube29 [5][6] PROGMEM= {{B10000, B11111, B11111, B11111, B11111, B11111}, {B01000, B11111, B11111, B11111, B11111, B11111}, {B00100, B11111, B11111, B11111, B11111, B11111}, {B00010, B11111, B11111, B11111, B11111, B11111}, {B00000, B00000, B00000, B00000, B00000, B00000}}; const byte cube30 [5][6]PROGMEM = {{B10000, B11111, B11111, B11111, B11111, B11111}, {B01000, B11111, B11111, B11111, B11111, B11111}, {B00100, B11111, B11111, B11111, B11111, B11111}, {B00010, B11111, B11111, B11111, B11111, B11111}, {B00001, B11111, B11111, B11111, B11111, B11111}}; shift_out(cube1, 100); shift_out(cube2, 100); shift_out(cube3, 100); shift_out(cube4, 100); shift_out(cube5, 100); shift_out(cube6, 100); shift_out(cube7, 100); shift_out(cube8, 100); shift_out(cube9, 100); shift_out(cube10, 100); shift_out(cube11, 100); shift_out(cube12, 100); shift_out(cube13, 100); shift_out(cube14, 100); shift_out(cube15, 100); shift_out(cube16, 100); shift_out(cube17, 100); shift_out(cube18, 100); shift_out(cube19, 100); shift_out(cube20, 100); shift_out(cube21, 100); shift_out(cube22, 100); shift_out(cube23, 100); shift_out(cube24, 100); shift_out(cube25, 100); shift_out(cube26, 100); shift_out(cube27, 100); shift_out(cube28, 100); shift_out(cube29, 100); shift_out(cube30, 100); ClearOut(); } void ClearOut(){ digitalWrite(latchPin, LOW); for(int b=0; b<6; b++){ SPI.transfer(B00000); } digitalWrite(latchPin, HIGH); digitalWrite(latchPin, LOW); } void shift_out(const byte animation[5][6], int animationTime){ for(int i=0; i<(animationTime*0.2);i++){ for(int a=0; a<5; a++){ digitalWrite(latchPin, LOW); for(int b=0; b<6; b++){ SPI.transfer(animation[a][b]); } digitalWrite(latchPin, HIGH); delay(1); } } }
подробности компиляции
Нет, во флеше еще вагон места.
А с массивами меньшего размера этот код работал? Или он работал только пока Вы не переделали на PROGMEM?
Я что-то не нашел места, где бы Вы читали из PROGMEM.
Ну и заодно уж: раз печатаете диагностику скетча, который компилируется, но не паботает, не забывайте указывать также размер занятой оперативной памяти.
А с массивами меньшего размера этот код работал?
Да ,работал. Он с выложенным работает. а вот если раскоментировать строки с 76-80 и запустить ниже shift_out(cubeD4, p+100); то виснет.
Или он работал только пока Вы не переделали на PROGMEM?
да я на прогмем не переделывал,только массивы добавлял.
http://www.instructables.com/id/LED-CUBE-Arduino-5x5x5/ статья здесь
оригинал скетча здесь https://cdn.instructables.com/ORIG/FYH/IGK4/HVW4NDXV/FYHIGK4HVW4NDXV.ino
Почему из темы удален мой комментарий от 11марта ?
Кто нибудь хочет подсказать как решить проблему нехватки памяти МК,например читать массивы с sd карты? Или вы можете только дерьмом плеваться?
Ты сам ответил на свой вопрос: например, читать массивы с SD-карты. В стандартной поставке есть примеры чтения/записи в файл.
Ну тут все почесноку. Перестань сам плеваться дерьмом, ответ №2 внимательней прочитай и укажи недостающие данные.
Увы :((((
Мы тут такие :(