Hallo zusammen, ich arbeite mich durch das Tutorial durch... und bin beim Abschnitt UART hängen geblieben. Die erste Programm-Übung (Text via AVR and Hyperterminal schicken) geht problemlos. Bei die zweiten Übung: uart-receive.asm (Zeichen vom Hyperterminal an den AVR schicken bleibe ich hängen... Ich benutze allefürsich den 2313 anstatt des uart-mega8 wie vorgegeben. Vielleicht kann mir mal jemand mit der Nase auf meinen Fehler stossen..!? habe folgendes gemacht: .include "...2323..." .def temp = r16 ;stackpointer ldi temp, low(ramend) out spl, temp ;port D = ausgang ldi temp, 0xff out ddrd, temp ;baudrate ldi temp, 10000000/(9600*16) - 1 out ubrr, temp ;usrt empfang aktivieren sbi ucr, txen ;receiveloop loop: sbis ucr, rxc rjmp loop in temp, udr out portd, temp rjmp loop und nichts tut sich! wo habe ich einen Fehler gemacht? was habe ich vergessen? - vom hyperterminal wird nichts angenommen, - nur die led PD1 leuchtet ständig Wäre für jeden hinweis dankbar!!!! Erik.
da ist der fehler sbi ucr, txen du aktivierst das senden, nicht empfangen, senden ist auf pd1, deswegen leutet das. im tutorial wird rxen verwendet nicht txen :)
oohjeh-ojeh!!! das tut weh!! lesen/schreiben sollte man können... nichtdestotrotz: habe jetzt "sbi ucr, rxen" eingesetzt, jetzt leuchtet zwar die LED-0 aber das Ergebnis ist dasselbe: nix tut sich!!
Problem erkannt! muss nur noch herausfinden warum!??? melde mich später wieder. Danke für Deine Mühe!
Dachte, Problem wäre meine Schnittstelle. Darum habe ich die Schaltung (Tutorial/Uart) auf eine Lochrasterplatine separat nachgebaut (ohne Lötfehler!) und ohne weitere Zusätze, also gemäss Bild. allefürsich mit einem 2313 anstatt Mega8. Programm, wie 28.08 + korrektur 29.08 (TXEN/RXEN). Egal welche Buchstabe ich über das Hyperterminal eingebe, an Pins PD2 bis PD6 tut sich nicht. Pegel bleibt auf low, gemessen gegen Masse. Text von AVR and Hyperterminal schicken geht. Ist evtl im Programm noch weiteres zu berücksichtigen wegen der Änderung Mega8-2313 ?? Im original listing steht auch noch "Frame-Format...usw". Assemblierung liefert hier "undefined variable". Irgend eine Idee? oder Anregung/Empfehlung? Ich steh auf'm Schlauch... Erik
da brauchst du beim 2313 nur das ; Frame-Format: 8 Bit ldi temp, (3<<UCSZ0) out UCSRC, temp keine ahnung ob das daran liegen könnte weil ich icht weiss was da standardmässig drin ist aber einen versuch ist es wert.
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.