Hallo Leute! Ich wollte, als Neuling, jetzt mal das USART meines Mega128 zum laufen bringen. Fürs Debuggen. Dazu habe ich mir das Tut von der Seite hier angesehen und benutze es jetzt nachdem ich es für den Mega128 angepasst habe. Leider funzt es nicht so wie es soll. AVStudio bringt mir beim Kompilieren immer Fehlermeldungen: F:\AVR\uart\uart.asm(24) : error : Illegal argument type or count F:\AVR\uart\uart.asm(31) : error : Illegal argument type or count F:\AVR\uart\uart.asm(61) : error : Undefined variable referenced Assembly complete with 3 errors Der Code: .nolist .include "m128def.inc" .list .def temp = r16 .CSEG .ORG 0x00 rjmp init init: ldi temp, HIGH(RAMEND) out SPH, temp ldi temp, LOW(RAMEND) out SPL, temp ldi temp, 0xFF out DDRB, temp out PORTB, temp ; Set baud rate ldi temp, 0x00 out UBRR0H, temp ;Hier die erste Fehlermeldung. ldi temp, 23 out UBRR0L, temp sbi UCSR0B,TXEN ;TX aktivieren ldi temp, (3<<UCSZ0) ;Frame Mode: 8bit, 1 Stopbit, kein Parity out UCSR0C, temp ;Hier ist die zweite Fehlermeldung. ldi r17, 0x00 start: ldi temp, 'T' rcall senduart ldi temp, 'e' rcall senduart ldi temp, 's' rcall senduart ldi temp, 't' rcall senduart inc r17 brcs start1 rjmp start start1: in r18, PINB com r18 out PORTB, r18 ret senduart: sbis UCSR0A,UDRE ; Warten bis UDR für das nächste ; Byte bereit ist rjmp senduart out UDR, temp ; Und hier die dritte Fehlermeldung ret ; zurück zum Hauptprogramm Ich hoffe ihr könnt mir helfen wo der Hund begraben liegt. MFG und danke Wolfgang
Hallo Wolfgang, ersetze mal die OUT-Befehle durch STS. Ich meine mich erinnern zu können, dass das im erweiterten I/O-Bereich notwendig ist, arbeite aber nicht mit dem ATmega128 und bin gerade zu faul, im Datenblatt nachzuschauen. UDR muß durch UDR0 ersetzt werden. Gruß, Frank
Hallo Frank Linde! Danke, das wars. Ich könnte mich ohrfeigen. Dabei habe ich das noch selber gelesen, aber hab nicht geschaltet. Jetzt funzt. Danke nochmals. Schönen Tag Wolfgang
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.