49 uint32_t BaudRatePrescaler,
62 pCCAN->
BT = (BaudRatePrescaler & 0x3F) | (SynJumpWidth & 0x03) << 6 | (Tseg1 & 0x0F) << 8 | (Tseg2 & 0x07) << 12;
63 pCCAN->
BRPE = BaudRatePrescaler >> 6;
78 if (!((msg_valid >> i) & 1UL)) {
131 uint32_t pClk, div, quanta, segs, seg1, seg2, clk_per_bit, can_sjw;
133 clk_per_bit = pClk / bitRate;
135 for (div = 0; div <= 15; div++) {
136 for (quanta = 1; quanta <= 32; quanta++) {
137 for (segs = 3; segs <= 17; segs++) {
138 if (clk_per_bit == (segs * quanta * (div + 1))) {
142 can_sjw = seg1 > 3 ? 3 : seg1;
168 uint32_t msgCtrl = 0;
170 if (pMsgObj ==
NULL) {
173 pData = (uint16_t *) (pMsgObj->
data);
187 pCCAN->
IF[IFSel].
MCTRL = msgCtrl;
188 pCCAN->
IF[IFSel].
DA1 = *pData++;
189 pCCAN->
IF[IFSel].
DA2 = *pData++;
190 pCCAN->
IF[IFSel].
DB1 = *pData++;
191 pCCAN->
IF[IFSel].
DB2 = *pData;
194 if (!(pMsgObj->
id & (0x1 << 30))) {
197 pCCAN->
IF[IFSel].
MSK1 = 0x0000;
201 pCCAN->
IF[IFSel].
ARB1 = 0x0000;
210 pCCAN->
IF[IFSel].
ARB1 = pMsgObj->
id & 0x0000FFFF;
223 pData = (uint32_t *) pMsgObj->
data;
230 pMsgObj->
id = (pCCAN->
IF[IFSel].
ARB1) | (pCCAN->
IF[IFSel].
ARB2 << 16);
232 *pData++ = (pCCAN->
IF[IFSel].
DA2 << 16) | pCCAN->
IF[IFSel].
DA1;
233 *pData = (pCCAN->
IF[IFSel].
DB2 << 16) | pCCAN->
IF[IFSel].
DB1;
235 if (pMsgObj->
id & (0x1 << 30)) {
261 temp = pCCAN->
IF[IFSel].
ARB2;