Forum: Mikrocontroller und Digitale Elektronik Stacküberlauf??


von Helmut Hofmann (Gast)


Lesenswert?

Hallo,
wie kann ich in einem laufendenden Programm einen Stack-Überlauf
verhindern?. Es wird ständig eine Programmschleife durchlaufen mit
200-facher Abfrage ADC0, 200-facher Abfrage ADC1,Ausgabe dieser Werte
auf einem Display, sowie Zeitausgabe. Bei 8MHz Taktfrequenz unterbricht
Timer 0 (Vorteiler 1024,TCNT0=150,Register=74 ergibt zusammen einen 1
sec-Takt),um eine Zeitangabe zu ermöglichen. Weiterhin wird über PWM
eine Gleichspannung für eine Analogregelung produziert. Bei niedriger
Gleichspannung (PWM-Wert< 300) funktioniert alles einwandfrei. Bei
größeren PWM-Werten steigt entweder der Mega8 oder das Display aus .
Kann mir da jemand helfen?

mfg Helmut

von crazy horse (Gast)


Lesenswert?

Meine Glaskugel sagt mir, du hast einen Programmierfehler.
Wahrscheinlich Zeile 35 oder 39.

von mmerten (Gast)


Lesenswert?

Vermutlich den Zeitbedarf für die LCD-Anzeige nicht berücksichtigt
(Programmfehler), die sind ja bekanntlich nicht die schnellsten, aber
der Benutzer braucht ja auch Zeit um die dargestellte Information zu
lesen.

von thkais (Gast)


Lesenswert?

Ich würde beispielsweise das Display 1x, max. 3x pro Sekunde
aktualisieren. Schneller lohnt kaum.
Einen Stacküberlauf bekommt man dann, wenn das Programm nicht richtig
geschrieben wurde. Von allein kommt der nicht vor. Anders als beim PC
muß man sich hier selbst drum kümmern.

von Helmut Hofmann (Gast)


Lesenswert?

ich aktualisiere die LCD-Anzeige nur 1x/min, trotzdem habe ich das oben
genannte Problem.
Wie kann ich denn den genauen Zeitbedarf der LCD-Anzeige ermitteln?

gruß Helmut

von Hannes Lux (Gast)


Lesenswert?

grazy horse hat Recht...

Ohne weitere Informationen ist das wie an der Börse oder beim
Pferderennen...

Bit- & Bytebruch... - ...HanneS...

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.