Seltsamer Fehler?! Belichtungsgerät

Gast #142402
Lesenswert?

Hi,
Hab mein Programm für mein Belichtungsgerät fast fertig.
Allerdings schreibt meine LCD Anzeige an einer stelle des Programms
wirres Zeug.
Wenn der Timer mit Compare Match läuft und dann kurz ausgeschaltet wird
wegen einer Unterbrechung tritt der fehler auf.
Am besten ihr schaut mal selber im Programm. In der Funktion
"halt()"
schreibt er "Stop!" und "Stop! Deckel!" nicht vernümpftig. Ich
denke mal er schreibt stattdessen Zeichen aus dem DDR Ram der LCD,
sieht zumindest nicht aus wie ASCII.
mfg
Gast #142407
Lesenswert?

Habe jetzt die Funktion "halt()" direkt unter start_count() (wo die
Funk. aufgerufen wird) geschrieben, jetzt geht es?! Allerdings hab ich
keine Ahnung warum?! kann es daran liegen das ich uint8_t benutzt hab?
mgh
Gast #142408
Lesenswert?

Ist mein Thread so langweilig?
Ich bin langsam am durchdrehen! Irgendwie... keine Ahnung... Das es
eben funktioniert hat war nur zufall. Hab es um eine Funktion
erweitert, und nun der selbe Scheiss!
Irgendwie schreibt er an einer Stelle nicht das was er soll auf das
Display! Aber dann auch immer an der selben stelle, bis ich wieder
irdenwelche Funktionen vertausche dann ist der Fehler wo anders!
Ich weiß absolut nicht mehr woran das liegen kann. Weiß auch nicht so
recht wie die LCD Routinen funktionieren, da steigt ein anfänger nicht
durch!
Hat jemand ne Idee wie ich weiter verfahren kann?
mfg michi
Gast #142410
Lesenswert?

Danke erstmal du deine Freizeit für mich opferst.
Nur weiß ich nicht was du meinst?! Der Text wird doch aus dem
Programmspeicher gelesen oder nicht? Wie gesagt hab keine Ahnung wie
die LCD Routinen.
Warnungen ignoriere ich im regelfall auch nicht. Nur wenn ich nicht
weiß warum sie auftreten. Was solls funktioniert auch mit warnungen.
Ausserdem haben sie nichts mit dem eigendlichen Problem gemeinsam, nehm
ich mal stark an.

Ich glaube langsam C mit avrggc ist nur was für Informatiker 8.
Semesters. Und nichts für ein kleinen dummen Industrieelektroniker der
sich im Erstensemester mit Ladungsverschiebung rumärgert!
mfg
Gast #142411
Lesenswert?

GCC hat die Angewohnheit beim Programmstart erstmal alle Variablen in
den RAM zu kopieren (weils C-Standart sein soll).

Du ersetzt:
lcd_puts("Platine Fertig!");
durch:
char StringImFlash[] PROGMEM = "Platine Fertig"; // im "Flash"
lcd_puts_p(StringImFlash);

PS: Mit einem Informatik Studium werde ich erst anfangen, wenn ich den
Zivildienst hinter mir habe.
Gast #142412
Lesenswert?

Hi, Malte
Ich habe gemacht was du geschrieben hast! Jetzt wird kein Satz mehr
richtig angezeigt. Es erscheinen immer wieder andere Zeichen.
Hab mal versucht einen Zeiger an lcd_puts_p zu übergeben
[lcd_puts_p(&balblubb)] und siehe da alles läuft richtig. Aber diese
Fehlermeldung erscheind dann:

main.c:254: warning: passing arg 1 of `lcd_puts_p' from incompatible
pointer type

mfg michi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren