4d5c1934a4
* Add send scs * Create scs dict * Fix compilation errors * Fix compile error * Change default include * Add Timer SCS manager * Remove unused files * Fix bugs * Add documentation * Add SCS manager bozza * Refactor * Use same naming convention * Add tick provider * Update header * Fix header bit translation * Test HandleNext OK * Remove linting * Remove indents * Add documentation * Improve docs * Remove pointer * Remove mailbox * Remove useless comment * Add newline * Fix compile errors * Separate scs entries from manager * Refactor * Fix include guards Co-authored-by: nicolagutierrez <nicolagutierrez.ng@gmail.com>
54 lines
1.1 KiB
C
54 lines
1.1 KiB
C
#include "mmr_can.h"
|
|
#include "mmr_can_util.h"
|
|
|
|
|
|
MmrCanTickProvider __mmr_can_tickProvider;
|
|
|
|
|
|
void MMR_CAN_SetTickProvider(MmrCanTickProvider tickProvider) {
|
|
__mmr_can_tickProvider = tickProvider;
|
|
}
|
|
|
|
|
|
uint32_t MMR_CAN_GetCurrentTick() {
|
|
return __mmr_can_tickProvider();
|
|
}
|
|
|
|
|
|
HalStatus MMR_CAN_BasicSetupAndStart(CanHandle *hcan) {
|
|
return
|
|
MMR_CAN_FilterConfigDefault(hcan) |
|
|
HAL_CAN_Start(hcan)
|
|
;
|
|
}
|
|
|
|
|
|
HalStatus MMR_CAN_FilterConfig(CanHandle *hcan, MmrCanFilterSettings settings) {
|
|
CanFilter filter = {
|
|
.FilterActivation = settings.enabled
|
|
? CAN_FILTER_ENABLE
|
|
: CAN_FILTER_DISABLE,
|
|
|
|
.FilterIdHigh = settings.idMask,
|
|
.FilterMaskIdHigh = settings.idMask,
|
|
.FilterFIFOAssignment = settings.fifo,
|
|
.FilterBank = settings.bank,
|
|
.SlaveStartFilterBank = settings.slaveBankStart,
|
|
.FilterMode = CAN_FILTERMODE_IDMASK,
|
|
.FilterScale = CAN_FILTERSCALE_32BIT,
|
|
};
|
|
|
|
return HAL_CAN_ConfigFilter(hcan, &filter);
|
|
}
|
|
|
|
|
|
MmrCanFilterSettings MMR_CAN_GetDefaultFilterSettings() {
|
|
return (MmrCanFilterSettings) {
|
|
.enabled = true,
|
|
.fifo = MMR_CAN_FILTER_FIFO,
|
|
.idMask = 0,
|
|
.bank = 0,
|
|
.slaveBankStart = 14,
|
|
};
|
|
}
|