www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega88 und UART


Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

ich kann keine Daten schicken,hier ist der Code , was mache ich
falsch!!!


.include "m88def.inc"

.def temp = R16
.equ CLOCK = 10000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1
.cseg
.org 0x000
      rjmp main


main:    ldi r16, LOW(RAMEND)  ;Stack Pointer to top of RAM
    out SPL, r16
    ldi r16, HIGH(RAMEND)
    out SPH, r16


;     Baudrate setup
          ldi temp, LOW(UBRRVAL)
          sts UBRR0L, temp
          ldi temp, HIGH(UBRRVAL)
          sts UBRR0H, temp

;     Frame-Format: 8 Bit
          ldi temp, 0x06
           sts UCSR0C, temp
    ldi temp,0x98
          sts UCSR0B,temp   ; Interrupt by Receive / RX (Receive) and TX
(Transmit) activate

      ldi r21,0x20



LogoATMEL:  ldi ZL,LOW(2*logo)  ; gleich nachdem Einshalten "Test"
anzeigen
      ldi ZH,HIGH(2*logo)
      ldi r17,0x04
      ldi temp, 10
      rcall serout
ok:      lpm r16,z
      adiw ZL,1
      rcall serout
      dec r17
      cpse r17,r20
      ldi temp, 10
          rcall serout
          ldi temp, 13
           rcall serout
loop:

rjmp loop


serout: lds r18,UCSR0A
    cpse r18,r21  ;Warten bis UDR für das nächste Byte bereit ist
    rjmp serout
         out UDR0,temp  ;Daten anzeigen
         ret
logo:
.db"Test",0


Gibt es andere Befehle oder was ist falsch, ich habe schon alles
probiert , und nichts kommt an(Ich benutze den Hyper Terminal)!


danke

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Daniel

Versuchs mal mit:

serout:
   lds r18,UCSR0A
   sbrs r18,5     ;Warten bis UDR für das nächste Byte bereit
   rjmp serout
   sts UDR0,temp  ;Daten anzeigen
   ret

UDR0 kann nicht mit 'out' beschrieben werden. Bei den Mega X8 muss
man höllisch aufpassen ob die Register nun mit I/O oder sts/lds
anzuspechen sind.

Gruss Andi

Autor: Guillermo Benites (benites)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hi,

anbei mei asm-cod
Gruß

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.