PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] wirrwar nach einiger Zeit über ser. Ausgang



oderlachs
24.07.2013, 19:28
Ich habe mal ein AVR-GCC-Testprojekt(AVR-Studio4.xx) HIER (http://robot.oderlachs.de/ftp/lib_test.zip) als Zip abgelegt, es ist nur zum Testen meiner Lib(s) , aber nach anfänglicher richtiger serielle Ausgabe kommt nach ner Weile nur noch Wirrwar im Terminal an. Könnt da bitte mal wer nach schauen und mir vielleicht auch helfende Ratschläge geben ?

Gruss und Danke

Gerhard

Valen
24.07.2013, 23:59
Können wir auch deine Terminal Ausgabe sehen? Sonnst ist es schwierig zu sehen wo es schief geht.

oderlachs
25.07.2013, 08:29
Natürlich kann ich das...: Hier ist das Abbild (http://robot.oderlachs.de/forum/rn_forum/wirre_zeichen.jpg)
http://robot.oderlachs.de/forum/rn_forum/wirre_zeichen.jpg

Das war mit Atmega16

Hier die Ausgabe mit Atmega32 (http://robot.oderlachs.de/forum/rn_forum/wirre_zeich_atm32.jpg), komisch wieder anders

Danke für die Hilfe

Gerhard

Valen
25.07.2013, 10:26
Kannst du diesen Ausgabe auch im Hexadezimal anzeigen lassen? Sind die Einsprungen von CUY.WRV durch ein gesendete Line Feed. Oder ist das eine Reihe von unsichtbaren Zeichen.


Ist die Ausgabe von einer Start von das Programm, oder sinds das mehrere versuchen das Programm zu starten wobei Änderungen im Lib/Programm gemacht sind? Weil es nur Einmal "Hallo AVR GCC" senden soll pro Durchlauf von den while-Schleife. Die Ausgabe von den Atmega16 stimmt nicht mit dein Hoch-geladenes Lib.

Ich vermute die "/n/r" im puts Funktion werden nicht umgewandelt in Line Feed und Carriage Return. Und es geht weiter mit absenden von den Speicherplatzen hinter den Tekstreihe bis es ein wert 0 bekommt. (Sehe: Null-Terminierte String (http://www.rn-wissen.de/index.php/C-Tutorial#Strings_.28Zeichenketten.29))

markusj
25.07.2013, 10:55
Deine Bibliothek ist in Ordnung, der Fehler ist ein Pufferüberlauf von "x" in deiner Testanwendung weil du als Radix 2 gewählt hast. Damit reicht der Platz nicht mehr für die abschließende 0x0 und du liest Daten aus dem Niemandsland.

(Der Simulator in AVR Studio ist manchmal wirklich hilfreich!)

Grüße,
Markus

Valen
25.07.2013, 11:26
Markusj hat recht. X, 2555 Dezimal, braucht 12 Zeichen für den Darstellung als Binair. Es gibt aber nur 7 im s.

oderlachs
25.07.2013, 16:45
Ich danke Euch Beiden sehr, habe daraus wieder gut gelernt !!!

Ja das Mit dem Simulator, Marcus, ich packe es einfach nicht das in "Betrieb " zu bringen.Muss mich da wohl zu blööd anstellen, genau so wie ich mit AVR Studio 5 u.6 nicht umgehen kann, weiss der teufel weshalb, bekomme da nix "gebacken" ;)

Ich schaue mir das nochmals im Listing genau an auf was Ihr mir da aufmerksam gemacht habt, nur heut, "bei +30° im Kühlschrank" will ich mal etwas verschnaufen , auch mein Kopf ;)

Danke und Gruss
Gerhard

Resümee:

Habe "s" auf 16Byte vergrössert und alles OK !!!

Danke nochmals für alle Hilfe !!!