#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