Forum: Mikrocontroller und Digitale Elektronik Atmega644 RS323 auf Putty


von Andreas O. (ottsen)


Angehängte Dateien:

Lesenswert?

Hallo Zusammen,
ich bin ein Neuling mit Atmelcontroller.
Ich versuche momentan eine ADC durchzuführen und über RS323--> USB 
Converter auf meinen Laptop zu übertragen.
Die ADC Wandlung funktioniert soweit, da ich mir auch gleichzeitig mit 9 
LED´s grob den Wert anzeigen lassen.
Meine übertragung zu Putty passt soweit auch.
Mein einziges Problem ist, dass ich bei Putty nur Hieroglyphen sehe.
Genauer gesagt, wenn ich bei Putty "ISO-8859-1:1998 (Latin-1, West 
Europe)"
einstelle, bekomm ich sowas: xøøøxxxxxøxxxxøøøxøx
bei anderen Formaten wie "UTF-8" bekomm ich 
sowas:▒▒▒▒▒▒x▒▒▒x▒x▒▒▒▒▒▒▒▒▒▒▒
Wo liegt mein Fehler.
Ich habe meiner Meinung nach richtig gewandelt.
Mein Source Code hab ich in den Anhang gepackt.
Vielen Dank im Voraus

von Michel (Gast)


Lesenswert?

Verwendest du einen Quarz für deinen Controller und hast du die 
Übertragungsgeschwindigkeit bei Sender und Empfänger gleich eingestellt?
Deine Daten sehen so aus, als ob er Empfänger zu schnell ist.

von Peter II (Gast)


Lesenswert?

ein paar dinge sind auf jeden Fall falsch oder ungünstig

in USART_Puti

dtostrf ist für double/float - du hast aber int
dein String s ist nur 3 zeichen lang, das reicht aber nicht wenn du 3 
stellen haben willst, es fehlt platz für das 0 byte.




Dann Prüfe erstmal ob die übertragung überhaupt geht.

USART_Puts("Hallo World\n");

von Andreas O. (ottsen)


Lesenswert?

Ich habe einen externen Oszillator.
Die Bautrate des µC und die von Putty ist auf 9600 Baud eingestellt.

von Andreas O. (ottsen)


Lesenswert?

Hab jetzt mal den Rat von Peter II verfolgt.
Bekomm was über Putty auf meinen Bildschirm.
Sieht wie folgt aus:

xøxxxøøxøxøøøxx

Wenn ich die Baudrate bei Putty auf zB 4800 verändere, verändern sich 
die Zeichen in äo`....... Aber immernoch total unplausibel.
Liegts an meiner Wandlung oder der Baudrate?
Vielen Dank für eure Hilfe

von Peter II (Gast)


Lesenswert?

Andreas Ott schrieb:
> Liegts an meiner Wandlung oder der Baudrate?

der Baudrate oder an der falschen Frequenz von deinem µC - Fuse Bits!

von Matthias (Gast)


Lesenswert?

Halte doch mal ein Oszilloskop an die Tx-Leitung vom Controller und miß 
die Bitdauer.

von Peter II (Gast)


Lesenswert?

dein Problem ist das du

#define F_CPU 16000000UL

das nach der #include "USART.h" machst und in USART.h steht drin.

#ifndef F_CPU
#warning "F_CPU war noch nicht definiert, wird nun nachgeholt mit 
4000000"
#define F_CPU 4000000UL  // Systemtakt in Hz - Definition als #endif


kann es sein das du die warnung ignorierst? Wer ist eigentlich auf die 
dumme Idee gekommen dort einfach 4Mhz einzutragen wenn nichts drin 
steht?

von Andreas O. (ottsen)


Lesenswert?

Ich hab die Berechnung von nem Forum raus.
Jetzt hab ich die 4MHz mit 16MHz ausgetauscht, da ich nen 16MHz Oszi 
habe.
Aber jetzt tut sich bei Putty nichts mehr.
Kann das sein dass ich da was falsch verstehe?

von Peter II (Gast)


Lesenswert?

Andreas Ott schrieb:
> Jetzt hab ich die 4MHz mit 16MHz ausgetauscht, da ich nen 16MHz Oszi
> habe.
du sollst nichts austauschen, sondern es richtig machen. Das

#define F_CPU 16000000UL

muss als erstes gemacht werden, wichtig vor include UART und vor include 
delay sonst stimmen alle zeiten nicht. Normalerweise sollte man es in 
dem makefile mit aufnehmen und nicht in den code schreiben, dann weiss 
man wenigistens das es an alles stellen richtig ist.

Hast du nun ein Oszi an deinem µC oder ein Quarz? Weiss das Atmel auch 
schon davon - hast du die fuse richtig einstellt?

von Andreas O. (ottsen)


Lesenswert?

Ich arbeite mit einem 16MHz Quartz auf meinem Board.
Fuse bits habe ich defaultmäßig eingestellt.
Clock Source = int RC Osc.; Start up time: 6 CK +65ms
kann aber keinen Ext OSC mit 16MHz auswählen.
Wie gebe ich im Makefile direkt die F-CPU an?
Danke für deine Mühe

von Stefan E. (sternst)


Lesenswert?

Andreas Ott schrieb:
> Fuse bits habe ich defaultmäßig eingestellt.
> Clock Source = int RC Osc.;

Also läuft er mit 1 MHz und nicht 16 MHz.

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.