Hallo..Ich versuche zwanghaft ein Zeichen über das USART eines AtMega162 auszugeben aber es will mir nicht gelingen. Hab mal schnell etwas CODE geschrieben bei dem ständig das gleiche Zeiche in einer Schleife an die Schnittstelle augegeben werden soll. Leider tut sich rein gar nichts. Hab mal mit dem oszi am txd-pin gemessen und musste feststellen das dort kein signal rauskommt. Was mache ich bloß falsch? Bei anderen Atmel controllern mit weniger funktionen war die ausgabe über das UART eigentlich immer recht simpel. Ach und noch was. Wenn ich mein programm im Avr studio Simuliere, musste ich feststellen das das Zeichen nicht an das UDR Regsiter übergeben wird. .nolist .include "m162def.inc" .list ;Definitionen .def reg =r16 .def signs =r17 .CSEG .ORG 0x0000 rjmp main main: ldi reg,LOW(RAMEND) out SPL,reg ldi reg,HIGH(RAMEND) out SPH,reg ldi reg,0xFF out DDRB,reg ;SCHNITTSTELLE KONIGURIEREN clr reg ; Baudrate 19200bps out sreg,reg out UBRR0H, reg ldi reg,25 out UBRR1L, reg ldi reg, (1<<URSEL) | (3<<UCSZ0) out UCSR1C,reg ldi reg, (1<<TXEN) out UCSR1B, reg loop: sbis UCSR1A,UDRE1 ;warten bis Puffer leer ist rjmp loop ldi signs, 'A' out udr,signs ;Zeichen senden rjmp loop
Am richtigen Pin gemessen? Immerhin hat das Teil ja 2 USARTs. UBRR0H (USART#0) und UBRR1L (USART#1) passen nicht recht zusammen.
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.