-
Zu A vr und Eclipse :
http://www.mikrocontroller.net/articles/AVR_Eclipse
Lief hier unter fedora quasi out of the box.
Zum Thema Inline :
Ich hab mich jetzt zum inline/extern/static und alle möglichen Kombinationen mal gründlich eingelesen.
Im laufe des Mittags wer ich eine neue Version soweit fertig haben, dass ich sie mit static inlines läuft und sich sogar linke lässt.
Ich mach dann hier Meldung.
Was deinen M8 angeht solltest du etwas abspecken. Ich hab das ganze auf einem atmega32 rennen.
Z.B den font 12x16_horizontal_LSB_1.h und lcd_plot_text weglassen.
Oder die writing_demo() funktion + Touch.
Sebastian
PS: Danke fürs testen.
///Update 1 :
Ich hab den Code umgeschrieben und lade jetzt die angepasste Version hoch.
Da ich DSL mit Licht hab, kann das etwas dauern.
-
gerne doch =). Ich bin Wiedereinsteiger in dieser Materie und in diesem Zusammenhang will ich mich von Bascom abwenden und auf C umsteigen, da wir das zur Zeit auch im Studium lernen. Daher biete ich dir hier auch meine Hilfe an, falls du irgendwann mal ein größeres Projekt planst, denn zu Zweit steigt meist die Motivation.
Edit: Habe grade mein Lehrbuch durchstöbert, und habe herraus gefunden, dass deine inline- Funktionen keinen Effekt haben dürften. Laut C-Standart darf ein Compiler selbst entscheiden, ob eine Funktion inline ist oder nicht. Inline Funktion selber müssen aber in einer Quelldatei deklariert und definiert werden. Also wird das eclipse vermutlich selbstständig kaschieren.
MfG Marcel
-
So upload is fertig.
Die neue Version sollte jetzt problemlos laufen.
Sebastian
-
nochmal eine andere Frage: Wie rum muss man den Data-Bus verbinden?
laut dem Schema hier im Thread weiter vorne geht PORTD7 auf LCD_Pin7 also DB0 (nachgemessen am LC7981). Was ist nun richtig? PORTD0 -> DB0
oder PORTD0->DB7
Update: Habe es jetzt geschafft das Display anzuschließen an nem M8, bekomme aber nur Wirrwarr in der linken obere Ecke angezeigt. Ich habe den Text "Hallo" um geändert in "Test" und siehe da, anderes Wirrwarr wieder in der selben Ecke. Ich habe grade die Leitungen noch ma auf Fehlanschluss überprüft aber nichts gefunden. =(
MfG Marcel
-
Moin
Also die ganzen interessanten Pins kannst du bei mir in der lc7981.h ändern.
Normaleiweiße hab ich :
RS auf PA4
RW auf PA2
EN auf PA0
Daten geb ich über PD0-7 aus die mit DB0-7 1:1 verbunden werden.
CS und Res vom Display hängen auf festen Pegeln.
Sebastian
-
Ja genau PortA existiert beim Atmega8 ja nicht, weshalb ich das auch alles bereits anpassen musste. Aber die Art des Problems weist doch auf ein Fehler der von dir genannten Pins hin, oder? Denn ich habe lediglich eine abweichende Beschaltung bei der Stromversorgung des eigentlichen LCD.
Marcel
-
Ich hatte selber mal ähnliche Probleme, da waren Datenleitungen verdreht.
D.h. wenn du mal im Thread weiter vorne liest hatte ich auch einmal RS und RW getauscht, sowas passiert schnell.
Vor allem kann man das mit Multimeter nur schwer finden.
Ich war schon drauf und dran mir einen Logic-Analyzer zu leihen.
Und wenn die Reihenfolge der Leitungen zu passen scheint würd ich mal die Pins zählen.
Weil ich lag auch schon mal 1 Pin daneben.
Ich denke Software Probleme kann ich ausschließen.
(Nach Murphys Law recht sich diese Aussage noch.)
Sebastian
-
Wo du grade Murphy erwähnst...Ich habe grade alle Leitungen sowohl auf Brücken als auch auf falsche Verdrahtung geachtet. Nichts... Ich habe vom IC-Sockel bis zum (!!) LC7981 Chip gemessen um selbst das auszuschließen. ich bin echt am Verzweifeln. Ich häng mal anbei ein Bild meiner Anzeige an.
Ich verwende die 8x8 font.
Bild hier
Edit: AHHH wie geil^^ Murphy hatte recht: Es ist dein Code. Du rufst in der main.c die Funktion lcd_plot_text(5,5,"Hello",16,16,font_8x8) auf. Aber richtig muss es heißen: lcd_plot_text(5,5,"Hello",8,8,font_8x8). Klar, dass er bei falscher Bitmapgröße was anderes ausm Ärmel zaubert.
Ich hoffe ich konnte helfen.
-
Moin Moin ...
Ne ich bau zwar viel Murks, aber da geht wohl auf deine Kappe.
Meine main.c :
Code:
lcd_plot_text(5,5,"Hello",16,16,font_12x16);
lcd_plot_pgmtext(50,22,PSTR("World"),16,16,font_12x16);
Du hast wahrscheinlich den Font getauscht, ohne die Größe anzupassen. ;-)
Das das nicht get ist klar.
Siehe Doku
Sebastian
-
Ja okay entschuldigung, ich wollte dich nicht diskreditieren. Aber in der ersten Version, die du hochgeladen hattest wurde "Hello" mit dem 8x8 Font genauso aufgerufen. Das habe ich schlichtweg so übernommen, da ich es bisher auch nicht verstanden habe, wieso beim 12x16 Font die Größe 16x16 sein sollte^^.
Andere Frage am Rande: Funktioniert bei dir die Funktion lcd_plot_bitmap mit convertierten bitmapbildern? Bei mir entstehen dabei immer drei Teile wovon die beiden äußeren gespiegelt werden.
Vielen Dank für deine Arbeit *daumen hoch*
MfG Marcel