-         

Ergebnis 1 bis 2 von 2

Thema: kommunizieren mit atmega8535

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    26.04.2006
    Beiträge
    153

    kommunizieren mit atmega8535

    Anzeige

    Hallo!

    Ich will von meinem ATMEGA8535 aus eine Zeichenkette verschicken an den PC! funktioniert aber nicht Warum? Kann mir da wer helfen?

    Der code wäre so:

    .include "mm8535def.inc"

    .def temp = r16
    .equ CLOCK = 4000000
    .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 UBRRL, temp
    ldi temp, HIGH(UBRRVAL)
    out UBRRH, temp

    ; Frame-Format: 8 Bit
    ldi temp, (1<<URSEL)|(3<<UCSZ0)
    out UCSRC, temp

    sbi UCSRB,TXEN ; TX aktivieren

    loop: ldi temp, 'T'
    rcall serout ; Unterprogramm aufrufen
    ldi temp, 'e'
    rcall serout ; Unterprogramm aufrufen
    ldi temp, 's'
    rcall serout ; ...
    ldi temp, 't'
    rcall serout
    ldi temp, '!'
    rcall serout
    ldi temp, 10
    rcall serout
    ldi temp, 13
    rcall serout
    rjmp loop

    serout:
    sbis UCSRA,UDRE ; Warten bis UDR für das nächste
    ; Byte bereit ist
    rjmp serout
    out UDR, temp
    ret ; zurück zum Hauptprogramm


    MFG
    Exodus

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Rechne mal nach und schau, ob der Wert wirklich stimmt
    UBRRVAL = CLOCK/(BAUD*16)-1

    Beim C isses besser zu schreiben: 16L , also
    UBRRVAL = CLOCK/(BAUD*16L)-1
    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
  •