Hallo, ich versuche schon seit 2 Tagen ein Zeichen zum Atmega8 zu senden und die "Rückmeldung" des Zeichens am PC zu bekommen. der "Fehler" ist immer gleich : Meine Eingabe am Hyperterminal oder Putty : 123 Ausgabe : g3f am Quellcode kann es eigendtlich nicht liegen, da der Fehler auch bei a)sonstiger Quellcode (Internet) b)Tutorial c)Peter Fleury (auf Atmega8, 16 MHz geändert) d)eigener Quellcode auftritt. die Baudrate / wurde richtig eingestellt Quarz 16 Mhz das senden funktioniert einwandfrei wo ist mein Denkfehler? Danke Stephan
>wo ist mein Denkfehler?
Das wir einfach so in unserer Glaskugel schauen können und Deinen Fehler
finden können.
Poste mal die relevanten Teile des Quellcodes.
Hallo Herr Tunich Gut, am Quellcode kann es nicht liegen, da ich verschiedene "Quellcodes" mit dem gleichen "Fehler" habe. Gruß Stephan
Das Standardvorgehen ist, das jeweils gesendete Zeichen mit dem Scope anzuschauen.
Das Standardvorgehen ist bei solchen Fehlern, die irgendwo in Software oder Hardware liegen können, erstens den Quelltext mitzugeben und zweitens die Hardware drumrum zu beschreiben (Schaltplan etc.). Die einzige sinnvolle Antwort auf die Frage, so wie sie jetzt formuliert ist, lautet: Lies dir die AVR Checkliste durch.
>am Quellcode kann es eigentlich nicht liegen
Das haben wir hier schon tausendmal gelesen. Wir haben aufgehört das zu
glauben. Rein aus praktischen Gründen nicht etwa weil wir Dir nicht
glauben.
Übrigens nenne ich mich "Tunichgut" und nicht "Herr Tunich gut". ;-)
Andere frage: Passt die Baudradte und die Anzahl der Start/Stop/Partiätsbits=
Hallo, ich bin leider noch nicht weiter ich habe beim Originalquellcode von Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury uartlibrary.zip das Makefile angepasst auf : Atmega8 Quartz 16 MHz: -----------------------------Makefile Auszug--------- # MCU name #MCU = at90s8515 MCU = atmega8 # Processor frequency. # This will define a symbol, F_CPU, in all source code files equal to the # processor frequency. You can then use this symbol in your source code to # calculate timings. Do NOT tack on a 'UL' at the end, this will be done # automatically to create a 32-bit value in your source code. F_CPU = 16000000 ------------------------------ ---------Test_uart.c (Auszug) Letzten Zeilen-------- * send received character back */ uart_putc( (unsigned char)c );//geht nicht dh: der Atmega8 sendet ein falsches Zeichen zurück. uart_putc( 'A' );//geht d.h : der Atmega8 sendet A zurück. (richtig) ------------------------------ mit anderen Quellcodes sendet der Atmega8 exakt das gleiche falsche Zeichen zurück. ich hatte auch nie Probleme mit der Uart, da der AVR immer nur eine Meldung zum PC schicken mußte. Beispiel : Habe fertig oder so oder Radigs Webserver mit Atmega32 lief auch mit 16 MHz Quarz prima nur jetzt soll der ATMGA8 - 16 ein Zeichen vom PC bekommen und dieses wieder zurückschicken (zur Kontrolle) update WINAVR von 2003... auf 2008... brachte auch keinen Erfolg und keine Fehlermeldung. Fuse Ponyprog, nehm ich immer : Haken bei Bootsz1, Bootsz0, CkOPT bis dann Stephan
Stephan wrote: > das senden funktioniert einwandfrei Dann scheint die Lib (und dein Controller) ja zu funktionieren. > wo ist mein Denkfehler? Dein Denkfehler besteht darin, dass du denkst, dass es Sinn macht, uns den Quellcode vorzuenthalten. Gruß, Magnetus
Etwas phantasielos der Frager... ein Scope scheint nicht vorhanden zu sein. Wenn alles so waere wie gedacht so wuerd's ja gehen, tut es aber nicht. 1) Bei 16MHz Clock hat man nicht alle Baudraten zur Verfuegung. Mit dem datenblatt nachpruefen. 2) Lass der AVR mal einen konstanten String an den PC senden, zB '1234567890', das wuerde besagen, dass der Clock und die Baudreate stimmt.
Hallo , der Quellcode ist oben als Link angegeben und beinhaltet : makefile test_uart.c Hauptprogramm uart.h uart.c und stammt von Peter Fleury, hier im Forum bekannt meine tolle Leistung: makefile geändert : F_CPU und MCU sonst nichts vieleicht hat jemand ne HEX : ATMEGA8 16 MHz 9600 Baud möchte am Hyperterminal 1 Zeichen eingeben und dieses auch zurückbekommen. bevor ich mich noch weiter ärgere: wie macht ihr das ? mal fehlt ein passender Quarz, mal eine Z-Diode mal ein Sockel alles Kleinkram für paar Cent Versandgebühr 8,00 € in unserer Stadteil gibt 40 Apotheken, 12 EinEuro Läden, etliche Mobilfonshops Gruß Stephan
Hallo, zu Autor: 3360 (Gast) "2) Lass der AVR mal einen konstanten String an den PC senden, zB '1234567890', das wuerde besagen, dass der Clock und die Baudreate stimmt." hab ich gemacht das funktioniert gut nur der AVR soll keinen fest eingebrannten String senden, sonder das Zeichen welches ich am Hyperterminal oder Putty eingebe, zurücksenden Gruß Stephan
Hast du die Masse (auch GND oder 0V genannt) deiner Schaltung mit der Masse der RS232 Schnittstelle des PCs verbunden? Eine kurze "Analyse" deiner Angaben: Binär: Gesendet (PC -> µC): 123 00110001 00110010 00110011 Empfangen (µC -> PC): g3f 01100111 00110011 01100110 Ganz so weit sind die beiden Datenpakete nicht voneinander entfernt. Mal sind die Bytes nach links verschoben, mal sind Bits gekippt, mal beides. Sieht für mich aufs Erste mal nach einem Hardwareproblem aus (siehe oben). Gruß, Magnetus
Stephan wrote: > der Quellcode ist oben als Link angegeben Ich sehe nirgends nen Link zum Quelltext, nur einen zu ner Startseite. Ist das eine Wette, es dem Helfer so schwer wie möglich zu machen? > und stammt von Peter Fleury, hier im Forum bekannt Ja der Name taucht hier öfters auf, persönlich bekannt ist er mir aber nicht. Ich glaub auch nicht, daß das ne Rolle spielt. Peter
Hallo, vielen Dank für den Einsatz. die Hardware ist defekt ! oder auch nicht ! Autor: Magnus Müller (magnetus) Datum: 23.06.2008 01:10 Hast du die Masse (auch GND oder 0V genannt) deiner Schaltung mit der Masse der RS232 Schnittstelle des PCs verbunden? Stephan: GND sind bei mir immmer verbunden, wäre sonst ein typischer Anfängerfehler gewesen. aber : nachdem GND am laufendem "System" getrennt!! habe : Schwups, alles funktioniert Jetzt hab ICH ein Problem (mein Weltbild bricht zusammen) Stephan
>Stephan: >GND sind bei mir immmer verbunden, wäre sonst ein typischer >Anfängerfehler gewesen. > >aber : >nachdem GND am laufendem "System" getrennt!! habe : >Schwups, alles funktioniert So, jetzt halt mal den GND vom PC in die linke Hand, den GND vom AVR in die Rechte. Kitzelts, zwickts? Alternativ kann ein Multimeter genommen werden: die angezeigte Spannung sollte (AC und DC) um 0V sein. Falls es kitzelt oder eine Spannung angezeigt wird: Das sieht nach einer Masseschleife aus. Dann stellen sich die Fragen: Wie sieht diese funktionsbeeinträchtigende Masseverbindung aus: Pin X nach Pin Y...Schirm...? Sind der PC und deine Schaltung aus derselben Steckdose versorgt?
Hallo, da ich diesen Thread sauber beenden möchte: Es lag am (defekten)Pegelwandler, der Atmega8 und PC verbindet. Nur dadurch das ich ein neues Projekt begonnen hatte, kam dieser Fehler zum Vorschein. eben Pech. vielen vielen Dank Stephan #
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.