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
  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?
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.
IMMER den richtigen Prozessor im Debugger einstellen und IMMER das richtige Datenblatt lesen ;-)
jap hab ich gemacht. da scheint entweder das datasheet falsch zu sein, oders studio hat nen bug. Ich schließe mich mal aus ;)
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