Index: firmware/App/Modes/ModeStandby.c =================================================================== diff -u -rb1dc3df084a8517ca1575bdbf741fecd96d56a12 -r9301b9ec99beedbb49076dc03526622d313bd8cf --- firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision b1dc3df084a8517ca1575bdbf741fecd96d56a12) +++ firmware/App/Modes/ModeStandby.c (.../ModeStandby.c) (revision 9301b9ec99beedbb49076dc03526622d313bd8cf) @@ -37,7 +37,7 @@ // ********** private definitions ********** #define FILTER_FLUSH_TIME_MS ( 120 * MS_PER_SECOND ) ///< Duration of filter flush state (in ms). -#define MAX_WATER_SAMPLE_TIME_MS ( 5 * MS_PER_SECOND ) ///< Maximum duration of water sample state (in ms). +#define MAX_WATER_SAMPLE_TIME_MS ( 10 * MS_PER_SECOND ) ///< Maximum duration of water sample state (in ms). #define FLUSH_EXPIRATION_TIME_MS ( 10 * SEC_PER_MIN * MS_PER_SECOND ) ///< Duration in which a filter flush is valid (in ms). #define FILTER_FLUSH_DATA_PUBLISH_INTERVAL ( MS_PER_SECOND / TASK_GENERAL_INTERVAL ) ///< Filter flush data broadcast interval. Index: firmware/App/Services/CommBuffers.h =================================================================== diff -u -r54f45c387430e440ab4607451fc84dea61f273f1 -r9301b9ec99beedbb49076dc03526622d313bd8cf --- firmware/App/Services/CommBuffers.h (.../CommBuffers.h) (revision 54f45c387430e440ab4607451fc84dea61f273f1) +++ firmware/App/Services/CommBuffers.h (.../CommBuffers.h) (revision 9301b9ec99beedbb49076dc03526622d313bd8cf) @@ -41,12 +41,13 @@ COMM_BUFFER_IN_CAN_HD_2_DG, ///< Receiving buffer for HD to DG communication via CAN COMM_BUFFER_OUT_CAN_DG_2_HD, ///< Transmitting buffer for DG to HD communication via CAN COMM_BUFFER_IN_CAN_HD_BROADCAST, ///< Receiving buffer for HD broadcast communication via CAN + COMM_BUFFER_OUT_CAN_DG_2_UI, ///< Transmitting buffer for DG to UI communication via CAN COMM_BUFFER_OUT_CAN_DG_BROADCAST, ///< Transmitting buffer for DG broadcast communication via CAN - COMM_BUFFER_IN_CAN_UI_BROADCAST, ///< Receiving buffer for UI broadcast communication via CAN - COMM_BUFFER_IN_CAN_PC, ///< Receiving buffer for PC communication via CAN + COMM_BUFFER_IN_CAN_UI_2_DG, ///< Receiving buffer for UI to DG communication via CAN + COMM_BUFFER_IN_CAN_UI_BROADCAST, ///< Receiving buffer for UI broadcast communication via CAN + COMM_BUFFER_IN_CAN_PC, ///< Receiving buffer for PC communication via CAN COMM_BUFFER_OUT_CAN_PC, ///< Transmitting buffer for PC communication via CAN - COMM_BUFFER_OUT_CAN_DG_2_UI, ///< Transmitting buffer for DG to UI communication via CAN - COMM_BUFFER_LAST_CAN_BUFFER = COMM_BUFFER_OUT_CAN_DG_2_UI, ///< Last CAN communication buffer + COMM_BUFFER_LAST_CAN_BUFFER = COMM_BUFFER_OUT_CAN_PC, ///< Last CAN communication buffer #ifdef DEBUG_ENABLED COMM_BUFFER_IN_UART_PC, ///< Receiving buffer for PC communication via UART COMM_BUFFER_OUT_UART_PC, ///< Transmitting buffer for PC communication via UART Index: firmware/App/Services/SystemComm.c =================================================================== diff -u -rb631516f8159c25ba2ffd215afa696795d97a28c -r9301b9ec99beedbb49076dc03526622d313bd8cf --- firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision b631516f8159c25ba2ffd215afa696795d97a28c) +++ firmware/App/Services/SystemComm.c (.../SystemComm.c) (revision 9301b9ec99beedbb49076dc03526622d313bd8cf) @@ -41,7 +41,7 @@ #ifndef DEBUG_ENABLED #define NUM_OF_MSG_IN_BUFFERS 6 ///< Number of Msg buffers for receiving #else - #define NUM_OF_MSG_IN_BUFFERS 7 + #define NUM_OF_MSG_IN_BUFFERS 8 #define SCI1_RECEIVE_DMA_REQUEST 30 #define SCI1_TRANSMIT_DMA_REQUEST 31 #endif @@ -81,9 +81,9 @@ { COMM_BUFFER_OUT_CAN_DG_ALARM, COMM_BUFFER_OUT_CAN_DG_2_HD, + COMM_BUFFER_OUT_CAN_DG_2_UI, COMM_BUFFER_OUT_CAN_DG_BROADCAST, - COMM_BUFFER_OUT_CAN_PC, - COMM_BUFFER_OUT_CAN_DG_2_UI + COMM_BUFFER_OUT_CAN_PC }; /// Array of in-coming CAN buffers. @@ -93,6 +93,7 @@ COMM_BUFFER_IN_CAN_UI_ALARM, COMM_BUFFER_IN_CAN_HD_2_DG, COMM_BUFFER_IN_CAN_HD_BROADCAST, + COMM_BUFFER_IN_CAN_UI_2_DG, COMM_BUFFER_IN_CAN_UI_BROADCAST, COMM_BUFFER_IN_CAN_PC, #ifdef DEBUG_ENABLED Index: firmware/DG.dil =================================================================== diff -u -r73113d51d6ca20fd4e34d69d241fbb18bb70dc1e -r9301b9ec99beedbb49076dc03526622d313bd8cf --- firmware/DG.dil (.../DG.dil) (revision 73113d51d6ca20fd4e34d69d241fbb18bb70dc1e) +++ firmware/DG.dil (.../DG.dil) (revision 9301b9ec99beedbb49076dc03526622d313bd8cf) @@ -1,4 +1,4 @@ -# RM46L852PGE 07/27/20 12:39:13 +# RM46L852PGE 03/11/21 13:52:53 # ARCH=RM46L852PGE # @@ -3398,7 +3398,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_22_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_20_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_14_ENA.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_12_INT_ENA.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_12_INT_ENA.VALUE=0x00000800 DRIVER.CAN.VAR.CAN_3_MESSAGE_7_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_51_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_43_INT_LEVEL.VALUE=0x00000000 @@ -3678,7 +3678,7 @@ DRIVER.CAN.VAR.CAN_3_MESSAGE_9_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_11_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_2_MESSAGE_6_BOOL_ENA.VALUE=0 -DRIVER.CAN.VAR.CAN_1_MESSAGE_11_INT_ENA.VALUE=0x00000800 +DRIVER.CAN.VAR.CAN_1_MESSAGE_11_INT_ENA.VALUE=0x00000400 DRIVER.CAN.VAR.CAN_1_MESSAGE_4_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_3_MESSAGE_62_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_54_RTR.VALUE=0x00000000 @@ -3919,7 +3919,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_32_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_24_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_16_INT_LEVEL.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_10_ID.VALUE=0x403 +DRIVER.CAN.VAR.CAN_1_MESSAGE_10_ID.VALUE=0x200 DRIVER.CAN.VAR.CAN_2_MESSAGE_31_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_23_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_15_DLC.VALUE=8 @@ -3981,7 +3981,7 @@ DRIVER.CAN.VAR.CAN_2_MESSAGE_10_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_5_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_1_INT_LEVEL.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_11_ID.VALUE=0x070 +DRIVER.CAN.VAR.CAN_1_MESSAGE_11_ID.VALUE=0x402 DRIVER.CAN.VAR.CAN_1_NOMINAL_BIT_TIME.VALUE=9 DRIVER.CAN.VAR.CAN_3_MESSAGE_61_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_53_INT_ENA_REF.VALUE=0x00000000 @@ -4001,7 +4001,7 @@ DRIVER.CAN.VAR.CAN_3_MESSAGE_8_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_3_ENABLE.VALUE=1 DRIVER.CAN.VAR.CAN_2_MESSAGE_59_MASK.VALUE=0x000007FF -DRIVER.CAN.VAR.CAN_1_MESSAGE_10_INT_ENA.VALUE=0x00000800 +DRIVER.CAN.VAR.CAN_1_MESSAGE_10_INT_ENA.VALUE=0x00000400 DRIVER.CAN.VAR.CAN_1_MESSAGE_3_ENA.VALUE=0x80000000 DRIVER.CAN.VAR.CAN_1_PIN_MODE.VALUE=1 DRIVER.CAN.VAR.CAN_2_MESSAGE_58_ID.VALUE=58 @@ -4036,7 +4036,7 @@ DRIVER.CAN.VAR.CAN_3_MESSAGE_49_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_59_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_20_ID.VALUE=20 -DRIVER.CAN.VAR.CAN_1_MESSAGE_12_ID.VALUE=12 +DRIVER.CAN.VAR.CAN_1_MESSAGE_12_ID.VALUE=0x403 DRIVER.CAN.VAR.CAN_2_MESSAGE_40_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_32_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_2_MESSAGE_24_DLC.VALUE=8 @@ -4156,7 +4156,7 @@ DRIVER.CAN.VAR.CAN_3_MESSAGE_12_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_8_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_20_INT_ENA_REF.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_12_INT_ENA_REF.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_12_INT_ENA_REF.VALUE=0x00000001 DRIVER.CAN.VAR.CAN_1_MESSAGE_4_EOB.VALUE=0x00000080 DRIVER.CAN.VAR.CAN_1_MESSAGE_4_DIR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_30_MASK.VALUE=0x000007FF @@ -4669,7 +4669,7 @@ DRIVER.CAN.VAR.CAN_2_MESSAGE_47_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_39_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_8_EOB.VALUE=0x00000080 -DRIVER.CAN.VAR.CAN_1_MESSAGE_8_DIR.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_8_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_40_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_3_MESSAGE_32_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_3_MESSAGE_24_MASK.VALUE=0x000007FF @@ -4749,7 +4749,7 @@ DRIVER.CAN.VAR.CAN_2_MESSAGE_27_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_19_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_20_BOOL_ENA.VALUE=0 -DRIVER.CAN.VAR.CAN_1_MESSAGE_12_BOOL_ENA.VALUE=0 +DRIVER.CAN.VAR.CAN_1_MESSAGE_12_BOOL_ENA.VALUE=1 DRIVER.CAN.VAR.CAN_3_MESSAGE_6_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_40_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_32_RTR.VALUE=0x00000000 @@ -4791,7 +4791,7 @@ DRIVER.CAN.VAR.CAN_3_MESSAGE_12_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_12_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_PORT_TX_PSL.VALUE=1 -DRIVER.CAN.VAR.CAN_1_MESSAGE_7_ID.VALUE=0x80 +DRIVER.CAN.VAR.CAN_1_MESSAGE_7_ID.VALUE=0x70 DRIVER.CAN.VAR.CAN_1_MESSAGE_4_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_58_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_3_MESSAGE_41_EOB.VALUE=0x00000000 @@ -4853,7 +4853,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_45_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_37_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_29_RTR.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_8_ID.VALUE=0x200 +DRIVER.CAN.VAR.CAN_1_MESSAGE_8_ID.VALUE=0x80 DRIVER.CAN.VAR.CAN_3_MESSAGE_50_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_3_MESSAGE_42_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_3_MESSAGE_34_DLC.VALUE=8 @@ -4917,7 +4917,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_32_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_1_MESSAGE_24_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_1_MESSAGE_16_MASK.VALUE=0x000007FF -DRIVER.CAN.VAR.CAN_1_MESSAGE_8_INT_ENA.VALUE=0x00000400 +DRIVER.CAN.VAR.CAN_1_MESSAGE_8_INT_ENA.VALUE=0x00000800 DRIVER.CAN.VAR.CAN_3_MESSAGE_41_ID.VALUE=41 DRIVER.CAN.VAR.CAN_3_MESSAGE_33_ID.VALUE=33 DRIVER.CAN.VAR.CAN_3_MESSAGE_25_ID.VALUE=25 @@ -4928,7 +4928,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_33_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_25_INT_LEVEL.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_17_INT_LEVEL.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_9_ID.VALUE=0x402 +DRIVER.CAN.VAR.CAN_1_MESSAGE_9_ID.VALUE=0x110 DRIVER.CAN.VAR.CAN_1_MESSAGE_5_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_59_DLC.VALUE=8 DRIVER.CAN.VAR.CAN_1_SJW.VALUE=3 @@ -5213,7 +5213,7 @@ DRIVER.CAN.VAR.CAN_3_MESSAGE_8_EOB.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_3_MESSAGE_8_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_10_EOB.VALUE=0x00000080 -DRIVER.CAN.VAR.CAN_1_MESSAGE_10_DIR.VALUE=0x20000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_10_DIR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_SAMPLE_POINT.VALUE=66.667 DRIVER.CAN.VAR.CAN_2_MESSAGE_51_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_2_MESSAGE_43_BOOL_ENA.VALUE=0 @@ -5325,7 +5325,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_57_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_49_INT_ENA_REF.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_11_EOB.VALUE=0x00000080 -DRIVER.CAN.VAR.CAN_1_MESSAGE_11_DIR.VALUE=0x20000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_11_DIR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_20_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_2_MESSAGE_12_BOOL_ENA.VALUE=0 DRIVER.CAN.VAR.CAN_2_MESSAGE_7_BOOL_ENA.VALUE=0 @@ -5416,7 +5416,7 @@ DRIVER.CAN.VAR.CAN_2_MESSAGE_25_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_17_INT_ENA.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_20_ENA.VALUE=0x00000000 -DRIVER.CAN.VAR.CAN_1_MESSAGE_12_ENA.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_12_ENA.VALUE=0x80000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_11_BOOL_ENA.VALUE=1 DRIVER.CAN.VAR.CAN_3_MESSAGE_5_RTR.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_58_INT_LEVEL.VALUE=0x00000000 @@ -5430,7 +5430,7 @@ DRIVER.CAN.VAR.CAN_1_MESSAGE_20_EOB.VALUE=0x00000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_20_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_1_MESSAGE_12_EOB.VALUE=0x00000080 -DRIVER.CAN.VAR.CAN_1_MESSAGE_12_DIR.VALUE=0x00000000 +DRIVER.CAN.VAR.CAN_1_MESSAGE_12_DIR.VALUE=0x20000000 DRIVER.CAN.VAR.CAN_2_MESSAGE_30_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_22_MASK.VALUE=0x000007FF DRIVER.CAN.VAR.CAN_2_MESSAGE_14_MASK.VALUE=0x000007FF Index: firmware/source/can.c =================================================================== diff -u -r439894cb0508e69af3ece09ae57a62feac09e3f2 -r9301b9ec99beedbb49076dc03526622d313bd8cf --- firmware/source/can.c (.../can.c) (revision 439894cb0508e69af3ece09ae57a62feac09e3f2) +++ firmware/source/can.c (.../can.c) (revision 9301b9ec99beedbb49076dc03526622d313bd8cf) @@ -311,7 +311,7 @@ } /* Wait */ canREG1->IF1MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x80U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x70U & (uint32)0x000007FFU) << (uint32)18U); canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF1CMD = (uint8) 0xF8U; canREG1->IF1NO = 7U; @@ -330,8 +330,8 @@ } /* Wait */ canREG1->IF2MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x200U & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; + canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x80U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF2CMD = (uint8) 0xF8U; canREG1->IF2NO = 8U; @@ -349,7 +349,7 @@ } /* Wait */ canREG1->IF1MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x402U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x110U & (uint32)0x000007FFU) << (uint32)18U); canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF1CMD = (uint8) 0xF8U; canREG1->IF1NO = 9U; @@ -368,8 +368,8 @@ } /* Wait */ canREG1->IF2MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x403U & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; + canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x200U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF2CMD = (uint8) 0xF8U; canREG1->IF2NO = 10U; @@ -387,11 +387,30 @@ } /* Wait */ canREG1->IF1MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x070U & (uint32)0x000007FFU) << (uint32)18U); - canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; + canREG1->IF1ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x00000000U | (uint32)((uint32)((uint32)0x402U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF1MCTL = 0x00001000U | (uint32)0x00000400U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; canREG1->IF1CMD = (uint8) 0xF8U; canREG1->IF1NO = 11U; + /** - Initialize message 12 + * - Wait until IF2 is ready for use + * - Set message mask + * - Set message control word + * - Set message arbitration + * - Set IF2 control byte + * - Set IF2 message number + */ + /*SAFETYMCUSW 28 D MR:NA "Potentially infinite loop found - Hardware Status check for execution sequence" */ + while ((canREG1->IF2STAT & 0x80U) ==0x80U) + { + } /* Wait */ + + canREG1->IF2MSK = 0xC0000000U | (uint32)((uint32)((uint32)0x000007FFU & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF2ARB = (uint32)0x80000000U | (uint32)0x00000000U | (uint32)0x20000000U | (uint32)((uint32)((uint32)0x403U & (uint32)0x000007FFU) << (uint32)18U); + canREG1->IF2MCTL = 0x00001000U | (uint32)0x00000800U | (uint32)0x00000000U | (uint32)0x00000080U | (uint32)8U; + canREG1->IF2CMD = (uint8) 0xF8U; + canREG1->IF2NO = 12U; + /** - Setup IF1 for data transmission * - Wait until IF1 is ready for use * - Set IF1 control byte