Teste das mal, vorher noch die Standartwerte für den Prozessor einsetzen
Kommt aus dem Bascom-Forum
Code:
$sim
Config Spi = Soft , Din = Pinb.2 , Dout = Portb.1 , Ss = None , Clock = Portb.0
Dim C1 As Byte
Dim A(3) As Byte
Declare Sub Spi_write(byval Reg_add As Byte , Byval Reg_val As Byte)



Const Cmd_read = &H03                                       ' Read Command
Const Cmd_write = &H02                                      ' Write Command
Const Cmd_bitmodify = &H05                                  ' Bit-modify Command
Const Cmd_readstatus = &HA0                                 ' Read Status Command (poll)
Const Cmd_reset = &HC0                                      ' Reset Command
Const Canctrl = &H0F

Const Cnf3 = &H28                                           ' Configuration Register 3
Const Cnf2 = &H29                                           ' Configuration Register 2
Const Cnf1 = &H2A                                           ' Configuration Register 1

Const Txb0ctrl = &H30                                       ' Transmit Buffer 0 Control Register
Const Txb0sidh = &H31                                       ' Transmit Buffer 0 Std Identifier High
Const Txb0sidl = &H32                                       ' Transmit Buffer 0 Std Identifier Low
Const Txb0eid8 = &H33                                       ' Transmit Buffer 0 Ext Identifier High
Const Txb0eid0 = &H34                                       ' Transmit Buffer 0 Ext Identifier Low
Const Txb0dlc = &H35                                        ' Transmit Buffer 0 Data Length Code
Const Txb0d0 = &H36                                         ' Transmit Buffer 0 Data Byte 0
Const Txb0d1 = &H37                                         ' Transmit Buffer 0 Data Byte 1
Const Txb0d2 = &H38                                         ' Transmit Buffer 0 Data Byte 2
Const Txb0d3 = &H39                                         ' Transmit Buffer 0 Data Byte 3
Const Txb0d4 = &H3A                                         ' Transmit Buffer 0 Data Byte 4
Const Txb0d5 = &H3B                                         ' Transmit Buffer 0 Data Byte 5
Const Txb0d6 = &H3C                                         ' Transmit Buffer 0 Data Byte 6
Const Txb0d7 = &H3D                                         ' Transmit Buffer 0 Data Byte 7


 Const Rts0 = &H81

Print "Welcome!"

Config Pinb.3 = Output
Config Pinb.4 = Output
Csn Alias Portb.3
Can_reset Alias Portb.4



Spiinit
Can_reset = 1

Print "Reset Done!"


'RESET
Csn = 0
A(1) = Cmd_reset
Spiout A(1) , 1
Csn = 1

Wait 2


'Controls
Spi_write Canctrl , &B00000100
Print "speed change done"

Spi_write Cnf1 , &H07                                       '03
Spi_write Cnf2 , &H90                                       '90
Spi_write Cnf3 , &H02                                       '02



'Do

'Spi_write Txb0d0 , 55                                       'send motor speed

'Csn = 0
'A(1) = &B10000001
'Spiout A(1) , 1
'Csn = 1

 Wait 1
 Print "here we go"


 Wait 1

 Print "senden"


 Spi_write Txb0sidh , &HFF
 Spi_write Txb0sidl , &H00
 Spi_write Txb0dlc , &H3


 Csn = 0
A(1) = Rts0
Spiout A(1) , 1
Csn = 1


' Loop



End


Sub Spi_write(byval Reg_add As Byte , Byval Reg_val As Byte)

Print "Reg: " ; Reg_add ; " Val: " ; Reg_val

A(1) = Cmd_write
A(2) = Reg_add
A(3) = Reg_val
Csn = 0
Spiout A(1) , 3
Csn = 1

End Sub