"Abox" node source code
More...
#include "main.h"
#include <stdint.h>
#include "adbms.h"
#include "common/can_library/faults_common.h"
#include "common/can_library/generated/A_BOX.h"
#include "common/freertos/freertos.h"
#include "common/phal/can.h"
#include "common/phal/gpio.h"
#include "common/phal/rcc.h"
#include "common/phal/adc.h"
#include "common/heartbeat/heartbeat.h"
|
|
void | HardFault_Handler (void) |
| |
|
void | bms_task (void) |
| |
|
void | check_faults (void) |
| |
|
void | report_telemetry (void) |
| |
|
| DEFINE_TASK (bms_task, 200, osPriorityHigh, STACK_2048) |
| |
|
| DEFINE_TASK (CAN_rx_update, 0, osPriorityHigh, STACK_2048) |
| |
|
| DEFINE_TASK (CAN_tx_update, 2, osPriorityNormal, STACK_2048) |
| |
|
| DEFINE_TASK (check_faults, 10, osPriorityNormal, STACK_512) |
| |
|
| DEFINE_TASK (fault_library_periodic, A_BOX_FAULT_SYNC_PERIOD_MS, osPriorityNormal, STACK_1024) |
| |
|
| DEFINE_TASK (report_telemetry, PACK_STATS_PERIOD_MS, osPriorityLow, STACK_512) |
| |
|
| DEFINE_HEARTBEAT_TASK (nullptr) |
| |
|
int | main (void) |
| |
◆ adc_channel_config
Initial value:= {
{.channel = ISENSE_ADC_CHANNEL, .rank = 1, .sampling_time = ADC_CHN_SMP_CYCLES_480},
}
◆ adc_config
Initial value:= {
.prescaler = ADC_CLK_PRESC_2,
.resolution = ADC_RES_12_BIT,
.data_align = ADC_DATA_ALIGN_RIGHT,
.cont_conv_mode = true,
.dma_mode = ADC_DMA_CIRCULAR,
.periph = ADC1,
}
◆ bms_spi_config
Initial value:= {
.data_len = 8,
.nss_sw = false,
.nss_gpio_port = SPI1_CS_PORT,
.nss_gpio_pin = SPI1_CS_PIN,
.rx_dma_cfg = nullptr,
.tx_dma_cfg = nullptr,
.periph = SPI1,
.cpol = 0,
.cpha = 0,
.data_rate = 500'000,
}
◆ clock_config
Initial value:= {
.clock_source = CLOCK_SOURCE_HSE,
.use_pll = false,
.system_clock_target_hz = TargetCoreClockrateHz,
.ahb_clock_target_hz = (TargetCoreClockrateHz / 1),
.apb1_clock_target_hz = (TargetCoreClockrateHz / (1)),
.apb2_clock_target_hz = (TargetCoreClockrateHz / (1)),
}