Forum: Mikrocontroller und Digitale Elektronik ATMega644P, "Aussetzer" bei Programmdurchlauf (LED Würfel 7x7x7)


von zander (Gast)


Lesenswert?

Hallo Ihr Lieben,

ich habe mir einen 7x7x7 LED Würfel gebaut, der über einen ATMega644P 
und 74HC573 gesteuert wird. Prinzipell funktioniert alles wunderbar.
Mittlerweile habe ich viele verschiedene Programme erstellt, die ich in 
einer Endlosschleife ablaufen lasse.

Prinzip:
  while (1)
    {
    // Programm1
    // Programm1
    // Programm1
    // Programm1
    // Programm1
    // ...
    }

Wenn ich die Programme einzeln bis max. 4 Programme auf den ATMega 
aufspiele funktioniert alles wie gewollt.

Wenn ich allerdings alle meine Programme aufspiele hat der ATMega ab 
einem Punkt "Aussetzer". Bis zu diesem gewissen Punkt laufen die 
Programme sauber durch, dann werden die Bilder "zerrissen" und der 
Programmdurchlauf bricht (für mein Empfinden) vorzeitig ab und beginnt 
von vorne.
Das Programm hat eine Größe von 18.5kB (28% Speicherbelegung).

An Variablen welche sich gegenseitig in die Quere kommen liegt das 
Problem definitiv nicht.

Wäre es geschickt die einzelnen Programme in Unterprogramme zu packen 
und über die Endlosschleife aufzurufen?
Vielleicht hat jemand eine Idee, ich weiß nicht weiter... So groß war 
bisher noch keines meiner Mikrocontroller-Projekte.

Den Code (ca. 100 Din A4-Seiten) möchte ich ungern hochstellen...


Danke
zander

von holger (Gast)


Lesenswert?

>Wenn ich allerdings alle meine Programme aufspiele hat der ATMega ab
>einem Punkt "Aussetzer". Bis zu diesem gewissen Punkt laufen die
>Programme sauber durch, dann werden die Bilder "zerrissen" und der
>Programmdurchlauf bricht (für mein Empfinden) vorzeitig ab und beginnt
>von vorne.

Hört sich nach Stack Überlauf an. Hast du grosse lokale Arrays?
Die erscheinen nicht in der Speicherübersicht.

von zander (Gast)


Lesenswert?

Hallo Holger,

Arrays hab ich, jede Menge. Das Größte hat 344 Positionen (sagt man das 
so?).
Wenn ich die Programme alleine auf den ATMega aufspiele funktioniert 
alles, warum sollte es bei mehreren Programmen plötzlich Probleme mit 
den Arrays geben?
Als "Speicherübersicht" nutze ich die Info, welche ich von AVR Studio 
nach dem Kompiliern bekomme.

Kann ich den Speicherplatz der Array irgendwie sichtbar machen?

Gruß
zander

von Ben _. (burning_silicon)


Lesenswert?

Ausprobieren. Den RAM komplett mit einem bestimmten Wert zupflastern und 
nach einer Weile nachschauen bis wohin dieser Wert überschrieben wurde.

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.