Gast
#325887
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.