95 lines
2.5 KiB
C++
95 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 {
|
|
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 |