Hallo zusammen, ich möchte gerne die PEARL-Laufschrift (http://www.pearl.de/a-PE9441-2430.shtml?query=led+laufschrift) mit einem µC und RS232 ansteuern. Es geht darum das ein Gerät Texte in Klarschrift ausgibt (Vorweg: auf das Ausgabe-"Format" habe ich keinen Einfluss), die Laufschrift das aber nicht direkt so wiedergeben kann, sondern noch ein paar Konfigurationsbefehle benötigt. Ich hab in den Anhang mal ein Screenshot gepackt, bei dem ich den Text: TESTNACHRICHT über die von Pearl gestellte Software und ein Null-Modemkabel an das Terminal-Programm auf meinem Laptop geschickt habe. Ich habe während meines Praktikums zwar mal mit dem UART auf dem ATmega88 gearbeitet, dabei ging es allerdings nur darum, wenn man einen Taster drückt, das dann ein Befehl per RS232 an den PC gesendet wird. Als µC hab ich mir den ATmega162 ausgeguckt, da dieser ja schon hardwaremäßig 2 UART´s besitzt. Ich habe jedoch keine Ahnung, wie ich die beiden UART´s aktiviere und dann den TEXT in diesen Konfiguartions-String einfüge. Kann mir da jemand bitte helfen ? Achja und wenn es geht bitte in C :)
Hi zu was brauchst du 2 x UART? Empfangen und Senden sind 2 verschiedene Sachen mit 2 Pins. Also Text empfangen, deine config dazu und ausgeben. Es sei denn dein Terminal will eine Rückantwort. Wo klemmt es denn da jetzt und sage bitte nicht am Lesen eines pdf. viel erfolg, Uwe
Stimmt, ich brauch ja gar nicht in beide Richtungen RX+TX, das heisst ja ein UART tut es auch. Danke für den ersten Hinweis :) Wird die Schaltung schon mal etwas kleiner :D Nein also, ich habe eine Box die mir Meldungen in Klartext über die Serielle Schnittstelle ausgibt. Wie ich das mit dem Programm von Pearl simuliert habe. In diesem Fall dann halt einfach nur "TESTNACHRICHT". Mehr spuckt die Kiste nicht aus. Jetzt soll der µC den Rest, den man noch, in dem Terminal-Programm, auf dem Screenshot sieht dazu basteln und an die Laufschrift senden. So dass die den Text wiedergeben kann.
@ DO1SKU (Gast) >Ich habe jedoch keine Ahnung, wie ich die beiden UART´s aktiviere und >dann den TEXT in diesen Konfiguartions-String einfüge. Ist nicht allzu schwer. Man nutz sinnvollerweise den UART-RX Interrupt, um die einzelnen Zeichen zu empfangen und in einem String zu speichern. Wenn dann ein Steuerzeichen wir CR oder LF kommt, ist dein String vom Terminal zu Ende und er kann bearbeitet werden. Das macht dann eine Funktion in deiner Hauptschleife. Die sendet erst die Steuerzeichen, dann den empfangenen String und dann gff. noch ein paar Steuerzeichen. Das ist eigentlich recht einfach. Man kann auch die UART-Bibliothek von Peter Fleury nehmen, da hat man gleich einen FIFO für RX und TX Richtung und muss sich nicht um die Interrupts kümmern. >Kann mir da jemand bitte helfen ? Achja und wenn es geht bitte in C :) Auf dem Silbertablett werden wir dir den fertigen Code sicher nicht präsentieren.
:
Bearbeitet durch User
Oh super. Allein der "Gedankenanschub" das ich keine 2 UARTS brauche. Hat mir schon ganz schön weiter geholfen :) Nein, mir geht es vor allem darum auch zu verstehen was ich da mache und nicht irgendeine C-File von jemanden auf meinen µC zu brennen. Danke für deine Hilfe :)
Schau dir erst einmal den Artikel hier im Forum an. Da wird schon fast alles erläutert: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART
Hi Für den Empfang im µC würde ich einen Ringpuffer empfehlen. Dafür brauchst du nur einen Speicherbereich und zwei Zeiger zum Lesen und Schreiben. So kannst du dir eine ISR einrichten, die empfangene Daten einfach in den Puffer an die Stelle des Schreibzeigers überträgt und den Zeiger weiter stellt. Im Hauptprogramm prüfst du Schreib und Lesezeiger. Bei Ungleichheit holst du den Wert und führst den Lesezeiger nach. Wird die Puffergrenze erreicht, setzt du den entsprechenden Zeiger wieder auf 0. Die Adressierung läuft dann indirekt über die Anfangsadresse Ringpuffer+ Zeiger. Ich hoffe, das ist nicht all zu kompliziert erklärt, aber da mein C nur aus diesem Buchstaben besteht, muss ich es bei der Beschreibung des Prinzips belassen. Es sei denn, du möchtest mal eine richtige Sprache sprechen, dann kommt Assembler... ( und natürlich nun auch die Diskussion zu Sprachen) ok, nicht ernst nehmen. Um deine Laufschrift unabhängig zu machen, ist es auch sinnvoll, den Text in einem Textpuffer zur Ausgabe aufzubereiten. Ist aber speicherintensiv. Wenn du den Text vielleicht ins EEProm packst, bist du frei vom PC und die Laufschrift arbeitet dann autark. Gruß oldmax
DO1SKU schrieb: > Oh super. Allein der "Gedankenanschub" das ich keine 2 UARTS brauche. > Hat mir schon ganz schön weiter geholfen :) Wie sind denn die Baudrate und Framekonfiguration deiner "Box" und vom Display? Sind die unterschiedlich, dann mach das zwar die Verwendung mit einem UART nicht unmöglich, erschwert die Sache natürlich und es ist nur noch Halbduplex möglich. Sascha
Sascha Weber schrieb: > Wie sind denn die Baudrate und Framekonfiguration deiner "Box" und vom > Display? Sind die unterschiedlich, dann mach das zwar die Verwendung mit > einem UART nicht unmöglich, erschwert die Sache natürlich und es ist nur > noch Halbduplex möglich. die Laufschrift braucht ja 9600 Baud, das ließe sich notfalls auch komfortable per Software-UART umsetzen. lg Chris
Hi >Sind die unterschiedlich, dann mach das zwar die Verwendung mit >einem UART nicht unmöglich, erschwert die Sache natürlich und es ist nur >noch Halbduplex möglich. Es gibt auch kleinere AVRs mit zwei Hardware-UARTs: ATTiny1634. MfG Spess
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.