PER Firmware
Loading...
Searching...
No Matches
main.c File Reference

"Driveline" node source code More...

#include "can_library/generated/DRIVELINE.h"
#include "common/rtos/rtos.h"
#include "common/heartbeat/heartbeat.h"
#include "common/phal_G4/adc/adc.h"
#include "common/phal_G4/fdcan/fdcan.h"
#include "common/phal_G4/gpio/gpio.h"
#include "common/phal_G4/rcc/rcc.h"
#include "common/phal_G4/pin_defs/g474ret6.h"
#include "common/utils/countof.h"
#include "common/watchdog/watchdog.h"
#include "config.h"
#include "oil_temps_table.h"
#include "pin_defs.h"
Include dependency graph for main.c:

Classes

struct  raw_adc1_values_t
 
struct  raw_adc2_values_t
 
struct  raw_adc3_values_t
 
struct  raw_adc4_values_t
 

Functions

void HardFault_Handler ()
 
void shockpots_periodic ()
 
void oil_temps_periodic ()
 
 DEFINE_CAN_TASKS ()
 
 RTOS_DEFINE_TASK (shockpots_periodic, FRONT_SHOCKPOTS_PERIOD_MS, TASK_PRIORITY_NORMAL, STACK_512)
 
 RTOS_DEFINE_TASK (oil_temps_periodic, FRONT_OIL_TEMPS_PERIOD_MS, TASK_PRIORITY_NORMAL, STACK_512)
 
 DEFINE_WATCHDOG_TASK ()
 
 DEFINE_HEARTBEAT_TASK (nullptr)
 
int main (void)
 

Variables

PHAL_GPIO_InitConfig_t gpio_config []
 
static const PHAL_ADC_ChannelConfig_t adc1_channels []
 
static const PHAL_ADC_Config_t adc1_config
 
volatile raw_adc1_values_t raw_adc1_values
 
static PHAL_ADC_Handle_t adc1_handle
 
static const PHAL_ADC_ChannelConfig_t adc2_channels []
 
static const PHAL_ADC_Config_t adc2_config
 
volatile raw_adc2_values_t raw_adc2_values
 
static PHAL_ADC_Handle_t adc2_handle
 
static const PHAL_ADC_ChannelConfig_t adc3_channels []
 
static const PHAL_ADC_Config_t adc3_config
 
volatile raw_adc3_values_t raw_adc3_values
 
static PHAL_ADC_Handle_t adc3_handle
 
static const PHAL_ADC_ChannelConfig_t adc4_channels []
 
static const PHAL_ADC_Config_t adc4_config
 
volatile raw_adc4_values_t raw_adc4_values
 
static PHAL_ADC_Handle_t adc4_handle
 
uint16_t left_length_scaled = 0
 
uint16_t right_length_scaled = 0
 
int16_t left_celsius_scaled = 0
 
int16_t right_celsius_scaled = 0
 

Detailed Description

"Driveline" node source code

Author
Irving Wang (irvin.nosp@m.gw@p.nosp@m.urdue.nosp@m..edu)
Anya Pokrovskaya (apokr.nosp@m.ovs@.nosp@m.purdu.nosp@m.e.ed.nosp@m.u)

Function Documentation

◆ DEFINE_CAN_TASKS()

DEFINE_CAN_TASKS ( )

◆ DEFINE_HEARTBEAT_TASK()

DEFINE_HEARTBEAT_TASK ( nullptr )

◆ DEFINE_WATCHDOG_TASK()

DEFINE_WATCHDOG_TASK ( )

◆ HardFault_Handler()

void HardFault_Handler ( void )
extern

◆ main()

int main ( void )
Here is the call graph for this function:

◆ oil_temps_periodic()

void oil_temps_periodic ( )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ RTOS_DEFINE_TASK() [1/2]

RTOS_DEFINE_TASK ( oil_temps_periodic ,
FRONT_OIL_TEMPS_PERIOD_MS ,
TASK_PRIORITY_NORMAL ,
STACK_512  )

◆ RTOS_DEFINE_TASK() [2/2]

RTOS_DEFINE_TASK ( shockpots_periodic ,
FRONT_SHOCKPOTS_PERIOD_MS ,
TASK_PRIORITY_NORMAL ,
STACK_512  )

◆ shockpots_periodic()

void shockpots_periodic ( )
Here is the caller graph for this function:

Variable Documentation

◆ adc1_channels

const PHAL_ADC_ChannelConfig_t adc1_channels[]
static
Initial value:
= {
{.channel = OIL_TEMP_L_ADC_CH},
}
#define OIL_TEMP_L_ADC_CH
Definition pin_defs.h:33

◆ adc1_config

const PHAL_ADC_Config_t adc1_config
static
Initial value:
= {
.instance = ADC1,
.channels = adc1_channels,
.channel_count = sizeof(adc1_channels) / sizeof(adc1_channels[0]),
}
static const PHAL_ADC_ChannelConfig_t adc1_channels[]
Definition main.c:50

