ASM für SPI .. ist das richtig so?
Hallo
Mein CAN Controller (Slave) will einfach nicht funktionieren.
Vielleicht ist das SPI falsch konfiguriert. Wäre echt schön wenn jemand
helfen könnte. Das ganze ist auf nem Steckbrett aufgebaut. Hier der Code der im Mega8515 (Master) abgelegt ist:
; -------------------------- KONFIGURIEREN -------------------
ldi temp, 0b10100000 ; Output = SCK & MOSI
out DDRB, temp
ldi temp, 0b01010001 ; SPIEnabled, MasterMode, SPI Clock Rate=
; OSC/16 = 250kHz @ 4MHz OSC
out SPCR, temp
; ---------------------- per SPI was senden ------------------
cbi PortB, 4 ; /CS pull down
ldi temp, 0b00000010 ; WRITE-Instruction
rcall spiout
sbi PortB, 4 ; release /CS
; -------------------- SUBFUNKTION FÜR SENDEN ------------
spiout:
out SPDR, temp
wait_spi:
sbis SPSR,SPIF ; Transmission complete?
rjmp wait_spi
ret ; back...
Ich bin schon am verzweifeln, ich weis echt nicht wo ich den Fehler
suchen soll. Mein restliches Programm bin ich schon hundertmal
durchgegangen. Leider programmieren das alle bis auch mich in C.
Deshalb krieg ich auch von nirgendwo Hilfe. Ist doch zum heulen.