Hallo, Ich arbeite gerade das Tutorial durch und bin nun bei UART angekommen. Ich habe das Hyper Terminal eingerichtet und kann wenn ich z.B. das a drücke auch ein a sehen. Kryptische Zeichen habe ich nur sehr selten, aber das soll ja was mit der Baudrate zu tun haben wie ich gelesen habe. Nun aber mein Verständnisproblem: Im Tutorial steht, daß in einer Endlosschleif die Zeichenkette 'Test!' an den PC übertragen wird. Wo genau soll denn diese Zeichenkette stehen? Ich würde ja ganz gerne Zeichen übertragen und nicht im Hyper Terminal meine Tastatur testen. Kann mal bitte jemand Licht in das Dunkel meines Verständnis bringen? Grüße anfänger
Von welchem Tutorial sprichst du? Es gibt hier deren zwei Einmal das AVR-Assembler Tutorial, das andere ist das C Tutorial Im Assembler Tutorial ist es diese Sequenz
1 | loop: ldi temp, 'T' |
2 | rcall serout ; Unterprogramm aufrufen |
3 | ldi temp, 'e' |
4 | rcall serout ; Unterprogramm aufrufen |
5 | ldi temp, 's' |
6 | rcall serout ; ... |
7 | ldi temp, 't' |
8 | rcall serout |
9 | ldi temp, '!' |
10 | rcall serout |
11 | ldi temp, 10 |
12 | rcall serout |
13 | ldi temp, 13 |
14 | rcall serout |
15 | rjmp loop |
die den Text Buchstabe für Buchstabe versendet. Und da das ganze in einer Schleife passiert, wird der Text immer wieder wiederholt.
das assembler tutorial meine ich und meine frage war wo genau die Zeichenkette Test! zu sehen ist? Im Hyper Terminal Fenster? grüße
anfänger wrote: > das assembler tutorial meine ich > > und meine frage war wo genau die Zeichenkette Test! zu sehen ist? > Im Hyper Terminal Fenster? Ach so. Ja natürlich. Wo denn sonst? Dieser ganze Tutorialabschnitt dreht sich doch letztendlich nur darum, dass das Anzeigegerät am anderen Ende der Leitung etwas ausgibt, bzw. das das was am anderen Ende der Leitung getippt wird über die Leitung zum AVR-Programm transferiert wird.
ok dann hab ich das wenigstens richtig verstanden und ich habe das problem, daß der Fehler irgendwo anders liegt, denn ich sehe kein Test!. Ich versuche schon seit 3 Tagen dieses kleine Programm zum laufen zu bekommen und bin langsam mit meinem Latein am Ende. Ich habe die AVR Checkliste (http://www.mikrocontroller.net/articles/AVR_Checkliste#UART.2FUSART) durchgearbeitet und ich kann einfach den Fehler nicht finden, also werde ich wohl weiter suchen müssen. Grüße
hallo, doch mit dem Scope kann ich ein Signal messen. Deshalb glaube ich, daß das Hyper Terminal nicht so funktioniert wie es wohl soll. Ich habe hier im Forum gestöbert und alles so eingestellt wie ich es machen soll. (Parität, stop.., und flußkontrolle usw.) Ich weiß echt nicht mehr was ich noch tun soll. Ich werde nochmal ein wenig mit der Baudrate rumspielen um sicher zu gehen, daß der Fehler wo anders liegt. Grüße
> Deshalb glaube ich, daß > das Hyper Terminal nicht so funktioniert wie es wohl soll. Viele schimpfen zwar auf Hyperterminal, aber auf eines kann man sich verlassen: Das wofür es designed wurde, beherrscht es. > doch mit dem Scope kann ich ein Signal messen. Das ist schon mal gut. Kannst du das Signal auch noch nach dem RS232 nachweisen? Es gibt jetzt noch ein paar Fehlermöglichkeiten. Eine davon ist das Kabel. Vertausch einfach mal auf einer Seite die Pins 2 und 3. Hintergrund: Es gibt 2 Arten von Kabel. Die gekreuzten und die nicht gekreuzten. Bei einem gekreuztem Kabel ist der Pin 2 mit dem Pin 3 am anderen Ende des Kabels verbunden (und umgekehrt) bei einem nicht gekreuzten ist es ein direkter Durchgang. Wenn du das falsche Kabel hast, dann kann nichts gehen, weil der Sendeausgang vom AVR mit dem Sendeausgang des PC verbunden ist und nicht, wie es sein muss, Sendeausgang mit Empfängereingang. Sobald du das richtige Kabel hast, sollte sich zumindest am Hyperterminal irgendwas tun. Wenn du gleich den richtigen Text siehst: Gratulation. Wenn da aber wirre Zeichen durchlaufen, dann ist in praktisch allen Fällen die Prozessorfrequenz nicht dort wo sie sein soll. zb. Du hast zwar einen Quarz an den AVR angeschlossen, der ist aber nicht aktiv und der Prozessor arbeitet immer noch mit seinem werkseitig eingestellten 1Mhz RC-Oszillator.
PS: Ob das Kabel korrekt ist, kann man auch mit einem einfachen Test prüfen: Nimm den AVR Prozessor aus seinem Sockel (der ist doch hoffentlich gesockelt). Dann verbindest du im Sockel den Tx Pin mit dem Rx Pin laut Pinbelegung deines Prozessors (über welchen reden wir eigentlich?) mit einer Drahtbrücke. Wenn du nun im Hyperterminal auf der Tastatur tippst (nicht vergessen im HT den 'connect Button zu drücken. Das ist der mit dem Telephon und dem aufgelegten Hörer) dann müssen die Zeichen von deiner kastrierten Schaltung zurückkommen. Zum Gegentest mal die Brücke entfernen: Das Echo muss ausbleiben. Wenn das so funktioniert, hast du den kompletten Verbindungsweg Kabel und RS232 geprüft und als funktionsfähig erkannt. Dann bleibt nur noch die Taktfrequenz als mögliche Ursache.
hallo, ES funktioniert!!!!! Danke für eure Hilfe! Es lag an dem RS232 Kabel. Am Ende kam nichts mehr an.(Hatte natürlich vorher nur am MAX gemessen). Hab mir ein neues Kabel gekauft und nun schnurrt die Katze! Grüße und Danke nochmal
@ anfänger (Gast) >Es lag an dem RS232 Kabel. Am Ende kam nichts mehr an.(Hatte natürlich >vorher nur am MAX gemessen). Dann war das >Ich habe die AVR Checkliste >(http://www.mikrocontroller.net/articles/AVR_Checkl...) >durchgearbeitet und ich kann einfach den Fehler nicht finden, also werde eine falsche Aussage. In der Ruhe liegt die Kraft. MFG Falk
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.