hallo leute,
ich brauche Ihre Hilfe, ich suche ein Codebeispiel im C, wie man eine Nachricht per CAN-Bus senden kann, und wie man das Bit-Timing berechnet. Ich habe das folgende Beispiel, aber ich komme nicht zu den Ergebnissen.
Auf eine baldige Antwort freue ich mich.
/* set CAN controller baudrate
F_Bit = CLK_IO / (1 + PRS+1 + SJW+1 + PHS1+1 + PHS2+1) * (BRP+1)
= CLK_IO / (1 + CANBT2[3:1]+1 + CANBT2[6:5]+1 + CANBT3[3:1]+1
+ CANBT3[6:4]+1) * (CANBT1[6:1]+1)
for F_Bit = 250 KBS @ CLK_IO = 8 MHz
|
| for F_Bit = 250 KBS @ CLK_IO = 5 MHz
| |
BRP = 3 1 (range: 0 - 63)
PRS = 2 4 (range: 0 - 7)
SJW = 0 0 (range: 0 - 3)
PHS1 = 1 1 (range: 0 - 7)
PHS2 = 1 1 (range: 0 - 7)
ich brauche Ihre Hilfe, ich suche ein Codebeispiel im C, wie man eine Nachricht per CAN-Bus senden kann, und wie man das Bit-Timing berechnet. Ich habe das folgende Beispiel, aber ich komme nicht zu den Ergebnissen.
Auf eine baldige Antwort freue ich mich.
/* set CAN controller baudrate
F_Bit = CLK_IO / (1 + PRS+1 + SJW+1 + PHS1+1 + PHS2+1) * (BRP+1)
= CLK_IO / (1 + CANBT2[3:1]+1 + CANBT2[6:5]+1 + CANBT3[3:1]+1
+ CANBT3[6:4]+1) * (CANBT1[6:1]+1)
for F_Bit = 250 KBS @ CLK_IO = 8 MHz
|
| for F_Bit = 250 KBS @ CLK_IO = 5 MHz
| |
BRP = 3 1 (range: 0 - 63)
PRS = 2 4 (range: 0 - 7)
SJW = 0 0 (range: 0 - 3)
PHS1 = 1 1 (range: 0 - 7)
PHS2 = 1 1 (range: 0 - 7)