Trotz der Änderungen schreibt er wie es aussieht nichts in den MCP.
Dieser Part:
Code:
Print "Call mcpinit..."
Call Mcpinit()
Print "done!"
Post = Canread(caninte)
Print "CANINTE:" ; Post
Post = Canread(canintf)
Print "CANINTF:" ; Post
Post = Canread(cnf1)
Print "CNF1=" ; Post
Post = Canread(cnf2)
Print "CNF2=" ; Post
Post = Canread(cnf3)
Print "CNF3=" ; Post
mit MCPinit wie folgt:
Code:
Sub Mcpinit()
Local Can_tmp As Byte 'Lokale Variable
Reset Mcp_cs 'MCP Chip select an (aktiv)
Waitus 10 'Warten bis Pegel stabil
Can_tmp = Cmd_reset
Spdr = Can_tmp '&HC0 ins SPI Data Register laden
Do 'Warte bis
Loop Until Spsr.spif = 1 'SPI Interrupt cleared (Transfer abgeschlossen)
Waitus 10 'Warten bis Pegel stabil
Set Mcp_cs 'Chip select wieder an (inaktiv)
Led_gelb = 1
Waitms 500
' Canwrite Canctrl , &B10001000
Canwrite Cnf1 , &B00000100 'Timing &H13=50kbit/s, &H07=125kb/s, &H01=250kb/s
Canwrite Cnf2 , &B01100010 '&H90
Canwrite Cnf3 , &B00000011 '&H02
Canwrite Caninte , &B00000011 'Interrupt einstellen
Canwrite Rxb0ctrl , &B01100000 'Buffer 0: Empfangen aller Nachrichten
Canwrite Rxb1ctrl , &B01100000 'Buffer 1: Empfang aller Nachrichten
Canwrite Rxm0sidh , 0 'Kein Filter, Empfängeradresse Null
Canwrite Rxm0sidl , 0
Canwrite Rxm0eid8 , 0
Canwrite Rxm0eid0 , 0
Canwrite Rxm1sidh , 0
Canwrite Rxm1sidl , 0
Canwrite Rxm1eid8 , 0
Canwrite Rxm1eid0 , 0
Canwrite Bfpctrl , 0 'Deaktivieren der RXnBF Pins (High Impedance)
Canwrite Txrtsctrl , 0 'TXnRTS Bits als Inputs schalten
Canmod Canctrl , &B11100000 , &B00000000 'Device zurück in den normalen Modus versetzen
Led_gelb = 0
End Sub
bringt dieses Ergebnis:
Call mcpinit...
done!
CANINTE:0
CANINTF:0
CNF1=0
CNF2=0
CNF3=0
Lesezeichen