pdu/Software/Code/Core/Inc/channel_control.h

54 lines
900 B
C

/*
* channel_control.h
*
* Created on: Mar 10, 2025
* Author: janek
*/
#ifndef INC_CHANNEL_CONTROL_H_
#define INC_CHANNEL_CONTROL_H_
#include "stm32f3xx_hal.h"
typedef union {
struct {
uint8_t acc_cooling : 1;
uint8_t ts_cooling : 1;
uint8_t drs : 1;
uint8_t acu : 1;
uint8_t epsc : 1;
uint8_t inverter : 1;
uint8_t lidar : 1;
uint8_t misc : 1;
};
uint8_t porta;
} gpio_port_a;
typedef union {
struct {
uint8_t alwayson : 1;
uint8_t sdc : 1;
uint8_t ebs1 : 1;
uint8_t ebs2 : 1;
uint8_t ebs3 : 1;
uint8_t NC1 : 1; // not used
uint8_t NC2 : 1; // not used
uint8_t NC3 : 1; // not used
};
uint8_t portb;
} gpio_port_b;
typedef union {
struct {
gpio_port_a porta;
gpio_port_b portb;
};
uint16_t gpios_bitmask;
} enable_gpios;
void ChannelControl_init();
void ChannelControl_UpdateGPIOs(enable_gpios);
#endif /* INC_CHANNEL_CONTROL_H_ */