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
Ich bin echt unglücklichCode:'**** 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![]()







Zitieren

Lesezeichen