diff --git a/Inc/mmr_can.h b/Inc/mmr_can.h index c3441d0..b1a0a79 100644 --- a/Inc/mmr_can.h +++ b/Inc/mmr_can.h @@ -30,6 +30,7 @@ #define MMR_CAN_MAX_DATA_LENGTH 8 #endif +typedef uint32_t (*MmrCanTickProvider)(); typedef uint8_t CanRxBuffer[MMR_CAN_MAX_DATA_LENGTH]; @@ -155,6 +156,9 @@ typedef struct { MMR_CAN_FilterConfig(phcan, MMR_CAN_GetDefaultFilterSettings()) +extern MmrCanTickProvider __mmr_can_tickProvider; + +void MMR_CAN_Init(MmrCanTickProvider tickProvider); HalStatus MMR_CAN_BasicSetupAndStart(CanHandle *hcan); HalStatus MMR_CAN_FilterConfig(CanHandle *hcan, MmrCanFilterSettings settings); CanFilterMask MMR_CAN_AlignStandardMask(CanFilterMask baseMask); diff --git a/Src/mmr_can.c b/Src/mmr_can.c index 6d4af6b..0a59c9c 100644 --- a/Src/mmr_can.c +++ b/Src/mmr_can.c @@ -2,6 +2,14 @@ #include "mmr_can_util.h" +MmrCanTickProvider __mmr_can_tickProvider; + + +void MMR_CAN_Init(MmrCanTickProvider tickProvider) { + __mmr_can_tickProvider = tickProvider; +} + + /** * @brief * Initializes the filter using the values diff --git a/Src/mmr_can_scs_manager.c b/Src/mmr_can_scs_manager.c index adc5564..f66df49 100644 --- a/Src/mmr_can_scs_manager.c +++ b/Src/mmr_can_scs_manager.c @@ -82,7 +82,7 @@ MmrCanScsCheckResult checkScs(MmrCanScsEntry *entry) { TimerRange getCurrentTime() { - return 0; //TODO: HAL.... + return __mmr_can_tickProvider(); }