Forum: Compiler & IDEs Mit AVR über Terminal kommunizieren?


von Stomper (Gast)


Lesenswert?

Hi Leute,

ich habe vor mit meinem AVR über den PC zu kommunizieren.
Ihr erinnert euch sicher an alte Router, Telefonanlagen, Receiver etc. 
mit denen man sich via HyperTerminal verbunden hat und diese dann 
konfigurieren konnte.

Ging glaub ich über Telnet wenn ich mich nicht täusche.
Kriege ich sowas mit dem AVR hin?

Ich dachte als erstes an eine einfache UART-Übertragung wie im 
AVR-Tutorial beschrieben.
Das Problem ist nur, dass das Startmenü im richtigen Moment 
(Hyperterminal an) 1x ausgegeben wird und dann auf eine Eingabe gewartet 
wird.

Ist das so realisierbar oder gibt es da elegantere Lösungen?

Wie würdet ihr das machen?

Gruß
Stomper

von Oliver (Gast)


Lesenswert?

Geht alles. Schließlich war das jahrelang Stand der "Netzwerktechnik". 
VT100/200/300, seriell am Host :-)

Ich würde dafür aber nicht hyperteminal am PC erwenden, sondern mir ein 
Terminalprogramm suchen, daß die o.a. VTxxx besser emuliert. Dann noch 
eine Tabelle mit den esc-Steuerzeichen-Sequenzen gesucht, und schon kann 
es mit den Menus losgehen.

Schau mal in die Procyon avrlib, da gibt es schon fertige Module dafür 
(leider ist der Sourcecode nicht mehr downloadbar, aber vielleicht 
findest du ja noch eine Version irgendwo im Netz)

Oliver

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Oliver wrote:
> Schau mal in die Procyon avrlib, da gibt es schon fertige Module dafür
> (leider ist der Sourcecode nicht mehr downloadbar, aber vielleicht
> findest du ja noch eine Version irgendwo im Netz)

Bei mir funktioniert dieser Link noch
http://hubbard.engr.scu.edu/embedded/avr/avrlib/

dann unten unter dem rot markiertem Satz das ZIP-File.

Vielleit gibt es Download-Probleme, wenn man Direktlinks benutzt und 
nicht über die Einstiegsseite kommt. Oder frühere Probleme wurden 
inzwischen gefixt.

von Christian R. (supachris)


Lesenswert?

Naja, das geht auch sehr einfach ohne VT100. Hab das auf dem MSP430 auch 
mal gemacht, wenige Zeilen Code. Das Startmenü hab ich mit mit Druck auf 
die Enter Taste immer wieder ausgeben lassen. Ansonsten kannst du dir 
selber was ausdenken, wie du die Befehle sendest. Aber das ist wirklich 
pillepalle mit printf usw.

von Sebastian (Gast)


Lesenswert?

Ich habe mir da ein bisschen Code geschrieben, um per Terminal sogar ein 
Grafikdisplay zu emulieren (eigene Grafikklasse).

Ist im Prinzip supereinfach: Wenn du im Terminal "cat /dev/ttyS0" 
eingibst, erhälst du dort 1:1 die UART-Ausgabe des µC's. Du kannst so 
sogar das Terminal löschen, Cursor setzen, farbig schreiben etc...

Die andere Datenrichtung ist ebenfalls möglich, da man in Linux ja auch 
über die Konsole in /dev/ttyS0 schreiben kann. Da aber im Terminal 
leider der Zeilenpuffer aktiviert ist (d.h. eingegebene Daten werden 
erst nach Zeilenende gesendet) habe ich mir ein kleines C-Tool 
programmiert, was Tastatureingaben sofort sendet. Eventuell geht es auch 
ohne ein extra Programm, doch für mich ging das so recht schnell da ich 
einen C-Code gefunden habe der dies realisiert. Vllt lässt sich der 
Puffer aber auch direkt im Terminal deaktivieren (irgendwelche Flags der 
stdin-"Datei")

Laufen beide Programme parallel in der selben Session, so ist es dann 
auch möglich, durch Menüs auf dem AVR mit der Tastatur zu navigieren. 
(auch Pfeiltasten sind im Terminal Zeichencodes, die an den AVR gesendet 
werden)

Bei Bedarf kann ich gerne den Code posten, incl. dem C-Tool um 
Tastencodes zu senden...

Grüße,
Sebastian

von Andy (Gast)


Lesenswert?

das kann man auch einfacher mit gtkterm haben ;-)

Gruß
Andy

von Stomper (Gast)


Lesenswert?

Hi Leute,

ich hab mir nun was gebastelt.

Leider hab ich die Procyon avrlib nicht ans Laufen bekommen, kamen 
ständig Fehler beim Compilieren.

Ich hab mir aber einiges aus dem Quellcode abschauen können und nun 
klappts.

Danke an Euch.

Gruß
Stomper

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
Noch kein Account? Hier anmelden.