Im Anhang könnt ihr sehen wie ich etwas über den µC auf dem Terminal ausgeben. Jetzt möcht ich im Terminal z.B. ein Wort eingeben, mit Enter bestätigen, dann soll es an den µC geschickt werden und wieder auf dem Terminal ausgegeben werden. Leider weis ich nicht wie ich vom Terminal aus and den µC etwas Schicken kann. Bauche ich dafür spezielle Befehle innerhalb des Terminals und wenn ja welche?
Hallo, bin selber Anfänger. Aber ich meine, das dieses Kapitel hier im Tutorial sich mit dem Thema beschäftigt: http://www.mikrocontroller.net/tutorial/uart -- Martin
Leider verstehe ich das nur zum Teil. Woher weis das Terminal wenn ich Enter drücke, dass es das Wort speichern soll und brauche ich auch dafür spezielle Befehle innerhalb des Terminals?
Normalerweise werden doch die Zeichen, die du im Terminal eingibst, automatisch über die serielle Schnittstelle an den µC gesendet. Die Enter-Taste repräsentiert dabei auch nur ein spezielles Zeichen, welches du im µC auswerten mußt. Auf dem µC schreibst du am besten eine Interrupt-Routine, die bei Empfang eines Zeichens angesprungen wird (automatisch). In dieser Routine mußt du dann nur das empfangene Zeichen wieder in das Datenregister (UDR beim AVR) des UARTs schreiben, und es wird automatisch zurück an das Terminal gesendet. Jens
Genau, alles was du eingibst wird wieder ausgegeben und der cursor wird einen nach rechts geschoben. Siehe hierzu die Application Note von Atmel mit dem VT100 compatible Terminal. Grüße
Zum Senden muss ich ja das TXEN aktivieren, beim Empfangen das RXEN. Wann weis ich jetzt wann das Senden vorbei ist, damit ich das RXEN aktivieren kann?
na wenn du Enter drückst. Das wolltest du doch? Wenn der µC das empfangene Zeichen als "Enter" interpretiert, dann kann er eine Ausgabe-Schleife ausführen.
> Zum Senden muss ich ja das TXEN aktivieren, beim Empfangen das RXEN. > Wann weis ich jetzt wann das Senden vorbei ist, damit ich das RXEN > aktivieren kann? UART ist voll duplex, kann also quasi gleichzeitig senden und empfangen. Beides geschieht im Hintergrund per Hardware. Um (vom AVR aus) zu senden, schreibst du (nach Überprüfen der Sendebereitschaft) das zu sendfende Datenbyte ins UDR-Register. Wurde (im AVR) ein Byte empfangen, so wird das zugehörige Flag (siehe Datenblatt, UART-Register) gesetzt und ggf ein Interrupt ausgelöst. In der zugehörigen ISR liest man dann das empfangene Byte aus UDR aus. Das Thema U(S)ART wurde in den letzten Tagen hier im Forum ausgiebig diskutiert (auch mit Codebeispielen), blättere doch mal etwas zurück. ...
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.