Ich habe einen Timer in C - und auf ATMega 8 kompilert,das Prog läuft ... aber wenn ich das LCD abhänge - funktioniert es nicht mehr ... Ich verwende Studio 4.19 mfg Karl
Gast
#2838399
Entweder (unsauber) du nimmst #ifndef und #endif noch weg, oder (sauber) du suchst die Einstellung -DF_CPU=16000000 und änderst die. Keine Ahnung was du mit "Studio 4.19" meinst, das sollte sich aber in dem Makefile oder der Projektdatei/Einstellungen finden lassen.
Gast
#2838401
Oder du editierst deinen Post nochmal komplett um... Jetzt sind die Angaben viel zu vaage, um den Fehler ohne Kristallkugel einzugrenzen.
Danke ! Die Einstellung gefunden. Aber eine andere Frage: Wenn ich das LCD abhänge - dann läuft der Timer nicht mehr ... Habe festgestellt wenn D7 vom Display dranhängt - dann läuft er wieder ... Was kann da sein? mfg Karl
Fragst Du das Busy-Flag des Displays ab? Wenn ja, dann wartet die Software wahrscheinlich darauf... (Das ist besser als Kreuzworträtsel hier, stochern im Nebel...)
Gast
#2839891
Ab und zu funktioniert die Elektrik meines Autos nicht. Ich hab nen VW-Golf. Don Karlo, woran liegt das? Du siehst, solche Fragestellungen führen ins Nichts. Naja. Dann hast du irgendwas im Code das den Timer über den Port beeinflusst. Welchen Timer hast du denn überhaupt verwendet? Und an welcher Portleitung hängt D7? Poste mal den Code.
Kupferwurm schrieb: > Naja. Dann hast du irgendwas im Code das den Timer über den Port > beeinflusst. In dem Fall wahrscheinlich nicht. Wenn ich mal diesen, seinen Thread, zugrunde lege Beitrag "lcd.c - Testprogramm - Wie kompiliere ich das richtig?" dann hat es Bernhard M. schon getroffen. Seine LCD Routinen werten das Busy Flag aus und somit wartet das lcd_init bis zum St. Nimmerleinstag, bis ein nicht vorhandenes LCD dann endlich "ready" wird und es mit der Initialisierung des Programms dann endlich weitergeht und irgendwann dann der Timer initialisiert wird, die Interrupts freigegeben und die Hauptschleife zu arbeiten anfängt. Ist halt immer ein Kreuz, wenn jemand Code benutzt, ohne ihn wenigstens rudimentär in den Grundzügen zu verstehen.
Gast
#2840275
Das Problem lässt sich lösen indem du nicht das Busy-Flag abfragst, sondern pauschal wartest. Ich habe beide Versionen einmal ausprobiert. Die Zeitersparnis mit Busy-Flag ist wirklich klein, so 5us. Das sind selbst @16MHz nur 80 Takte. Also in den meisten Fällen warte ich pauschal, da es meist sowieso in einem "Zeit spielt keine Rolle" -abschnitt im Programm abgearbeitet wird. Ingo
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.