/* * SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ #pragma once #include #include #include "esp_err.h" #include "esp_log.h" #include "esp_timer.h" #include "esp_adc/adc_oneshot.h" #include "esp_adc/adc_cali.h" #include "esp_adc/adc_cali_scheme.h" #include "esp_intr_alloc.h" #include "driver/gpio.h" #include "freertos/FreeRTOS.h" #include "freertos/queue.h" #include "hidd.h" #define ADC_UNIT ADC_UNIT_1 #define JOYSTICK_IN_X_ADC_CHANNEL ADC_CHANNEL_0 #define JOYSTICK_IN_Y_ADC_CHANNEL ADC_CHANNEL_1 #define ADC_BITWIDTH ADC_BITWIDTH_DEFAULT #define ADC_ATTEN ADC_ATTEN_DB_11 #define ADC_RAW_MAX 4095 #if CONFIG_BUTTON_INPUT_MODE_BOOT // If without external hardware, the boot button serves as button A #define PIN_BUTTON_BOOT CONFIG_BOARD_BUTTON_GPIO #else // CONFIG_BUTTON_INPUT_MODE_GPIO #define PIN_BUTTON_A CONFIG_BUTTON_PIN_A #define PIN_BUTTON_B CONFIG_BUTTON_PIN_B #define PIN_BUTTON_C CONFIG_BUTTON_PIN_C #define PIN_BUTTON_D CONFIG_BUTTON_PIN_D #endif #ifdef CONFIG_BUTTON_INPUT_MODE_BOOT #define BUTTON_PIN_BIT_MASK (1ULL<