mirror of
https://github.com/adrigongv23/G26---Telemetry-Software.git
synced 2026-08-25 19:43:16 +02:00
83 lines
No EOL
1.9 KiB
C++
83 lines
No EOL
1.9 KiB
C++
#ifndef G24WHEELBUTTONS_HPP
|
|
#define G24WHEELBUTTONS_HPP
|
|
|
|
#include "common/common_libraries.hpp"
|
|
#include "can.hpp"
|
|
#include "led_strip.hpp"
|
|
#include "data_processor.hpp"
|
|
#include "freertos/FreeRTOS.h"
|
|
#include "freertos/semphr.h"
|
|
#include "freertos/task.h"
|
|
|
|
#include "common/crowpanel_pins.h"
|
|
|
|
#include "can.hpp"
|
|
|
|
#define B1_PIN GPIO_NUM_2
|
|
#define B2_PIN GPIO_NUM_4
|
|
#define B3_PIN GPIO_NUM_42
|
|
#define B4_PIN GPIO_NUM_40
|
|
|
|
/*
|
|
#define B1_PIN GPIO_AVAILABLE_2
|
|
#define B2_PIN GPIO_AVAILABLE_3
|
|
#define B3_PIN GPIO_AVAILABLE_4
|
|
#define B4_PIN GPIO_AVAILABLE_5
|
|
*/
|
|
#define B1_LED_PIN GPIO_NUM_3
|
|
#define B2_LED_PIN GPIO_NUM_5
|
|
#define B3_LED_PIN GPIO_NUM_41
|
|
#define B4_LED_PIN GPIO_NUM_39
|
|
|
|
#define LEVA_IZQ_PIN GPIO_NUM_15
|
|
#define LEVA_DER_PIN GPIO_NUM_16
|
|
/*
|
|
#define LEVA_IZQ_PIN GPIO_AVAILABLE_10
|
|
#define LEVA_DER_PIN GPIO_AVAILABLE_11
|
|
*/
|
|
#define E1_PIN_A GPIO_NUM_11
|
|
#define E1_PIN_B GPIO_NUM_10
|
|
#define E2_PIN_A GPIO_NUM_36
|
|
#define E2_PIN_B GPIO_NUM_35
|
|
|
|
#define E1_BUTTON_PIN GPIO_NUM_12
|
|
#define E2_BUTTON_PIN GPIO_NUM_34
|
|
|
|
#define PRESS_TIME 30
|
|
|
|
class G24WheelButtons {
|
|
public:
|
|
void ejecucion();
|
|
void begin();
|
|
static void botonera(void *arg);
|
|
static void updateTask(void *arg);
|
|
void set_can(CAN *can){
|
|
_can = can;
|
|
}
|
|
|
|
private:
|
|
CAN *_can=nullptr;
|
|
void estado_boton(gpio_num_t buttonPin, volatile bool &buttonState, volatile bool &laststate, volatile unsigned long &lastPressTime, volatile unsigned long &temporizador);
|
|
void check_boton();
|
|
|
|
static const unsigned long debounceTime = 50; // milliseconds
|
|
|
|
struct boton{
|
|
volatile bool estado=false;
|
|
volatile bool last_estado=false;
|
|
volatile unsigned long lastPressTime=0;
|
|
volatile unsigned long temporizador=0;
|
|
};
|
|
|
|
boton B1;
|
|
boton B2;
|
|
boton B3;
|
|
boton B4;
|
|
boton levaizq;
|
|
boton levader;
|
|
|
|
bool estado_tarea=false;
|
|
TaskHandle_t manejador_tarea=nullptr;
|
|
};
|
|
|
|
#endif |