#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 { uint16_t u_cell_min; // Minimale Zellspannung uint16_t u_batt; // Batteriespannung (pre-AIR-voltage) 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 int16_t t_inv; int16_t t_wat; int16_t p_wat; uint8_t speed; InverterData inverter; bool rev_lim; // Drehzahllimit Bit int16_t revol; // Drehzahl int16_t wheel_speed; } vehicle_data_type; extern volatile stw_data_type Stw_data; extern volatile vehicle_data_type Vehicle_data; #endif