54 lines
900 B
C
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_ */
|