Forum: Mikrocontroller und Digitale Elektronik USI (Tiny2313) mit Timer0


von Henne (Gast)


Lesenswert?

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.

von A.K. (Gast)


Lesenswert?

Release Notes vom Studio: "Simulation of TWI, USI and analog peripheral
is not yet implemented."

von Henne (Gast)


Lesenswert?

Danke!! - ich wurde schon langsam gaga g

Grüße, Hendrik

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
Noch kein Account? Hier anmelden.