From 383f0b802178b3fb599399fcc66f3a00eb889812 Mon Sep 17 00:00:00 2001 From: a1012112796 <1012112796@qq.com> Date: Mon, 12 Jun 2023 17:27:49 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=8D=95=E8=8E=B7=E9=A9=B1?= =?UTF-8?q?=E5=8A=A8=E8=A1=A5=E5=85=85=20TIM12=20=E5=AE=9A=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: a1012112796 <1012112796@qq.com> --- .config | 46 +++++++--- board/Kconfig | 18 ++++ libraries/HAL_Drivers/drv_inputcapture.c | 34 +++++++ project.uvoptx | 88 +++++++++---------- project.uvprojx | 38 ++++---- .../components/drivers/misc/rt_inputcapture.c | 2 +- rtconfig.h | 7 +- 7 files changed, 156 insertions(+), 77 deletions(-) diff --git a/.config b/.config index b0a38e9..cd43031 100644 --- a/.config +++ b/.config @@ -255,7 +255,6 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y # CONFIG_PKG_USING_KAWAII_MQTT is not set # CONFIG_PKG_USING_BC28_MQTT is not set # CONFIG_PKG_USING_WEBTERMINAL is not set -# CONFIG_PKG_USING_LIBMODBUS is not set # CONFIG_PKG_USING_FREEMODBUS is not set # CONFIG_PKG_USING_NANOPB is not set @@ -333,6 +332,7 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y # CONFIG_PKG_USING_NET_SERVER is not set # CONFIG_PKG_USING_ZFTP is not set # CONFIG_PKG_USING_WOL is not set +# CONFIG_PKG_USING_ZEPHYR_POLLING is not set # # security packages @@ -401,18 +401,13 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y # CONFIG_PKG_USING_MP3PLAYER is not set # CONFIG_PKG_USING_TINYJPEG is not set # CONFIG_PKG_USING_UGUI is not set - -# -# PainterEngine: A cross-platform graphics application framework written in C language -# -# CONFIG_PKG_USING_PAINTERENGINE is not set -# CONFIG_PKG_USING_PAINTERENGINE_AUX is not set # CONFIG_PKG_USING_MCURSES is not set # CONFIG_PKG_USING_TERMBOX is not set # CONFIG_PKG_USING_VT100 is not set # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_PERSIMMON is not set +# CONFIG_PKG_USING_3GPP_AMRNB is not set # # tools packages @@ -422,6 +417,7 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_SEGGER_RTT is not set +# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set # CONFIG_PKG_USING_RDB is not set # CONFIG_PKG_USING_ULOG_EASYFLASH is not set # CONFIG_PKG_USING_LOGMGR is not set @@ -459,6 +455,7 @@ CONFIG_ULOG_BACKEND_USING_CONSOLE=y # CONFIG_PKG_USING_HASH_MATCH is not set # CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set # CONFIG_PKG_USING_VOFA_PLUS is not set +# CONFIG_PKG_USING_RT_TRACE is not set # # system packages @@ -538,6 +535,7 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # CONFIG_PKG_USING_QPC is not set # CONFIG_PKG_USING_AGILE_UPGRADE is not set # CONFIG_PKG_USING_FLASH_BLOB is not set +# CONFIG_PKG_USING_MLIBC is not set # # peripheral libraries and drivers @@ -609,6 +607,7 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # CONFIG_PKG_USING_CW2015 is not set # CONFIG_PKG_USING_ICM20608 is not set # CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_STHS34PF80 is not set # # touch drivers @@ -621,6 +620,7 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # CONFIG_PKG_USING_FT5426 is not set # CONFIG_PKG_USING_FT6236 is not set # CONFIG_PKG_USING_XPT2046_TOUCH is not set +# CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set # CONFIG_PKG_USING_STM32_SDIO is not set # CONFIG_PKG_USING_ESP_IDF is not set @@ -633,7 +633,6 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # CONFIG_PKG_USING_LKDGUI is not set # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set -# CONFIG_PKG_USING_WM_LIBRARIES is not set # # Kendryte SDK @@ -647,6 +646,7 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # CONFIG_PKG_USING_AT24CXX is not set # CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set # CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_ILI9341 is not set # CONFIG_PKG_USING_I2C_TOOLS is not set # CONFIG_PKG_USING_NRF24L01 is not set # CONFIG_PKG_USING_RPLIDAR is not set @@ -690,14 +690,17 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # CONFIG_PKG_USING_MISAKA_AT24CXX is not set # CONFIG_PKG_USING_MISAKA_RGB_BLING is not set # CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set -# CONFIG_PKG_USING_BL_MCU_SDK is not set # CONFIG_PKG_USING_SOFT_SERIAL is not set # CONFIG_PKG_USING_MB85RS16 is not set # CONFIG_PKG_USING_RFM300 is not set # CONFIG_PKG_USING_IO_INPUT_FILTER is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_LRF_NV7LIDAR is not set +# CONFIG_PKG_USING_AIP650 is not set # CONFIG_PKG_USING_FINGERPRINT is not set +# CONFIG_PKG_USING_BT_ECB02C is not set +# CONFIG_PKG_USING_UAT is not set +# CONFIG_PKG_USING_SPI_TOOLS is not set # # AI packages @@ -716,7 +719,10 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # Signal Processing and Control Algorithm Packages # # CONFIG_PKG_USING_FIRE_PID_CURVE is not set +# CONFIG_PKG_USING_QPID is not set # CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_KISSFFT is not set # # miscellaneous packages @@ -747,6 +753,7 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # CONFIG_PKG_USING_TETRIS is not set # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set +# CONFIG_PKG_USING_MORSE is not set # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -762,7 +769,6 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # CONFIG_PKG_USING_DSTR is not set # CONFIG_PKG_USING_TINYFRAME is not set # CONFIG_PKG_USING_KENDRYTE_DEMO is not set -# CONFIG_PKG_USING_DIGITALCTRL is not set # CONFIG_PKG_USING_UPACKER is not set # CONFIG_PKG_USING_UPARAM is not set # CONFIG_PKG_USING_HELLO is not set @@ -790,6 +796,7 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # # Projects # +# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set @@ -936,13 +943,20 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # # Display # +# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set # CONFIG_PKG_USING_ARDUINO_U8G2 is not set +# CONFIG_PKG_USING_ARDUINO_U8GLIB_ARDUINO is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set # CONFIG_PKG_USING_SEEED_TM1637 is not set # # Timing # # CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set +# CONFIG_PKG_USING_ARDUINO_TICKER is not set +# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set # # Data Processing @@ -966,10 +980,17 @@ CONFIG_PKG_RT_VSNPRINTF_FULL_VER="latest" # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # # Other # +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set +# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set # # Signal IO @@ -1063,6 +1084,11 @@ CONFIG_BSP_USING_CAPTURE2=y # CONFIG_BSP_USING_CAPTURE2_CH2 is not set CONFIG_BSP_USING_CAPTURE2_CH3=y CONFIG_BSP_USING_CAPTURE2_CH4=y +CONFIG_BSP_USING_CAPTURE12=y +CONFIG_BSP_USING_CAPTURE12_CH1=y +CONFIG_BSP_USING_CAPTURE12_CH2=y +# CONFIG_BSP_USING_CAPTURE12_CH3 is not set +# CONFIG_BSP_USING_CAPTURE12_CH4 is not set CONFIG_BSP_USING_ADC=y CONFIG_BSP_USING_ADC1=y # CONFIG_BSP_USING_ONCHIP_RTC is not set diff --git a/board/Kconfig b/board/Kconfig index 1b6c39b..4ce1371 100644 --- a/board/Kconfig +++ b/board/Kconfig @@ -317,6 +317,24 @@ menu "On-chip Peripheral Drivers" default n endif + menuconfig BSP_USING_CAPTURE12 + bool "Enable capture12" + default n + if BSP_USING_CAPTURE12 + config BSP_USING_CAPTURE12_CH1 + bool "Enable capture12 channel1" + default n + config BSP_USING_CAPTURE12_CH2 + bool "Enable capture12 channel2" + default n + config BSP_USING_CAPTURE12_CH3 + bool "Enable capture12 channel3" + default n + config BSP_USING_CAPTURE12_CH4 + bool "Enable capture12 channel4" + default n + endif + endif menuconfig BSP_USING_ADC diff --git a/libraries/HAL_Drivers/drv_inputcapture.c b/libraries/HAL_Drivers/drv_inputcapture.c index 4e69ea9..1369296 100644 --- a/libraries/HAL_Drivers/drv_inputcapture.c +++ b/libraries/HAL_Drivers/drv_inputcapture.c @@ -28,6 +28,13 @@ .timerx = 2, \ } +#define CAPTURE12_CONFIG \ +{ \ + .timer.Instance = TIM12, \ + .iqrn = TIM8_BRK_TIM12_IRQn, \ + .timerx = 12, \ +} + #define LOG_TAG "drv.tcap" #include @@ -93,6 +100,12 @@ enum #ifdef BSP_USING_CAPTURE10 CAPTURE10_INDEX, #endif +#ifdef BSP_USING_CAPTURE11 + CAPTURE11_INDEX, +#endif +#ifdef BSP_USING_CAPTURE12 + CAPTURE12_INDEX, +#endif }; static struct stm32_capture stm32_capture_obj[] = @@ -127,6 +140,12 @@ static struct stm32_capture stm32_capture_obj[] = #ifdef BSP_USING_CAPTURE10 CAPTURE10_CONFIG, #endif +#ifdef BSP_USING_CAPTURE11 + CAPTURE11_CONFIG, +#endif +#ifdef BSP_USING_CAPTURE12 + CAPTURE12_CONFIG, +#endif }; struct stm32_capture_device @@ -261,6 +280,12 @@ static struct stm32_capture_device stm32_capture_devices[] = #ifdef BSP_USING_CAPTURE10_CH4 {{0}, &stm32_capture_obj[CAPTURE10_INDEX], 4, {0}}, #endif +#ifdef BSP_USING_CAPTURE12_CH1 + {{0}, &stm32_capture_obj[CAPTURE12_INDEX], 1, {0}}, +#endif +#ifdef BSP_USING_CAPTURE12_CH2 + {{0}, &stm32_capture_obj[CAPTURE12_INDEX], 2, {0}}, +#endif }; static rt_uint64_t get_timer_clock(TIM_HandleTypeDef *htim) @@ -437,6 +462,15 @@ void TIM1_CC_IRQHandler(void) rt_interrupt_leave(); } +void TIM8_BRK_TIM12_IRQHandler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + HAL_TIM_IRQHandler(&stm32_capture_obj[CAPTURE12_INDEX].timer); + /* leave interrupt */ + rt_interrupt_leave(); +} + void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { int i = 0; diff --git a/project.uvoptx b/project.uvoptx index 5f27151..c0ca65a 100644 --- a/project.uvoptx +++ b/project.uvoptx @@ -311,30 +311,6 @@ 2 10 - 1 - 0 - 0 - 0 - rt-thread\components\libc\cplusplus\cxx_crt_init.c - cxx_crt_init.c - 0 - 0 - - - 2 - 11 - 8 - 0 - 0 - 0 - rt-thread\components\libc\cplusplus\cxx_Mutex.cpp - cxx_Mutex.cpp - 0 - 0 - - - 2 - 12 8 0 0 @@ -346,7 +322,7 @@ 2 - 13 + 11 8 0 0 @@ -356,6 +332,30 @@ 0 0 + + 2 + 12 + 1 + 0 + 0 + 0 + rt-thread\components\libc\cplusplus\cxx_crt_init.c + cxx_crt_init.c + 0 + 0 + + + 2 + 13 + 8 + 0 + 0 + 0 + rt-thread\components\libc\cplusplus\cxx_Mutex.cpp + cxx_Mutex.cpp + 0 + 0 + @@ -755,8 +755,8 @@ 0 0 0 - rt-thread\components\fal\src\fal_rtt.c - fal_rtt.c + rt-thread\components\fal\src\fal.c + fal.c 0 0 @@ -767,23 +767,23 @@ 0 0 0 - rt-thread\components\fal\src\fal_partition.c - fal_partition.c - 0 - 0 - - - 6 - 46 - 1 - 0 - 0 - 0 rt-thread\components\fal\src\fal_flash.c fal_flash.c 0 0 + + 6 + 46 + 1 + 0 + 0 + 0 + rt-thread\components\fal\src\fal_partition.c + fal_partition.c + 0 + 0 + 6 47 @@ -791,8 +791,8 @@ 0 0 0 - rt-thread\components\fal\src\fal.c - fal.c + rt-thread\components\fal\src\fal_rtt.c + fal_rtt.c 0 0 @@ -856,7 +856,7 @@ IAP - 0 + 1 0 0 0 @@ -876,7 +876,7 @@ Kernel - 0 + 1 0 0 0 @@ -1404,7 +1404,7 @@ Utilities - 1 + 0 0 0 0 diff --git a/project.uvprojx b/project.uvprojx index 9d1a0ca..34fce1a 100644 --- a/project.uvprojx +++ b/project.uvprojx @@ -433,16 +433,6 @@ 8 rt-thread\components\libc\cplusplus\cxx_Thread.cpp - - cxx_crt_init.c - 1 - rt-thread\components\libc\cplusplus\cxx_crt_init.c - - - cxx_Mutex.cpp - 8 - rt-thread\components\libc\cplusplus\cxx_Mutex.cpp - cxx_crt.cpp 8 @@ -453,6 +443,16 @@ 8 rt-thread\components\libc\cplusplus\cxx_Semaphore.cpp + + cxx_crt_init.c + 1 + rt-thread\components\libc\cplusplus\cxx_crt_init.c + + + cxx_Mutex.cpp + 8 + rt-thread\components\libc\cplusplus\cxx_Mutex.cpp + @@ -624,14 +624,9 @@ Fal - fal_rtt.c + fal.c 1 - rt-thread\components\fal\src\fal_rtt.c - - - fal_partition.c - 1 - rt-thread\components\fal\src\fal_partition.c + rt-thread\components\fal\src\fal.c fal_flash.c @@ -639,9 +634,14 @@ rt-thread\components\fal\src\fal_flash.c - fal.c + fal_partition.c 1 - rt-thread\components\fal\src\fal.c + rt-thread\components\fal\src\fal_partition.c + + + fal_rtt.c + 1 + rt-thread\components\fal\src\fal_rtt.c diff --git a/rt-thread/components/drivers/misc/rt_inputcapture.c b/rt-thread/components/drivers/misc/rt_inputcapture.c index 6f4c229..a659b16 100644 --- a/rt-thread/components/drivers/misc/rt_inputcapture.c +++ b/rt-thread/components/drivers/misc/rt_inputcapture.c @@ -189,6 +189,6 @@ void rt_hw_inputcapture_isr(struct rt_inputcapture_device *inputcapture, rt_bool { /* indicate to upper layer application */ if (inputcapture->parent.rx_indicate != RT_NULL) - inputcapture->parent.rx_indicate(&inputcapture->parent, receive_size); + inputcapture->parent.rx_indicate(&inputcapture->parent, data.is_high); } } diff --git a/rtconfig.h b/rtconfig.h index 0f18562..1079076 100644 --- a/rtconfig.h +++ b/rtconfig.h @@ -170,9 +170,6 @@ /* u8g2: a monochrome graphic library */ -/* PainterEngine: A cross-platform graphics application framework written in C language */ - - /* tools packages */ @@ -247,6 +244,7 @@ /* Other */ + /* Signal IO */ @@ -313,6 +311,9 @@ #define BSP_USING_CAPTURE2 #define BSP_USING_CAPTURE2_CH3 #define BSP_USING_CAPTURE2_CH4 +#define BSP_USING_CAPTURE12 +#define BSP_USING_CAPTURE12_CH1 +#define BSP_USING_CAPTURE12_CH2 #define BSP_USING_ADC #define BSP_USING_ADC1 #define BSP_USING_ON_CHIP_FLASH