Hallo zusammen
ich bekomme bei meinen ATMEGA 16 den USART nicht richtig zum laufen.
Das Beispiel war ursprünglich für den 2313 gedacht und funktionierte
wunderbar(mit Terminalprog tty). Habe für den ATMEGA 16 alles
entsprechend abgeändert. Nach Reset oder Start soll bei Druck auf
Taster 2 des STK 500 ein "Z" gesendet werden. Es werden aber
Leerzeichen gesendet(2 Stück).
Wenn Ihr auch keinen Fehler finden könnt, probiert das Prog bitte mal
bei eurem ATMEGA 16 aus.
Einstellungen: 8 Datenbits,kein Paritätsbit,1 Stopbit
hier noch mal die Initialisierung:
;Subroutine hdw_init
;Die I/O-Ports, und der USART werden initialisiert
;In DDRx   0 --> Input   1 --> Output
hdw_init:  ldi  w,0b11111111  ;Initialisiere Port D
    out  PORTD,w
    ldi  w,0b11110010  ;Datenrichtung Port D
    out  DDRD,w
    ldi  w,0b11111111  ;Initialisiere Port B
    out  PORTB,w
    ldi  w,0b11111111  ;Datenrichtung Port B
    out  DDRB,w
;Ab hier wird das USART initialisiert
uart_init:
    ldi   w,high(baudkonst)
    out  UBRRH,w
    ldi  w,low(baudkonst)  ;Baudrate laden
    out  UBRRL,w
    ldi  w,0b00100000    ;UDRE leer
    out   UCSRA,w
    ldi  w,0b10011000  ;RXCIE,RXEN,TXEN ->1,UCSZ2->0
    out   UCSRB,w
    ldi  w,0b10000110    ;URSEL,8bit Datenwort(UCSZ1,UCSZ2 auf 1)
    out   UCSRC,w
    sei        ;Alle Ints freigeben
    ret
schonmal vielen Dank
mfg
Rob
  Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
  
  Bestehender Account
  
  
  
  Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
  Noch kein Account? Hier anmelden.
 Thread beobachten
 Thread beobachten Seitenaufteilung abschalten
 Seitenaufteilung abschalten