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
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.
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...)
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.