◆ adc1_handle

PHAL_ADC_Handle_t adc1_handle
static

◆ adc2_channels

const PHAL_ADC_ChannelConfig_t adc2_channels[]
static
Initial value:
= {
{.channel = OIL_TEMP_R_ADC_CH},
}
#define OIL_TEMP_R_ADC_CH
Definition pin_defs.h:37

◆ adc2_config

const PHAL_ADC_Config_t adc2_config
static
Initial value:
= {
.instance = ADC2,
.channels = adc2_channels,
.channel_count = sizeof(adc2_channels) / sizeof(adc2_channels[0]),
}
static const PHAL_ADC_ChannelConfig_t adc2_channels[]
Definition main.c:66

◆ adc2_handle

PHAL_ADC_Handle_t adc2_handle
static

◆ adc3_channels

const PHAL_ADC_ChannelConfig_t adc3_channels[]
static
Initial value:
= {
{.channel = SHOCKPOT_LEFT_ADC_CHNL},
}
#define SHOCKPOT_LEFT_ADC_CHNL
Definition pin_defs.h:24

◆ adc3_config

const PHAL_ADC_Config_t adc3_config
static
Initial value:
= {
.instance = ADC3,
.channels = adc3_channels,
.channel_count = sizeof(adc3_channels) / sizeof(adc3_channels[0]),
}
static const PHAL_ADC_ChannelConfig_t adc3_channels[]
Definition main.c:83

◆ adc3_handle

PHAL_ADC_Handle_t adc3_handle
static

◆ adc4_channels

const PHAL_ADC_ChannelConfig_t adc4_channels[]
static
Initial value:
= {
}
#define SHOCKPOT_RIGHT_ADC_CHNL
Definition pin_defs.h:28

◆ adc4_config

const PHAL_ADC_Config_t adc4_config
static
Initial value:
= {
.instance = ADC4,
.channels = adc4_channels,
.channel_count = sizeof(adc4_channels) / sizeof(adc4_channels[0]),
}
static const PHAL_ADC_ChannelConfig_t adc4_channels[]
Definition main.c:99

◆ adc4_handle

PHAL_ADC_Handle_t adc4_handle
static

◆ gpio_config

PHAL_GPIO_InitConfig_t gpio_config[]
Initial value:
= {
}
#define ERROR_LED_PIN
Definition main.h:20
#define HEARTBEAT_LED_PIN
Definition main.h:18
#define ERROR_LED_PORT
Definition main.h:19
#define CONNECTION_LED_PIN
Definition main.h:22
#define HEARTBEAT_LED_PORT
Definition main.h:17
#define CONNECTION_LED_PORT
Definition main.h:21
static const PHAL_GPIO_InitConfig_t PHAL_PIN_DEFS_FDCAN2_RX_PB5
Definition g474ret6.h:34
static const PHAL_GPIO_InitConfig_t PHAL_PIN_DEFS_FDCAN2_TX_PB6
Definition g474ret6.h:35
@ GPIO_OUTPUT_LOW_SPEED
Definition gpio.h:32
#define PHAL_GPIO_INIT_OUTPUT(gpio_bank, pin_num, ospeed_sel)
Construct PHAL_GPIO_InitConfig_t for an output (push-pull) pin.
Definition gpio.h:154
#define PHAL_GPIO_INIT_ANALOG(gpio_bank, pin_num)
Construct PHAL_GPIO_InitConfig_t for an analog pin.
Definition gpio.h:191
#define OIL_TEMP_R_GPIO_Port
Definition pin_defs.h:35
#define SHOCKPOT_LEFT_GPIO_PORT
Definition pin_defs.h:22
#define SHOCKPOT_LEFT_GPIO_PIN
Definition pin_defs.h:23
#define SHOCKPOT_RIGHT_GPIO_PIN
Definition pin_defs.h:27
#define SHOCKPOT_RIGHT_GPIO_PORT
Definition pin_defs.h:26
#define OIL_TEMP_L_Pin
Definition pin_defs.h:32
#define OIL_TEMP_L_GPIO_Port
Definition pin_defs.h:31
#define OIL_TEMP_R_Pin
Definition pin_defs.h:36

◆ left_celsius_scaled

int16_t left_celsius_scaled = 0

◆ left_length_scaled

uint16_t left_length_scaled = 0

◆ raw_adc1_values

volatile raw_adc1_values_t raw_adc1_values

◆ raw_adc2_values

volatile raw_adc2_values_t raw_adc2_values

◆ raw_adc3_values

volatile raw_adc3_values_t raw_adc3_values

◆ raw_adc4_values

volatile raw_adc4_values_t raw_adc4_values

◆ right_celsius_scaled

int16_t right_celsius_scaled = 0

◆ right_length_scaled

uint16_t right_length_scaled = 0