Hallo zusammen, ich weiss, dass Thema gab es hier schon tausend Mal, aber ich habe leider nichts passendes dazu gefunden. Also ich versuche das Display WD-C2704M unter dem uc Atm 168 zum laufen zu kriegen. Zum Initialisieren und Testen mag ich den Code von Peter Fleury verwenden (siehe Anhang). Das Display läuft unter einem Atm 32 problemlos. Beim Ausführen des Programms auf dem Atm 168 bleiben die zwei schwarzen Balken auf dem LCD Display. Liegt es daran, dass die zwei Boards nicht miteinander kompatibel sind (also vermutlich der Speicher). Was müsste ich am Code ändern, damit es funktioniert? Vielen Dank schonmal für alle Tipps. Gruss Christoph
Christoph G. schrieb: > Liegt es daran, dass die zwei Boards nicht miteinander kompatibel sind > (also vermutlich der Speicher). Eher: vermutlich die Taktfrequenz
Karl Heinz Buchegger schrieb: > Christoph G. schrieb: > > >> Liegt es daran, dass die zwei Boards nicht miteinander kompatibel sind >> (also vermutlich der Speicher). > > Eher: vermutlich die Taktfrequenz Wegen der Taktfrequenz habe ich alle Delays mal um Faktor 10 vergrössert, hat aber nichts verändert. Als Taktfrequenz habe ich auf dem Atm168 und auf dem Atm32 1 MHz eingestellt.
Klaus Wachtler schrieb: > Wie? Wie ich die Delays hochgesetzt habe? Auf zwei Weisen: 1) überall delay(...) durch delay(...0) ersetzt 2) #define delay(us) _delayFourCycles( ( ( 1*(XTAL/4000) )*us)/1000 ) durch #define delay(us) _delayFourCycles( ( ( 10*(XTAL/4000) )*us)/1000 ) ersetzt Natürlich unabhängig voneinander getestet. Faktor 100 habe ich auch schon probiert.
nein, ich meinte wie du die Frequenz gesetzt hast - bzw. ob es sicher ist, daß er mit dieser Frequenz läuft.
Klaus Wachtler schrieb: > nein, ich meinte wie du die Frequenz gesetzt hast - bzw. ob es sicher > ist, daß er mit dieser Frequenz läuft. Achso, nein da bin ich mir nicht sicher. Habe mich nicht getraut die Fuses beim Atm 168 zu setzen. Bei einem Testprogramm habe ich für einen 8Bit-Timer Durchlauf mit einem Prescaler von 1024 die Zeit von etwa 950 ms gemessen. Das würde nach meinen Berechnungen etwa 0,25 MHz entsprechen, was mich doch etwas irritiert. Edit: In AVR Studio wird unter Fuses wenn man ´Read´ drückt `Ext. Crystal Osc. 8.0 - MHz; Start-up time PWRDWN/RESET: 16K CK/...` angezeigt.
Christoph G. schrieb: > Achso, nein da bin ich mir nicht sicher. Habe mich nicht getraut die > Fuses beim Atm 168 zu setzen. Wenn du die Fuses nicht angerührt hast, dann läuft der auch mit 1Mhz (Wenn du wieder mal das Problem hast, machs nicht so kompliziert. LED im Sekundentakt blinken lassen mittels while( 1 ) { LEd ein _delay_ms( 1000 ); Led aus _delay_ms( 1000 ); } die 1 Sekunde kannst du auch so ganz gut schätzen. Die Alternativen die du hast, 2 Mhz, 4 Mhz, 8 Mhz, sind davon alle soweit entfernt, das merkst du auch mit freiem Auge, ob die Leuchtphase der LED eine ganze oder eine halbe (oder eine viertel oder achtel) Sekunde ist. Wenn F_CPU mit der tatsächlichen Taktfrequenz übereinstimmt und die Compileroptimierung auf -Os steht, dann stimmt die 1 Sekunde ziemlich gut. Auf ein paar Hunderstel Sekunden Abweichung kommt es dabei nicht an. F_CPU hast du in den Project Options den richtigen wert gegeben? Die Optimierung des Compilers ist eingeschaltet? > Edit: In AVR Studio wird unter Fuses wenn man ´Read´ drückt `Ext. > Crystal Osc. 8.0 - MHz; Start-up time PWRDWN/RESET: 16K CK/...` > angezeigt. Bei wem?` M168 oder M32
Nur damit es da keine Misverständnisse gibt: Du musst dein Programm für den M168 neu compilieren. MIt den richtigen Prozessoreinstellungen. Das Hex-File vom M32 wird auf dem M168 nicht laufen.
Karl Heinz Buchegger schrieb: > Wenn du die Fuses nicht angerührt hast, dann läuft der auch mit 1Mhz > > (Wenn du wieder mal das Problem hast, machs nicht so kompliziert. LED im > Sekundentakt blinken lassen mittels > > while( 1 ) { > LEd ein > _delay_ms( 1000 ); > Led aus > _delay_ms( 1000 ); > } Ach logisch, den Wald vor ganzen Bäumen nicht gesehen...Danke! Karl Heinz Buchegger schrieb: > F_CPU hast du in den Project Options den richtigen wert gegeben? > Die Optimierung des Compilers ist eingeschaltet? Das wars, da waren Fehler drin, schon beim Device, statt 168 stand da 128 und die Optimierung war auch falsch. Vielen Dank Karl Heinz! Das hätt ich alleine wohl nie gefunden, habe an den falschen Stellen gesucht...Schönen Abend noch!
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.