Added encoder

This commit is contained in:
Richard Li
2025-01-24 19:00:12 +01:00
committed by Malte Langermann
parent 0e6edbf636
commit 42d464bacb
4 changed files with 26 additions and 12 deletions
+10 -4
View File
@@ -42,15 +42,15 @@ add_definitions(-DSTM32_SUPPORT_32BIT_TIMERS)
if(PCBREV STREQUAL NB4P)
set(FLAVOUR nb4p)
add_definitions(-DRADIO_NB4P)
set(ROTARY_ENCODER YES)
elseif(PCBREV STREQUAL PL18EV)
set(FLAVOUR pl18ev)
add_definitions(-DRADIO_PL18EV)
add_definitions(-DRADIO_PL18EV -DUSE_HATS_AS_KEYS)
set(WIRELESS_CHARGER YES)
set(FLYSKY_GIMBAL ON)
set(ROTARY_ENCODER YES)
else()
set(FLAVOUR pl18)
add_definitions(-DRADIO_PL18)
add_definitions(-DRADIO_PL18 -DUSE_HATS_AS_KEYS)
set(WIRELESS_CHARGER YES)
set(FLYSKY_GIMBAL ON)
@@ -74,7 +74,7 @@ add_definitions(
-DSTM32F429_439xx -DSTM32F429xx
-DSDRAM -DCOLORLCD -DLIBOPENUI
-DHARDWARE_TOUCH -DHARDWARE_KEYS
-DSOFTWARE_KEYBOARD -DUSE_HATS_AS_KEYS)
-DSOFTWARE_KEYBOARD)
set(SDRAM ON)
@@ -124,6 +124,12 @@ set(BOARD_COMMON_SRC
drivers/frftl.cpp
)
if(ROTARY_ENCODER)
list(APPEND BOARD_COMMON_SRC
targets/common/arm/stm32/rotary_encoder_driver.cpp
)
endif()
# Bootloader board library
add_library(board_bl OBJECT EXCLUDE_FROM_ALL
${BOARD_COMMON_SRC}
+4
View File
@@ -36,6 +36,7 @@
#include "hal/watchdog_driver.h"
#include "hal/usb_driver.h"
#include "hal/gpio.h"
#include "hal/rotary_encoder.h"
#include "globals.h"
#include "sdcard.h"
@@ -164,6 +165,9 @@ void boardInit()
keysInit();
switchInit();
#if defined(ROTARY_ENCODER_NAVIGATION) && !defined(USE_HATS_AS_KEYS)
rotaryEncoderInit();
#endif
#if defined(RADIO_NB4P)
disableVoiceChip();
#endif
@@ -56,7 +56,9 @@ extern BitmapBuffer * lcd;
void bootloaderInitScreen()
{
lcdInitDisplayDriver();
#if defined(USE_HATS_AS_KEYS)
setHatsAsKeys(true);
#endif
}
static void bootloaderDrawTitle(const char* text)
+10 -8
View File
@@ -473,10 +473,9 @@
#if defined(RADIO_NB4P)
// Rotary Encoder
#define ROTARY_ENCODER_RCC_APB1Periph RCC_APB1Periph_TIM12
#define ROTARY_ENCODER_GPIO GPIOH
#define ROTARY_ENCODER_GPIO_PIN_A GPIO_Pin_11 // PH.11
#define ROTARY_ENCODER_GPIO_PIN_B GPIO_Pin_10 // PH.10
#define ROTARY_ENCODER_GPIO_PIN_A LL_GPIO_PIN_11 // PH.11
#define ROTARY_ENCODER_GPIO_PIN_B LL_GPIO_PIN_10 // PH.10
#define ROTARY_ENCODER_POSITION() ((ROTARY_ENCODER_GPIO->IDR >> 10) & 0x03)
#define ROTARY_ENCODER_EXTI_LINE1 LL_EXTI_LINE_11
#define ROTARY_ENCODER_EXTI_LINE2 LL_EXTI_LINE_10
@@ -487,11 +486,9 @@
#define ROTARY_ENCODER_EXTI_PORT LL_SYSCFG_EXTI_PORTH
#define ROTARY_ENCODER_EXTI_SYS_LINE1 LL_SYSCFG_EXTI_LINE11
#define ROTARY_ENCODER_EXTI_SYS_LINE2 LL_SYSCFG_EXTI_LINE10
#define ROTARY_ENCODER_TIMER TIM12
#define ROTARY_ENCODER_TIMER_IRQn TIM8_BRK_TIM12_IRQn
#define ROTARY_ENCODER_TIMER_IRQHandler TIM8_BRK_TIM12_IRQHandler
#else
#define ROTARY_ENCODER_RCC_APB1Periph 0
#define ROTARY_ENCODER_TIMER TIM13
#define ROTARY_ENCODER_TIMER_IRQn TIM8_UP_TIM13_IRQn
#define ROTARY_ENCODER_TIMER_IRQHandler TIM8_UP_TIM13_IRQHandler
#endif
// SPI NOR Flash
@@ -644,8 +641,13 @@
#define EXTMODULE_RX_GPIO_AF_USART GPIO_AF_USART6
#define EXTMODULE_TIMER TIM8
#define EXTMODULE_TIMER_Channel LL_TIM_CHANNEL_CH1
#if defined(RADIO_NB4P)
#define EXTMODULE_TIMER_IRQn TIM5_IRQn
#define EXTMODULE_TIMER_IRQHandler TIM5_IRQHandler
#else
#define EXTMODULE_TIMER_IRQn TIM8_UP_TIM13_IRQn
#define EXTMODULE_TIMER_IRQHandler TIM8_UP_TIM13_IRQHandler
#endif
#define EXTMODULE_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
#define EXTMODULE_TIMER_TX_GPIO_AF LL_GPIO_AF_3
//USART