Forum: Mikrocontroller und Digitale Elektronik Arduino IDE vs. Putty


von Dennis (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich habe ein Problem bei der Verwendung von Putty. Ich auf dem Arduino 
Mega ein MENU aufgebaut. Mit "z\r" kommt man von jedem Untermenü wieder 
zurück ins Hauptmenu. Bei der Verwendung der Arduino IDE funktioniert 
alles ohne Probleme.
Anders mit Putty. Hier funktioniert es nur sporadisch 
(Speicherüberlauf?!). Ich habe ein Oszi angehangen und Teilweise habe 
ich mit Putty eine Art delay.
Ich habe zwei Bilder vom Oszi hochgeladen (1 - z\r gesendet über Serial 
Monitor Arduino IDE, 2 - z\r gesendet über Putty, wo es nicht 
funktioniert hat).

Vielleicht kann mir ja jemand weiterhelfen.

von ck (Gast)


Lesenswert?

Putty schickt jedes einzelne Zeichen sofort raus.
Man kann aber auch einstellen ob erst die Ganze Zeile beim drücken von 
Enter raus gesendet wird.

Auch kann man einstellen ob ein \n\r oder nur ein \n gesendet wird. Wenn 
man Enter drückt.

Und natürlich auch wie empfangende \r\n oder einzelne \r und \n 
interpretiert werden.

Des weiteren gibt es das lokale Echo wenn du die Zeichen sehen willst 
die du eingibst. Normaler Weiße sendet die Gegenstelle jedes Zeichen als 
echo zurück, das man eingibt. Wenn ich eine Terminal in einem µC 
implementiere, mach ich das nicht, und aktiviere das Lokale Echo in 
Putty.

Wie der "Serial monitor" aus der Arduino IDE arbeitet weiß ich nicht.

von M. K. (sylaina)


Lesenswert?

ck schrieb:
> Putty schickt jedes einzelne Zeichen sofort raus.

Macht im Grunde jede UART/RS232 Übertragung da jedes Byte mindestens 1 
Start- und 1 Stopbit enthält. Hier wäre interessant wie das Projekt die 
Daten des UART verarbeitet. Wartet es auf einen entsprechendes 
Befehls-Ende-Zeichen oder wartet es eine geraume Zeit ab bis es sich um 
die Daten des UART kümmert/auswertet?

ck schrieb:
> Normaler Weiße sendet die Gegenstelle jedes Zeichen als
> echo zurück, das man eingibt.

Öhm, nein. Machen sie normalerweise nicht bzw. nur, wenn die Gegenstelle 
entsprechend eingestellt/programmiert ist. Normalerweise würde man nicht 
zurückschicken was man empfangen hat sondern, um zu prüfen ob das, was 
man empfangen hat, auch richtig ist, das Parity-Bit benutzen und 
auswerten. Dafür ist es immerhin da ;)

von M. K. (sylaina)


Lesenswert?

Dennis schrieb:
> Vielleicht kann mir ja jemand weiterhelfen.

Sieht mir schwer danach aus, dass es in der Tat, wie ck schon schrieb, 
darauf ankommt, wie die Daten konkret gesendet werden und somit kommt es 
wahrscheinlich darauf an, wie dein Projekt die Daten auswertet, die über 
den UART ankommen. Die generellen Einstellungen hast du schon verglichen 
sodass du sicher sein kannst, dass die Arduino-IDE und auch Putty 
zumindest gleich eingestellt sind? Nicht dass einer der beiden was 
anhängt, was der andere nicht macht ;)

von EAF (Gast)


Lesenswert?

ck schrieb:
> Wie der "Serial monitor" aus der Arduino IDE arbeitet weiß ich nicht.

Der sendet in der Regel Zeilenweise. Nach Druck auf dir Return Taste.

von ck (Gast)


Angehängte Dateien:

Lesenswert?

Das Senden der Zeile erst nach Drücken der Enter-Taste kann man mit der 
Einstellung "Local line editing" aktivieren

von Dennis (Gast)


Lesenswert?

Hallo,
ich habe das Problem gestern Nacht noch finden können. Es war ein Timing 
Problem vom Serial Read. Durch ein längeres Delay von 10ms anstatt 3, 
warte ich jetzt etwas länger, dass der serielle Buffer mehr Zeit 
bekommt, sich zu füllen.
Trotzdem interessant, warum das über die IDE immer funktioniert und bei 
Verwendung von Putty öfters ein Timing Problem auftritt?!

von Horst (Gast)


Lesenswert?

Dennis schrieb:
> Trotzdem interessant, warum das über die IDE immer funktioniert und bei
> Verwendung von Putty öfters ein Timing Problem auftritt?!

Du tippst zu langsam. Wenn Dein Timeout abgelaufen ist, bevor alle 
Zeichen im Buffer stehen kann die Zeichenkombination nicht erkannt 
werden.

von EAF (Gast)


Lesenswert?

Dennis schrieb:
> Trotzdem interessant, warum das über die IDE immer funktioniert und bei
> Verwendung von Putty öfters ein Timing Problem auftritt?!

Nööö....
Wird wohl an deinem Code liegen.

Alter Code geheim.
Neuer Code geheim-
Und Delay ist die Lösung bei Eingabeproblemen.

Nöö...
Ich kann mir nicht vorstellen, dass das interessant ist.
Auch für dich nicht.

Denn wenn du es wirklich wissen würden wolltest, dann hättest du etwas 
gezeigt und nicht nur geschwafelt.

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.