ATmega88 und UART

Gast #269429
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren