Go Down

Topic: Totalausfall bei 2 schleifen (Read 846 times) previous topic - next topic

Robdeflop

Hi

Sobald ich diese Funktion verwende (benutze ich einmalig in setup) geht nichts mehr:

Code: [Select]
void spielfeldrand()
{
  for(int x = 0; x < 64; x++)
  {
    for(int y = 0; y < 128; y++)
    {
      if(x == 0 || x == 64 - 1)
      {
        field[x][y] = 1;
      }
      else if(y == 0 || y == 128 - 1)
      {
        field[x][y] = 1;
      }
      else
      {
        field[x][y] = 0;
      }
    }
  }
}


Wenn ich die Funktion im setup aufrufe:

Code: [Select]
void setup()
{
  Serial.begin(9600);
  LCD.Initialize();
  Serial.println("Initialized");
  spielfeldrand();
}


sollte ja eigentlich "Initialized" geprintet werden, was es aber komischerweise nicht tut. Irgendwie geht garnichts, wenn ich diese Funktion benutze. Lass ich sie weg, geht alles einwandfrei. Ich hab keine ahnung woran das liegen könnte :/
(Habe ein Arduino Uno)
Wäre über schnelle Hilfe sehr erfreut :)

MFG, Robdeflop®

madworm

• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

Robdeflop

Hi

Hmm, 8192 ^^
Und daran liegt es? Wie kann ich das Problem lösen? Ich benutze ein 64x128 pixel Display, dafür bräuchte ich das Array.

MFG, Robdeflop®

madworm

Nun, irgendwann ist der RAM halt voll. Ein ganzes byte (oder gar int) fuer ein pixel...
• Upload doesn't work? Do a loop-back test.
• There's absolutely NO excuse for not having an ISP!
• Your AVR needs a brain surgery? Use the online FUSE calculator.
My projects: RGB LED matrix, RGB LED ring, various ATtiny gadgets...
• Microsoft is not the answer. It is the question, and the answer is NO!

uwefed

Lösungsvorschläge:
* Externes serielles RAM oder FRAM
* Da die Variable nur einen binären Zustand hat würde sich eine Abspeicherung des Zustands in einem Bit anbieten. Wenn Du alle Bits einer BYTE Typ Variable nimmst dann kannst Du 8 Bit abspeichern und so den Speicherbedarf auf 1kByte reduzieren und zusätzlich einen ATmega2560 nehmen. Der hat 8kByte an RAM.
grüße Uwe

Go Up