Moin zusammen, leider habe ich zZ. ein Problem mit dem USI eines TINY2313: Ich wollte nur mal schnell eine funktionierende Routine von SPI auf USI portieren - und nun kann ich laut Simulator das Ding nicht takten... Was möchte ich: USI als SPI-master mit IRQ, wenn Byte fertig übertragen. Clock-Source soll der T0-Overflow sein. Sprache ist Assembler. mein Code: ; PortB ldi TempA, 0b10010000 ; DAC Pins, BCD in out DDRB, TempA ldi TempA, 0b11110000 out PortB, TempA ; Timers ldi TempA, 0b00000001 ;set counter0 @clock freq. out TCCR0B, TempA ldi TempA, 0b00000011 ;set counter1 @clock/1024 frequency out TCCR1B, TempA ldi TempA, 0b10000000 ;aktivate overflow interrupts out TIMSK, TempA clr TempA ;clear interrupt flags out TIFR, TempA ; USI ldi TempA, (1<<USIOIE)|(1<<USIWM0)|(1<<USICS0);|(1<<USICLK) ;enable USI as SPI master, LO idle out USICR, TempA ldi SPI_state, 0 Den Code habe ich mit Hilfe des gerade aktuellen Datasheets erstellt (wechselt ja wöchentlich...). Getestet habe ich nur im AVRStudio (Build:472) - dort verhält sich aber die ganze MCU ziemlich eigenartig: zB. lässt sich T0 vom Ändern des Prescalers während der Simu (also nicht im Code) nicht beeindrucken... Hat Irgendjemand von Euch eine Idee, wo ein Fehler sein könnte (bzw. habe ich überhaupt einen gemacht oder ist die IDE etwas buggy?) Viele Grüße, Hendrik ach ja: div. ANs habe ich auch schon gewältzt (wobei dort auch schon vom T0-CompIRQ geschrieben wurde...) Das Problem besteht unabh. von aktivierten T0-Interrupts.
Release Notes vom Studio: "Simulation of TWI, USI and analog peripheral is not yet implemented."
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.