Nene, es klappt immernoch nicht. Ich lasse also gerade die ganze Kommunikationssuppe weg und versuche, nur den MCP zu schreiben und zu lesen, aber es klappt nicht. Eine Änderung des Prescalers nimmt er nicht an. Hier mal der letzte Stand:
Teil 1
Code:
'**** Deklarationen ************************************************************
$hwstack = 32 ' default use 32 for the hardware stack
$swstack = 8 'default use 10 for the SW stack
$framesize = 24 'default use 40 for the frame space
$regfile = "m8def.dat" 'Chipdefinition
$crystal = 16000000 'Ext. crystal Osc. Speed 16Mhz
$baud = 2400 'Speed COM1
Declare Sub Mcpinit()
Declare Sub Canwrite(byval Reg_add As Byte , Byval Reg_val As Byte)
Declare Sub Canmod(byval Reg_add As Byte , Byval Reg_mask As Byte , Byval Reg_val As Byte)
Declare Function Canread(byval Reg_add As Byte ) As Byte
'**** Portinitialisierung ******************************************************
Portb = &H00 'Port B hochohmig schalten
Portc = &H00 'Port C hochohmig schalten
Portd = &H00 'Port D hochohmig schalten
Config Portb.0 = Output 'LED gelb
Led_gelb Alias Portb.0
Led_gelb = 0
Config Portb.1 = Output 'LED rot
Led_rot Alias Portb.1
Led_rot = 0
Config Portb.2 = Input '/SS Eingang
Config Portc = Output 'Aux
Config Pind.2 = Input 'MCP Interrupt MCP2515 /INT
Config Portd.4 = Output 'MCP /CS Chip Select
Mcp_cs Alias Portd.4
Config Portd.6 = Input 'Taster S1
Portd.6 = 1 'Pullup für S1
S1 Alias Pind.6
Config Portd.7 = Input 'Taster S2
Portd.7 = 1 'Pullup für S2
S2 Alias Pind.7
Led_rot = 1 'Resetmerker und Zeit zum ISP Stecker abziehen ;)
Wait 3
Led_rot = 0
'**** Interupts einschalten ****************************************************
Config Int0 = Falling 'INT MCP ist low aktiv
On Int0 Int_mcp 'Wenn INT, dann Routine INT_mcp aufrufen
Enable Int0 'INT0 einschalten
Enable Interrupts 'Globale Interrupts einschalten
'**** Watchdog einrichten ******************************************************
Config Watchdog = 2048 'WD Timer 2 sek
Start Watchdog
'**** Variablen deklarieren ****************************************************
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_read_rx_status = &HB0 '?
Const Cmd_reset = &HC0 'Reset Command
Const Cmd_rts0 = &H81 'Sendekommando RTS Buffer 0
Const Cmd_rts1 = &H82 'Sendekommando RTS Buffer 1
Const Cmd_rts2 = &H84 'Sendekommando RTS Buffer 2
Const Bfpctrl = &H0C 'RXnBF Pins
Const Txrtsctrl = &H0D 'TXnRTS Pins
Const Caninte = &H2B 'Interrupt enable
Const Canintf = &H2C 'Interrupt flag
Const Canctrl = &H0F 'Control Register
Const Canstat = &H0E 'Statusregister
Const Eflg = &H2D 'Error Flag Register
Const Cnf3 = &H28 'MCP 2515 Configuration Register 3
Const Cnf2 = &H29 'MCP 2515 Configuration Register 2
Const Cnf1 = &H2A 'MCP 2515 Configuration Register 1
Const Tec = &H1C 'Transmit Error Counter
Const Rec = &H1D 'Receive Error counter
Const Rxm0sidh = &H20 'Receive Buffer Mask 0 Std Identifier High
Const Rxm0sidl = &H21 'Receive Buffer Mask 0 Std Identifier Low
Const Rxm0eid8 = &H22 'Receive Buffer Mask 0 Ext Identifier High
Const Rxm0eid0 = &H23 'Receive Buffer Mask 0 Ext Identifier low
Const Rxm1sidh = &H24 'Receive Buffer Mask 1 Std Identifier High
Const Rxm1sidl = &H25 'Receive Buffer Mask 1 Std Identifier Low
Const Rxm1eid8 = &H26 'Receive Buffer Mask 1 Ext Identifier High
Const Rxm1eid0 = &H27 'Receive Buffer Mask 1 Ext Identifier low
Const Rxb0ctrl = &H60 'Receive Buffer 0 Control Register
Const Rxb0sidh = &H61 'Receive Buffer 0 Std Identifier High
Const Rxb0sidl = &H62 'Receive Buffer 0 Std Identifier Low
Const Rxb0eid8 = &H63 'Receive Buffer 0 ext Identifier High
Const Rxb0eid0 = &H64 'Receive Buffer 0 ext Identifier Low
Const Rxb0dlc = &H65 'Receive Buffer 0 Data Length Code
Const Rxb0d0 = &H66 'Receive Buffer 0 Data Byte 0
Const Rxb0d1 = &H67 'Receive Buffer 0 Data Byte 1
Const Rxb0d2 = &H68 'Receive Buffer 0 Data Byte 2
Const Rxb0d3 = &H69 'Receive Buffer 0 Data Byte 3
Const Rxb0d4 = &H6A 'Receive Buffer 0 Data Byte 4
Const Rxb0d5 = &H6B 'Receive Buffer 0 Data Byte 5
Const Rxb0d6 = &H6C 'Receive Buffer 0 Data Byte 6
Const Rxb0d7 = &H6D 'Receive Buffer 0 Data Byte 7
Const Rxb1ctrl = &H70 'Receive Buffer 1 Control Register
Const Rxb1sidh = &H71 'Receive Buffer 1 Std Identifier High
Const Rxb1sidl = &H72 'Receive Buffer 1 Std Identifier Low
Const Rxb1eid8 = &H73 'Receive Buffer 1 ext Identifier High
Const Rxb1eid0 = &H74 'Receive Buffer 1 ext Identifier Low
Const Rxb1dlc = &H75 'Receive Buffer 1 Data Length Code
Const Rxb1d0 = &H76 'Receive Buffer 1 Data Byte 0
Const Rxb1d1 = &H77 'Receive Buffer 1 Data Byte 1
Const Rxb1d2 = &H78 'Receive Buffer 1 Data Byte 2
Const Rxb1d3 = &H79 'Receive Buffer 1 Data Byte 3
Const Rxb1d4 = &H7A 'Receive Buffer 1 Data Byte 4
Const Rxb1d5 = &H7B 'Receive Buffer 1 Data Byte 5
Const Rxb1d6 = &H7C 'Receive Buffer 1 Data Byte 6
Const Rxb1d7 = &H7D 'Receive Buffer 1 Data Byte 7
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 Txb1ctrl = &H40 'Transmit Buffer 1 Control Register
Const Txb1sidh = &H41 'Transmit Buffer 1 Std Identifier High
Const Txb1sidl = &H42 'Transmit Buffer 1 Std Identifier Low
Const Txb1dlc = &H45 'Transmit Buffer 1 Data Length Code
Const Txb1d0 = &H46 'Transmit Buffer 1 Data Byte 0
Const Txb1d1 = &H47 'Transmit Buffer 1 Data Byte 1
Const Txb1d2 = &H48 'Transmit Buffer 1 Data Byte 2
Const Txb1d3 = &H49 'Transmit Buffer 1 Data Byte 3
Const Txb1d4 = &H4A 'Transmit Buffer 1 Data Byte 4
Const Txb1d5 = &H4B 'Transmit Buffer 1 Data Byte 5
Const Txb1d6 = &H4C 'Transmit Buffer 1 Data Byte 6
Const Txb1d7 = &H4D 'Transmit Buffer 1 Data Byte 7
Const Txb2ctrl = &H50 'Transmit Buffer 2 Control Register
Const Txb2sidh = &H51 'Transmit Buffer 2 Std Identifier High
Const Txb2sidl = &H52 'Transmit Buffer 2 Std Identifier Low
Const Txb2dlc = &H55 'Transmit Buffer 2 Data Length Code
Const Txb2d0 = &H56 'Transmit Buffer 2 Data Byte 0
Const Txb2d1 = &H57 'Transmit Buffer 2 Data Byte 1
Const Txb2d2 = &H58 'Transmit Buffer 2 Data Byte 2
Const Txb2d3 = &H59 'Transmit Buffer 2 Data Byte 3
Const Txb2d4 = &H5A 'Transmit Buffer 2 Data Byte 4
Const Txb2d5 = &H5B 'Transmit Buffer 2 Data Byte 5
Const Txb2d6 = &H5C 'Transmit Buffer 2 Data Byte 6
Const Txb2d7 = &H5D 'Transmit Buffer 2 Data Byte 7
Dim Can_post_holen As Bit 'Merker für MCP Interrupt (Post ist da)
Can_post_holen = 0 'Merker auf Null
Dim Data_tmp As Byte 'Temp Datenbyte
Dim Can_rxd_post(8) As Byte 'Datenarray für empfangene Daten
Dim Can_txd_post(8) As Byte 'Datenarray für zu sendende Daten
Dim Canstatus As Byte 'Statuswort
Ich bin echt unglücklich
Lesezeichen