Skip to content

Commit 0450568

Browse files
committed
keep custom controller mode after configuration
1 parent 358aaac commit 0450568

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

mcp_can.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,17 @@ byte MCP_CAN::mcp2515_readStatus(void)
298298
return i;
299299
}
300300

301+
/*********************************************************************************************************
302+
** Function name: mcp2515_setMode
303+
** Descriptions: Sets and stores controller mode
304+
*********************************************************************************************************/
305+
byte MCP_CAN::mcp2515_setMode(const byte newmode)
306+
{
307+
mcpMode = newmode;
308+
return mcp2515_setCANCTRL_Mode(mcpMode);
309+
}
310+
311+
301312
/*********************************************************************************************************
302313
** Function name: mcp2515_setCANCTRL_Mode
303314
** Descriptions: set control mode
@@ -640,7 +651,7 @@ byte MCP_CAN::mcp2515_init(const byte canSpeed, const byte clock)
640651
MCP_RXB_RX_STDEXT);
641652
#endif
642653
// enter normal mode
643-
res = mcp2515_setCANCTRL_Mode(MODE_NORMAL);
654+
res = mcp2515_setMode(MODE_NORMAL);
644655
if (res)
645656
{
646657
#if DEBUG_EN
@@ -937,7 +948,7 @@ byte MCP_CAN::init_Mask(byte num, byte ext, unsigned long ulData)
937948
}
938949
else res = MCP2515_FAIL;
939950

940-
res = mcp2515_setCANCTRL_Mode(MODE_NORMAL);
951+
res = mcp2515_setCANCTRL_Mode(mcpMode);
941952
if (res > 0) {
942953
#if DEBUG_EN
943954
Serial.print("Enter normal mode fall\r\n");
@@ -1007,7 +1018,7 @@ byte MCP_CAN::init_Filt(byte num, byte ext, unsigned long ulData)
10071018
res = MCP2515_FAIL;
10081019
}
10091020

1010-
res = mcp2515_setCANCTRL_Mode(MODE_NORMAL);
1021+
res = mcp2515_setCANCTRL_Mode(mcpMode);
10111022
if (res > 0)
10121023
{
10131024
#if DEBUG_EN

mcp_can.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ class MCP_CAN
6262
byte SPICS;
6363
SPIClass *pSPI;
6464
byte nReservedTx; // Count of tx buffers for reserved send
65+
byte mcpMode; // Current controller mode
6566

6667
/*
6768
* mcp2515 driver function
@@ -90,6 +91,7 @@ class MCP_CAN
9091
const byte data);
9192

9293
byte mcp2515_readStatus(void); // read mcp2515's Status
94+
byte mcp2515_setMode(const byte newmode); // Sets and stores controller mode
9395
byte mcp2515_setCANCTRL_Mode(const byte newmode); // set mode
9496
byte mcp2515_configRate(const byte canSpeed, const byte clock); // set baudrate
9597
byte mcp2515_init(const byte canSpeed, const byte clock); // mcp2515init

0 commit comments

Comments
 (0)