Hallo, habe Probleme mit dem Uart.
Es kommt nur Schrott raus! Siehe Screenshot aus dem Bray-Terminal. Ok, Ich habe einen Mega8 mit nem 8MHz Oszillator. Verwende einen Max232N von Texas Instruments. Die Schaltung entspricht fast dem AVR-Tutorial von www.mikrocontroller.net. Lediglich der Kondensator an Pin 2 muss laut TI Datenblatt von V+ auf GND gelegt werden. Als Testprogramm habe ich den Assamblercode von besagtem Tutorial genommen. Es soll das Wort TEST! in Endlosschleife ausgeben (am PC). Wie gesagt rauskommen tut nur Schrott. Und das Windows Hyper Terminal streikt komplett. Die Baudraten habe ich auch schonmal durchprobiert. (9600-1200) Ich habe jetzt schon alles zum zweiten mal geprüft. Hier der Code:
Danke schonmal für mögliche Anregungen!Code:.include "m8def.inc" .def temp = r16 .equ CLOCK = 8000000 .equ BAUD = 9600 .equ UBRRVAL = CLOCK/(BAUD*16)-1 ; Stackpointer initialisieren ldi temp, LOW(RAMEND) out SPL, temp ldi temp, HIGH(RAMEND) out SPH, temp ; Baudrate einstellen ldi temp, LOW(UBRRVAL) out UBRRL, temp ldi temp, HIGH(UBRRVAL) out UBRRH, temp ; Frame-Format: 8 Bit ldi temp, (1<<URSEL)|(3<<UCSZ0) out UCSRC, temp sbi UCSRB,TXEN ; TX aktivieren loop: ldi temp, 'T' rcall serout ; Unterprogramm aufrufen ldi temp, 'e' rcall serout ; Unterprogramm aufrufen ldi temp, 's' rcall serout ; ... ldi temp, 't' rcall serout ldi temp, '!' rcall serout ldi temp, 10 rcall serout ldi temp, 13 rcall serout rjmp loop serout: sbis UCSRA,UDRE ; Warten bis UDR für das nächste ; Byte bereit ist rjmp serout out UDR, temp ret ; zurück zum Hauptprogramm







Zitieren

Lesezeichen