steering-wheel/lib/FT18e_STW_INIT/FT18e_STW_INIT.h

98 lines
2.5 KiB
C++

#include "Arduino.h"
#ifndef FT18e_STW_Init
#define FT18e_STW_Init
#define l 78 //test_led
#define led1 12 //PD8
#define led2 11 //PD7
#define led3 9 //PC21
#define led4 8 //PC22
#define led5 7 //PC23
#define led6 6 //PC24
#define led7 5 //PC25
#define led8 4 //PC26 und PA29
#define led9 3 //PC28
#define led10 2 //PB25
#define led11 10 //PC29 und PA28
#define led12 22 //PB26
#define led13 19 //PA10
#define led14 13 //PB27
#define led15 17 //PA12
#define led16 18 //PA11
#define enc1PinA 37
#define enc1PinB 38
#define enc1PinS 35
#define enc2PinA 40
#define enc2PinB 41
#define enc2PinS 39
constexpr int PIN_BUTTON_LL = 47;
constexpr int PIN_BUTTON_LR = 48;
constexpr int PIN_BUTTON_RL = 46;
constexpr int PIN_BUTTON_RR = 44;
constexpr int16_t RPM_THRESH_1 = 1000;
constexpr int16_t RPM_THRESH_2 = 4000;
constexpr int16_t RPM_THRESH_3 = 6000;
constexpr int16_t RPM_THRESH_4 = 8000;
constexpr int16_t RPM_THRESH_5 = 10000;
constexpr int16_t RPM_THRESH_6 = 12000;
constexpr int16_t RPM_THRESH_7 = 14000;
constexpr int16_t RPM_THRESH_8 = 16000;
constexpr int16_t RPM_THRESH_9 = 18000;
constexpr int16_t RPM_THRESH_10 = 20000;
constexpr int16_t LED_THRESH_T_MOT = 7000; // 1/100°C
constexpr int16_t LED_THRESH_T_INV = 6000; // 1/100°C
constexpr int16_t LED_THRESH_T_BAT = 5000; // 1/100°C
constexpr uint16_t LED_THRESH_U_BATT = 350; // 1/100V
void set_pins(void);
void read_buttons(void);
void read_rotary(void); // read rotary switches
typedef struct
{
bool button_ll; // Left side, left button
bool button_lr; // Left side, right button
bool button_rl; // Right side, left button
bool button_rr; // Right side, right button
uint8_t mode;
uint8_t displayindex; //index für Displayanzeige
uint8_t error_type; //Extrainfos über Error-LED
} stw_data_type;
struct InverterData
{
bool ready;
bool derating;
bool warning;
bool error;
bool on;
bool precharge;
bool ams_emerg;
bool ts_active;
};
typedef struct
{
uint8_t e_thro; // E-Drossel
int16_t revol; // Drehzahl
int16_t t_mot_l; // Motor-Wasser-Temperatur Links
int16_t t_mot_r; // Motor-Wasser-Temperatur Rechts
int16_t t_cell_max; // Maximale Zelltemperatur
uint16_t u_cell_min; // Minimale Zellspannung
uint16_t u_batt; // Batteriespannung (pre-AIR-voltage)
bool rev_lim; // Drehzahllimit Bit
int16_t p_wat;
int16_t t_wat;
uint8_t speed;
InverterData inverter;
int16_t t_inv;
} vehicle_data_type;
extern volatile stw_data_type Stw_data;
extern volatile vehicle_data_type Vehicle_data;
#endif