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 внимательней прочитай и укажи недостающие данные.
Увы :((((
Мы тут такие :(