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.