tn2313 und uart. oder: Ich werd verrückt

Gast #313398
Lesenswert?
• ▲
▼
Servus,

seit zwei tagen versuch ich meinem 2313 das beizubringen. Was ich
ausschließen kann sind die Fusebits und damit eine falsche Frequenz.
Das Teil hat am pd2 4mhz.
Im Moment macht er nämlich gar nix. Txd hängt auf high, und macht
keinen Anschein das sich etwas ändert.
was mir aufgefallen ist UBRRH und UCSRC haben die gleich io Adresse.
getestet auf stk500. echo zum pc geht. liegt also definitiv am tiny.
ich hoff das mir jemand helfen kann, ich bin in jedem fall sehr dankbar
:S

Hier der code. Weitestgehend aus dem tutorial übernommen...

.include "tn2313def.inc"

.def temp = r16
.equ CLOCK = 4000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1


        ; Stackpointer initialisieren
        ldi temp, RAMEND
        out SPL, temp



        ; Baudrate einstellen
        ldi temp, LOW(UBRRVAL)
        out UBRRL, temp
        ldi temp, HIGH(UBRRVAL)
        out UBRRH, temp

        ; Frame-Format: 8 Bit
        ldi temp, (1<<UMSEL)|(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
Gast #313399
Lesenswert?
• ▲
▼
1.: Ich sehe im Datenblatt keinen Hinweis darauf, dass UCSRC und UBRRH
die selbe I/O-Adresse haben!

2.: Wieso setzt Du das UMSEL-Bit in UCSRC? Das bedeutet doch eigentlich
'synchrone Betriebsart', oder nicht?
Gast #313400
Lesenswert?
• ▲
▼
juhu fehler gefunden. umsel bit gehört natürlich auf null. da sollte
eigentlich ursel stehen. Aber das brauch ich für den tiny2313 nicht
weil dort UCSRC und UBRRH nicht die gleiche adresse haben(laut
unterlage). alles im allen ziemlich verwirrend, weil der debuger
dennoch meint die haben die gleiche adresse.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.