Beim Highlevelbefehl von Bascom kann ich keine Auskunft geben,
da ich die Hardwarenahe Programmierung bevorzuge,
sprich ich schreibe direkt ins SPDR Register.
Dabei ist es so, dass ich dieses abwechselnd lese und schreibe.
Der Hintergrund ist, dass nur wenn die SPI sendet der Takt
über CLK geht und die angehängte Hardware nur dann
ihre Daten senden kann.
Das läuft dann so ab, dass ich ne 0 (Null) ins SPDR schreibe,
warte bis die Übertragung beendet ist und das empfangene
Byte dann im SPDR steht. dieses dann herauskopiere und
die nächste 0 schreibe usw. usw. bis die gewünschte zahl
an Bytes rüber ist.
Sorry, aber Dein Problem scheint mir entweder
a) in der Initialisierung der SPI oder
b) in der Hardware zu liegen.
Haste die Bausteine mal getauscht um zu sehen ob nicht der MCP oder der
ATMega ne Macke haben?
Beim SPIIN scheint Bascom nullen zu senden und die emfangenen werte
dann in Variablen zu speichern, beim SPIMOVE kann man gleichzeitig
Daten senden und die Rückgabewerte auslesen.
Ach so, ich initialisiere die SPI über:
config pin_mcp_reset = output
config pin_mcp_select = output
config SPI_mosi = output
config SPI_clk = output
config SPI_miso = input
SPCR=&B01010010
Lesezeichen