Tachjen,

hab mal spasseshalber etwas mit dem SPI-Bus rumhantiert. Wollte demnaechst damit mal den MCP2515 (CAN-Controller) etwas naeher untersuchen.
Auf einem ATMega16 habe ich einfach frei Schnauze einige Pins von Port D als SPI deklariert und mal nen Zweikanal-Oszi drangehangen:

http://www.speckmann.de/images/spi.jpg

Auf Kanal 1 (Pind.0) haengt Clock. Hier sieht man sehr gut die 8 Takte. Auf Kanal 2 (Pind.1) sind die Signale von MOSI (DOut) sichtbar. Hier wird unterdessen ein Byte rausgeschoben. Und zwar dezimal die 151. Auch das kann man sehr gut erkennen. Von Rechts nach Links zaehlend ist Bit 1, 2, 4, 16 und 128 auf High, zusammen 151. Passt also wunderbar.
SPI arbeitet ja wie ein Schieberegister. Das DatenByte wird dabei bitweise auf MOSI "herausgeschoben".

Hier noch mal der Codeschnipsel dazu:

--------------------------------
$regfile = "m16def.dat"
$crystal = 16000000

Config Spi = Soft , Din = Pind.2 , Dout = Pind.1 , Ss = None , Clock = Pind.0

Dim X As Byte
Dim Y As Byte

X = 151
Spiinit

Do
Waitms 1
Y = Spimove(x)
Loop

End
--------------------------------

Ich hatte gerade Langeweile und vielleicht dient es ja dem einen oder anderen etwas zum Verstaendnis :)