Hallo Leute! Ich habe folgende Problematik welche ich nun mit Eurer Hilfe lösen möchte. Ich habe ein fertiges System mit einem LCDisplay(2x16ASCI-Zeichen mit 4Bit Datenübertragung).Nun möchte ich dieses System erweitern. Meine Erweiterung fordert nun diverse Anzeigen auf einem Grafikdisplay. jedoch soll die Anzeige vom LCD eins zu eins übernommen werden und auch auf dem Grafikdisplay anzgezeigt werden. Meine Idee: verbinde die Ports des Alten Display(LCD) auf meinen Mikrocontroller(ATMEGA128) || RS || R/W || E || DB7 || DB6 || DB5 || DB4 || Der RS und der E-Port werden an jeweils einen INTx(externer Interrupt) gelegt. Sobald an INT0(RS) eine positive Flanke kommt startet meine Bit erkennung. Dann warte bis ich eine pos. Flanke an Pin E(INT1) bekomme. Gleich im Anschluss lese ich DR7 DR6 DR5 und DR4 aus. Prüfe ob dort HIGH oder LOW ist. nächste pos. Flanke prüft dann DR3 DR2 DR1 DR0 . jetzt weiss ich welches Zeichen angezeigt werden soll. Nach diesem Prinzip lese ich alle Zeichen hintereinander aus. bis ich weiss was auf dem Display steht. Diese Zeichen möchte ich dann in einen Zeichenstring speichern welches ich dan entgültig mit dem Gradikdisplay anzeige. So das ist nun meine IDEE! Seht ihr da irgendwelche Problem...........? Gruss Andy Nagel
Hallo Andy, schönes Projekt! >Der RS und der E-Port werden an jeweils einen INTx(externer >Interrupt) gelegt. Du brauchst nur den E (Enable) - Pin über einen ext. Interrupt auswerten. Denn E wird dann aktiviert, wenn alle anderen Pins geschaltet sind >Sobald an INT0(RS) eine positive Flanke kommt startet meine Bit >erkennung. Nicht zwingend erforderlich, E reicht volkommen aus. Denn, weniger ist manchmal mehr ;) Bernhard
@ bernhard meinste das das so ohne weiters funktioniert. Zähle die gelesenen Bytes wenn ich bei 32 Byte bin, weiss ich das ich alle Zeichen erfasst habe richtig?
Irgendwie sehr krampfartig rückwärts gerichtete Projektarbeit. An das Textdisplay werden nicht nur "lesbare" Daten (Ascii-Zeichen) sondern auch Befehle (Initialisierung, Cursorsteuerung, Positionierung) geschickt. Die Schreib-Reihenfolge KANN sequentiell sein, muss ab nicht. Man müßte dies alles mit einem Befehls-Interpreter rausfiltern und richtig zusammgefügt anordnen. "Einfacher" wäre ein Kamerasystem, was die Display "abfotografiert" und per OCR wieder in Text bringt (naja, auch nicht ganz ernstzunehmen). ==> Ursprungssystem ordentlich erweitern. Dort statt Text- eine Grafik-Display anschliessen. Oder im neuen System die Funktionalität des Altsystems mit erledigen. Auch ein Farbfernseher hat intern kein SW-Display wo er die Daten abzapft.
Ein ATMega128 sollte ein LCD emulieren können. Problematisch ist höchstens, wenn "selbstgebaute" Zeichen verwendet werden oder der Busy-Status abgefragt wird. Aber auch das sollte möglich sein. Die Initialisierungssequenz muß man natürlich auch beachten.
@Andy
>meinste das das so ohne weiters funktioniert.
naja, das "ohne weiteres" wage ich zu bezweifeln, wird schon etwas
komplexer.
Klaus und inoffizieller WM-Rahul gaben Dir wichtige Hinweise und
Besonderheiten.
Kannst uns ja berichten, welche Probleme aufgetreten sind, und wie Du
sie gelöst hast?
Bernhard
Hallo, naja, wenn es ein Display mit üblichen Controller (HDxxxx) ist, kann das Ding ja nun nicht soviel, daß die State-Machine sonderlich kompliziert wäre. Letztlich ist der Textspeicher 32, max. wohl 40Byte passend zu füllen, max. 8 selbstdefinierte Zeichen einzusortieren. Ich würde mir wohl einen Atmel greifen, das Hardware-Protokoll fertig machen (E steigende Flanke ist üblicherweise Trigger) und dann die Initialisierung fertigmachen. Zum Test könnte man auch das Original-Display an einen anderen Port hängen und zusätzlich die Daten per Software wieder ausgeben. Dann sollte man Klemmstellen oder fehlende Kommandos schnell merken. Gruß aus Berlin Michael
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.