www.mikrocontroller.net

Forum: Compiler & IDEs Probleme mit UART init beim ATmega128


Autor: Tomasz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mit meiner UART_init-Routine compile-Probleme. Ich bekomme
unter avr-gcc (GCC) 3.4.1 folgende Meldung:

Assembling: uart.S
avr-gcc -c -mmcu=atmega128 -I. -x assembler-with-cpp
-Wa,-adhlns=uart.lst,-gstabs  uart.S -o uart.o
uart.S: Assembler messages:
uart.S:88: Error: number must be less than 64
make.exe: *** [uart.o] Error 1

Der entsprechende Code ist:

;          r25/r24
;void uart_init(u16 BaudRate)
.global uart_init
uart_init:
    out    UBRR0H, r25     // Das ist die Zeile 88
    out    UBRR0L, r24
    ldi    r25, (1 << RXCIE0) | (1<<RXEN0) | (1<<TXEN0)
    out    UCSR0B, r25
    sei
    ret

Aufrufen tue ich das im main.c mit "uart_init(UART_BAUD_SELECT_0);",
dabei hat UART_BAUD_SELECT_0 den Wert 7.

Was ist falsch dran? Wie kann ich es lösen (außer den UBRR0H Wert auf
default zu lassen)?

Autor: Jens123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso ASM???

das klappt doch auch prima in c?

Autor: Volkmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tomasz,

UBRR0H liegt nicht in dem Bereich (0-63), den Du mit out ansprechen
kannst. Habe lange nichts mehr mit ASM gemacht, aber mit STS sollte es
gehen.

Volkmar

Autor: Tomasz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Volkmar,

mit STS geht's, danke!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.