- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 7 von 7

Thema: USART: Einige Zeichen werden verändert

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    22.11.2004
    Beiträge
    43

    USART: Einige Zeichen werden verändert

    Anzeige

    Powerstation Test
    Hallo,

    wenn ich von meinem ATmega16 die Zahlen von 0-255 zum Computer schicke,
    wird z.B. die 13 zu einer 10, andere Zahlen verändern sich auch einfach so.

    Dieses Problem besteht aber nur, wenn ich den ATmega16 in Assembler programmiere, in C funktioniert alles normal.

    Ich sende und empfange mit 19200 baud. Oszi: 8MHz

    Hier die Befehle mit denen ich das USART initialisiere:

    Code:
    .include "m16def.inc"
    
    .equ BAUD = 8000000/(19200*16)-1
    
    main:
            ;USART aktivieren
            ldi r16, LOW(BAUD)
            out UBRRL, r16
            ldi r16, HIGH(BAUD)
            out UBRRH, r16
            ldi r16, 1<<TXEN
            out UCSRB, r16
    
            ;Hauptprogramm ...........
    
    ausgabe:
            sbis UCSRA, UDRE
            rjmp ausgabe
            out UDR, r16
            ret
    Was mache ich falsch?

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842

    Re: USART: Einige Zeichen werden verändert

    Zitat Zitat von robotfreak
    wird z.B. die 13 zu einer 10, andere Zahlen verändern sich auch einfach so.
    Das mit der 13 kann ich mir so denken, daß deine Empfangsroutine /Terminal so eingestellt ist, daß beim Empfang eines <CR> (13) das als Record-Ende interpretiert wird und da wird ggf. ein <LF> künstlich erzeugt.

    Bei den anderen Zahlen müßtest du Beispiele bringen
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    22.11.2004
    Beiträge
    43
    Wenn ich den Atmega16 in C programmiere geht es aber. Und das Terminal ist dann das selbe.
    Daher muss das Problem wahrscheinlich beim Atmega16 liegen.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    29.04.2005
    Ort
    Weilburg
    Beiträge
    676
    CR wird von vielen Programmen mit LF ergänzt. Kommen beide Zeichen oder macht er aus CR ein LF ?
    Ein LF ist bei UNIX normal - erst der Drucker macht dan sein CR dazu.
    Prostetnic Vogon Jeltz

    2B | ~2B, That is the Question?
    The Answer is FF!

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Tja, da wirst du wohl dein Programm rausrücken müssen.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    22.11.2004
    Beiträge
    43
    Die 17 und 19 fehlen auch.
    Hier sind die Zeichen 0-30 am Terminal:

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    10
    14
    15
    16
    18
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Eindeutig. Irgendwas am Terminal frißt Steuerzeichen und wird kreativ, da kann dein AVR nix dafür
    <CR> 13
    <XON> 17
    <XOFF> 19
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress