Forum: Mikrocontroller und Digitale Elektronik LCD mit 2D-Array macht Probleme


von Brian (Gast)


Lesenswert?

Hallo,
ich habe ein sehr seltsames Problem.

Ich wollte mir ein Programm schreiben, dass Messerte aufnimmt und über 
den LCD ausgibt, nur bleibt die Anzeige des LCDs leer.

Ich habe das Programm durch auskommentieren soweit zusammen gekürzt, 
dass ich das Problem ermitteln konnte.
Es liegt an meinem 2D Array: "volatile uint16_t matrix[20][150];"
Klammere ich dieses aus, funktioniert alles, wie es soll.
Probleme gab es vorher nie, auch nicht bei normalen Arrays.
Kommt ein 2D Array der LCD Routine in die Quere?

Die LCD Routine habe ich hierher (4bit Modus):
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung

Mikrocontroller: Atmega644
LCD: LCD 162C LED

Der Code (aufs kürzeste zusammengestutzt):
1
#include <avr/io.h>
2
#include "lcd-routines.h"
3
4
volatile uint16_t nameDerMatrix[20][150];
5
6
int main( void )
7
{
8
  lcd_init();
9
  lcd_string("Text");
10
  lcd_setcursor( 0, 2 );
11
  lcd_string("Nochwas");
12
13
  while(1){};
14
  return(0);
15
}

Mfg, Brian

von Peter II (Gast)


Lesenswert?

Brian schrieb:
> int16_t nameDerMatrix[20][150];

20*150*2 = 6000

der Atmel hat aber nur

> 4 Kbytes Internal SRAM

von zagge (Gast)


Lesenswert?

ich würde mal sagen die Matrix ist 6KByte groß, die passt natürlich 
schelcht in die 4KByte SRAM des 644ers.
Wenn die Matrix nicht erst zur Laufzeit berechnet wird, könnte man die 
in den Flash Speicher legen.

von Brian (Gast)


Lesenswert?

Ah, vielen Dank!
Ich hätte nicht gedacht, dass ich doch so schnell an die Grenzen des µC 
komme, daher hab ich daran nicht gedacht.
Sie wird leider erst zur Laufzeit aufgenommen, da die Messreihen darin 
zwischengespeichert werden sollen.
Aber dann muss ich Messreihen eben vorher schon auswerten, dass sollte 
auch möglich sein.

Danke nochmal!

von zagge (Gast)


Lesenswert?

oder ev. eine  sd-card dranhängen ?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.