Gast
#100072
Hallo, ich bin ziemlich neu mit microcontrollern, also ich habe einen ATmega 162 mit externem 16mhz takt und möchte dass er daten per uart an meinen pc sendet, später auch ma zurück wie im tutourial. Klingt ja eingeltich einfach aber egal was ich gemacht hab, es funktionierte entweder garnnicht oder ich bekam nur zeichen in hex auch 00 und 80, ich habe schon viele andere beiträge durchgelesen aber genutzt hats irgendwie nix, troz dass ich jetzt schon seit 3 tagen rum probiere. Ich habe auch in einem anderen forum einen beitrag gefunden bei dem jemand genau das selbe problem hat wie ich aber wie der das da gelöst hat verstehe ich ned so ganz: http://www.avrfreaks.net/phpBB2/viewtopic.php?t=19455&highlight=atmega162 hier noch ein so nen code bei dem ich immer die falschen zeichen bekomm... .include "m162def.inc" .def temp = r16 .equ CLOCK = 16000000 .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 UBRR0L, temp ldi temp, HIGH(UBRRVAL) out UBRR0H, temp ; Frame-Format: 8 Bit ldi temp, (1<<URSEL0)|(3<<UCSZ00) out UCSR0C, temp sbi UCSR0B,TXEN ; TX aktivieren loop: ; Unterprogramm aufrufen ldi temp, 'A' out UDR, temp rcall serout ; Unterprogramm aufrufen rjmp loop serout: sbis UCSR0A,UDRE ; Warten bis UDR für das nächste ; Byte bereit ist rjmp serout out UDR, temp ret ; zurück zum Hauptprogramm wäre nett wenn mir jemand helfen könnte, thx