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