Skip to content

Commit d756ec0

Browse files
authored
Update mcp2518fd_can.cpp
disable filter controle register before changing the filter, and reenable it after chage.
1 parent ef05384 commit d756ec0

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/mcp2518fd_can.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1908,11 +1908,16 @@ byte mcp2518fd::init_Mask(byte num, byte ext, unsigned long ulData) {
19081908

19091909
mcp2518fd_OperationModeSelect(CAN_CONFIGURATION_MODE);
19101910

1911+
mcp2518fd_FilterToFifoLink((CAN_FILTER)num, APP_RX_FIFO, false);
1912+
19111913
// Setup RX Mask
19121914
mObj.word = 0;
19131915
mObj.bF.MSID = ulData;
19141916
mObj.bF.MIDE = ext;
19151917
err = mcp2518fd_FilterMaskConfigure((CAN_FILTER)num, &mObj.bF);
1918+
1919+
mcp2518fd_FilterToFifoLink((CAN_FILTER)num, APP_RX_FIFO, true);
1920+
19161921
mcp2518fd_OperationModeSelect(mcpMode);
19171922

19181923
return err;
@@ -1926,6 +1931,8 @@ byte mcp2518fd::init_Filt(byte num, byte ext, unsigned long ulData) {
19261931
int8_t err;
19271932
err = mcp2518fd_OperationModeSelect(CAN_CONFIGURATION_MODE);
19281933

1934+
mcp2518fd_FilterToFifoLink((CAN_FILTER)num, APP_RX_FIFO, false);
1935+
19291936
// Setup RX Filter
19301937
fObj.word = 0;
19311938
if (!ext) { // standard identifier
@@ -1935,6 +1942,9 @@ byte mcp2518fd::init_Filt(byte num, byte ext, unsigned long ulData) {
19351942
}
19361943
fObj.bF.EXIDE = !!ext;
19371944
mcp2518fd_FilterObjectConfigure((CAN_FILTER)num, &fObj.bF);
1945+
1946+
mcp2518fd_FilterToFifoLink((CAN_FILTER)num, APP_RX_FIFO, true);
1947+
19381948
mcp2518fd_OperationModeSelect(mcpMode);
19391949
return err;
19401950
}

0 commit comments

Comments
 (0)