Gast
#785803
Hallo, anbei Soft+Hardware (Eagle) für ein TTL-Level RS232 LCD-Display für 2/4 Line,8/16/20/40 Chars per Line. 40x4 Char LCD ist NICHT unterstützt! Grundgedanke für dieses Projekt war, den Code und das Timing für das LCD vom "Master-Processor" fernzuhalten.Nachdem ich für meine Projekte vorwiegend Tiny´s einsetze, bleibt dann natürlich mehr Platz und Power für die eigentliche Aufgabe. Angesteuert wird dieses TTL-RS232 LCD direkt über einen beliebigen I/O- Pin eines anderen AVR´s.Wer´s gerne mit einer "richtigen" RS232- Schnittstelle betreiben will : Peter Dannegger hat da einen einfachen Pegelwandler dafür.Siehe : UART-Bootloader ATTiny13-ATMega64 ! Die Kommentare im Assembler-File sind in englisch (ich habe es mir so angewöhnt,weil die englische Sprache wesentlich kürzer und prägnanter ist). Zum Verstehen der Kommentare reicht dafür aber sicher das normale Schulenglisch. Kurze Funktionsbeschreibung: Die empfangenen Daten werden in einem 64 Byte Ringpuffer per Interrupt zwischengespeichert und dann abgearbeitet.Diese Pufferung der ankommenden Zeichen ist wichtig, da das LCD für einige Befehle (z.B. Clear Screen) schon einmal ca 20ms Zeit benötigt.Innerhalb dieser 20 ms könnte der "Master" ja schon neue Zeichen/Kommandos senden, die dann ohne Pufferung einfach in´s leere gehen würden. Weiters sind 20 Funktionsbefehle für das LCD (wie z.B. Clear Screen, LCD On,Shift Cursor Left/Right,Shift Display Left/Right, e.t.c) in der Software includiert.Diese Befehle werden durch ein Byte vom "Master" an das TTL-RS232 LCD übergeben.Durch den 64 Byte Ringpuffer kann vom "Master" sofort das nächste Zeichen (oder der nächste Befehl) gesendet werden, ohne das sich der "Master" um irgendwelche Delays oder Busy-Abfragen scheren muß. Hoffe, daß dieses Projekt für einige von Interesse ist! Liebe Grüße aus Wien