Hallo Stefan,
Natürlich gibt es einen Code zu der Appnote, sorry, ich habe Dir den falschen Link kopiert ...
http://atmel.com/dyn/resources/prod_...nts/AVR310.zip
Es ist zwar IAR C , es sollte aber normallerweise kein Problem sein Assembler
daraus zu machen, wenn nicht sag nochmal bescheid , dann helfe ich Dir gerne.
Ja das Dattenblatt ist wirklich zum Ko*** was USI angeht, ohne Appnote hätte ich es auch nicht geschafft.
So initialisiere ich z.B. den slave:
Code:
usi_twi_slave_init:
in tmp,USI_PORT
ori tmp,(1<<USI_SCL)|(1<<USI_SDA)
out USI_PORT,tmp
sbi USI_DDR,USI_SCL
ldi tmp,(1<<USISIE)|(1<<USIWM1)|(1<<USICS1)
out USICR,tmp
ldi tmp,0xF0
out USISR,tmp
ret
Man beachte, daß der SCL Pin als Ausgang gesetzt wird was für mich komisch ist, weil der Slave eigentlich den SCL als Eingang nutzen sollte.
Am sonsten klappt das ganze an sich gut, Master fährt mit 400 kHz der Tiny macht nebenbei noch Radencoder,Motorenansteuerung und eine einfache PI Regelung alles ohne Probleme.
Naja, versuch es bitte nochmal mit der Appnote, wenn es nicht klappt schauen wir mal, ich will bald einen Tiny 24 mit HP03 Drucksensor von Hope RF verheiraten, warum soll man nicht nebenbei einen USI Master implementieren.
Gruß Sebastian
P.S.
Auch im Simulator werden die Daten im Register nicht geshiftet und der Counter bleibt auf Null
Wenn Du AvrStudio Simulator meinst, vergiß es, das kann er nicht, steht aber auch irgendwo in der Help, es sei denn Du hast einen HW Debugger ala JTAG ICE mkII oder Dragon.
Lesezeichen