14
.config
14
.config
@@ -150,7 +150,8 @@ CONFIG_RT_USING_WDT=y
|
|||||||
# CONFIG_RT_USING_TOUCH is not set
|
# CONFIG_RT_USING_TOUCH is not set
|
||||||
# CONFIG_RT_USING_HWCRYPTO is not set
|
# CONFIG_RT_USING_HWCRYPTO is not set
|
||||||
# CONFIG_RT_USING_PULSE_ENCODER is not set
|
# CONFIG_RT_USING_PULSE_ENCODER is not set
|
||||||
# CONFIG_RT_USING_INPUT_CAPTURE is not set
|
CONFIG_RT_USING_INPUT_CAPTURE=y
|
||||||
|
CONFIG_RT_INPUT_CAPTURE_RB_SIZE=100
|
||||||
# CONFIG_RT_USING_WIFI is not set
|
# CONFIG_RT_USING_WIFI is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
@@ -1051,6 +1052,17 @@ CONFIG_BSP_USING_PWM4_CH1=y
|
|||||||
CONFIG_BSP_USING_PWM4_CH2=y
|
CONFIG_BSP_USING_PWM4_CH2=y
|
||||||
CONFIG_BSP_USING_PWM4_CH3=y
|
CONFIG_BSP_USING_PWM4_CH3=y
|
||||||
CONFIG_BSP_USING_PWM4_CH4=y
|
CONFIG_BSP_USING_PWM4_CH4=y
|
||||||
|
CONFIG_BSP_USING_CAPTURE=y
|
||||||
|
CONFIG_BSP_USING_CAPTURE1=y
|
||||||
|
CONFIG_BSP_USING_CAPTURE1_CH1=y
|
||||||
|
CONFIG_BSP_USING_CAPTURE1_CH2=y
|
||||||
|
# CONFIG_BSP_USING_CAPTURE1_CH3 is not set
|
||||||
|
# CONFIG_BSP_USING_CAPTURE1_CH4 is not set
|
||||||
|
CONFIG_BSP_USING_CAPTURE2=y
|
||||||
|
# CONFIG_BSP_USING_CAPTURE2_CH1 is not set
|
||||||
|
# CONFIG_BSP_USING_CAPTURE2_CH2 is not set
|
||||||
|
CONFIG_BSP_USING_CAPTURE2_CH3=y
|
||||||
|
CONFIG_BSP_USING_CAPTURE2_CH4=y
|
||||||
CONFIG_BSP_USING_ADC=y
|
CONFIG_BSP_USING_ADC=y
|
||||||
CONFIG_BSP_USING_ADC1=y
|
CONFIG_BSP_USING_ADC1=y
|
||||||
# CONFIG_BSP_USING_ONCHIP_RTC is not set
|
# CONFIG_BSP_USING_ONCHIP_RTC is not set
|
||||||
|
@@ -74,51 +74,49 @@ Mcu.Pin24=PE8
|
|||||||
Mcu.Pin25=PE9
|
Mcu.Pin25=PE9
|
||||||
Mcu.Pin26=PE11
|
Mcu.Pin26=PE11
|
||||||
Mcu.Pin27=PE12
|
Mcu.Pin27=PE12
|
||||||
Mcu.Pin28=PE13
|
Mcu.Pin28=PB10
|
||||||
Mcu.Pin29=PE14
|
Mcu.Pin29=PB12
|
||||||
Mcu.Pin3=PE5
|
Mcu.Pin3=PE5
|
||||||
Mcu.Pin30=PB10
|
Mcu.Pin30=PB13
|
||||||
Mcu.Pin31=PB12
|
Mcu.Pin31=PB14
|
||||||
Mcu.Pin32=PB13
|
Mcu.Pin32=PB15
|
||||||
Mcu.Pin33=PB14
|
Mcu.Pin33=PD14
|
||||||
Mcu.Pin34=PB15
|
Mcu.Pin34=PD15
|
||||||
Mcu.Pin35=PD14
|
Mcu.Pin35=PC6
|
||||||
Mcu.Pin36=PD15
|
Mcu.Pin36=PC7
|
||||||
Mcu.Pin37=PC6
|
Mcu.Pin37=PC9
|
||||||
Mcu.Pin38=PC7
|
Mcu.Pin38=PA8
|
||||||
Mcu.Pin39=PC9
|
Mcu.Pin39=PA9
|
||||||
Mcu.Pin4=PE6
|
Mcu.Pin4=PE6
|
||||||
Mcu.Pin40=PA8
|
Mcu.Pin40=PA10
|
||||||
Mcu.Pin41=PA9
|
Mcu.Pin41=PA11
|
||||||
Mcu.Pin42=PA10
|
Mcu.Pin42=PA12
|
||||||
Mcu.Pin43=PA11
|
Mcu.Pin43=PA13
|
||||||
Mcu.Pin44=PA12
|
Mcu.Pin44=PA14
|
||||||
Mcu.Pin45=PA13
|
Mcu.Pin45=PC10
|
||||||
Mcu.Pin46=PA14
|
Mcu.Pin46=PC11
|
||||||
Mcu.Pin47=PC10
|
Mcu.Pin47=PC12
|
||||||
Mcu.Pin48=PC11
|
Mcu.Pin48=PD2
|
||||||
Mcu.Pin49=PC12
|
Mcu.Pin49=PD5
|
||||||
Mcu.Pin5=PH0 - OSC_IN
|
Mcu.Pin5=PH0 - OSC_IN
|
||||||
Mcu.Pin50=PD2
|
Mcu.Pin50=PD6
|
||||||
Mcu.Pin51=PD5
|
Mcu.Pin51=PB3
|
||||||
Mcu.Pin52=PD6
|
Mcu.Pin52=PB4
|
||||||
Mcu.Pin53=PB3
|
Mcu.Pin53=PB6
|
||||||
Mcu.Pin54=PB4
|
Mcu.Pin54=PB7
|
||||||
Mcu.Pin55=PB6
|
Mcu.Pin55=PB8
|
||||||
Mcu.Pin56=PB7
|
Mcu.Pin56=PB9
|
||||||
Mcu.Pin57=PB8
|
Mcu.Pin57=PE0
|
||||||
Mcu.Pin58=PB9
|
Mcu.Pin58=PE1
|
||||||
Mcu.Pin59=PE0
|
Mcu.Pin59=VP_SYS_VS_Systick
|
||||||
Mcu.Pin6=PH1 - OSC_OUT
|
Mcu.Pin6=PH1 - OSC_OUT
|
||||||
Mcu.Pin60=PE1
|
Mcu.Pin60=VP_TIM1_VS_ClockSourceINT
|
||||||
Mcu.Pin61=VP_SYS_VS_Systick
|
Mcu.Pin61=VP_TIM3_VS_ClockSourceINT
|
||||||
Mcu.Pin62=VP_TIM1_VS_ClockSourceINT
|
Mcu.Pin62=VP_TIM4_VS_ClockSourceINT
|
||||||
Mcu.Pin63=VP_TIM3_VS_ClockSourceINT
|
|
||||||
Mcu.Pin64=VP_TIM4_VS_ClockSourceINT
|
|
||||||
Mcu.Pin7=PC0
|
Mcu.Pin7=PC0
|
||||||
Mcu.Pin8=PC1
|
Mcu.Pin8=PC1
|
||||||
Mcu.Pin9=PC2
|
Mcu.Pin9=PC2
|
||||||
Mcu.PinsNb=65
|
Mcu.PinsNb=63
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F413VGTx
|
Mcu.UserName=STM32F413VGTx
|
||||||
@@ -224,8 +222,6 @@ PE1.Signal=UART8_TX
|
|||||||
PE11.Signal=S_TIM1_CH2
|
PE11.Signal=S_TIM1_CH2
|
||||||
PE12.Mode=Full_Duplex_Master
|
PE12.Mode=Full_Duplex_Master
|
||||||
PE12.Signal=SPI4_SCK
|
PE12.Signal=SPI4_SCK
|
||||||
PE13.Signal=S_TIM1_CH3
|
|
||||||
PE14.Signal=S_TIM1_CH4
|
|
||||||
PE2.Mode=Asynchronous
|
PE2.Mode=Asynchronous
|
||||||
PE2.Signal=UART10_RX
|
PE2.Signal=UART10_RX
|
||||||
PE3.Mode=Asynchronous
|
PE3.Mode=Asynchronous
|
||||||
@@ -338,10 +334,6 @@ SH.S_TIM1_CH1.0=TIM1_CH1,Input_Capture1_from_TI1
|
|||||||
SH.S_TIM1_CH1.ConfNb=1
|
SH.S_TIM1_CH1.ConfNb=1
|
||||||
SH.S_TIM1_CH2.0=TIM1_CH2,Input_Capture2_from_TI2
|
SH.S_TIM1_CH2.0=TIM1_CH2,Input_Capture2_from_TI2
|
||||||
SH.S_TIM1_CH2.ConfNb=1
|
SH.S_TIM1_CH2.ConfNb=1
|
||||||
SH.S_TIM1_CH3.0=TIM1_CH3,Input_Capture3_from_TI3
|
|
||||||
SH.S_TIM1_CH3.ConfNb=1
|
|
||||||
SH.S_TIM1_CH4.0=TIM1_CH4,Input_Capture4_from_TI4
|
|
||||||
SH.S_TIM1_CH4.ConfNb=1
|
|
||||||
SH.S_TIM2_CH3.0=TIM2_CH3,Input_Capture3_from_TI3
|
SH.S_TIM2_CH3.0=TIM2_CH3,Input_Capture3_from_TI3
|
||||||
SH.S_TIM2_CH3.ConfNb=1
|
SH.S_TIM2_CH3.ConfNb=1
|
||||||
SH.S_TIM2_CH4.0=TIM2_CH4,Input_Capture4_from_TI4
|
SH.S_TIM2_CH4.0=TIM2_CH4,Input_Capture4_from_TI4
|
||||||
@@ -375,9 +367,7 @@ SPI4.VirtualNSS=VM_NSSHARD
|
|||||||
SPI4.VirtualType=VM_MASTER
|
SPI4.VirtualType=VM_MASTER
|
||||||
TIM1.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1
|
TIM1.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1
|
||||||
TIM1.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2
|
TIM1.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2
|
||||||
TIM1.Channel-Input_Capture3_from_TI3=TIM_CHANNEL_3
|
TIM1.IPParameters=Channel-Input_Capture1_from_TI1,Channel-Input_Capture2_from_TI2
|
||||||
TIM1.Channel-Input_Capture4_from_TI4=TIM_CHANNEL_4
|
|
||||||
TIM1.IPParameters=Channel-Input_Capture1_from_TI1,Channel-Input_Capture2_from_TI2,Channel-Input_Capture3_from_TI3,Channel-Input_Capture4_from_TI4
|
|
||||||
TIM12.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1
|
TIM12.Channel-Input_Capture1_from_TI1=TIM_CHANNEL_1
|
||||||
TIM12.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2
|
TIM12.Channel-Input_Capture2_from_TI2=TIM_CHANNEL_2
|
||||||
TIM12.IPParameters=Channel-Input_Capture1_from_TI1,Channel-Input_Capture2_from_TI2
|
TIM12.IPParameters=Channel-Input_Capture1_from_TI1,Channel-Input_Capture2_from_TI2
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @attention
|
* @attention
|
||||||
*
|
*
|
||||||
* Copyright (c) 2022 STMicroelectronics.
|
* Copyright (c) 2023 STMicroelectronics.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* This software is licensed under terms that can be found in the LICENSE file
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @attention
|
* @attention
|
||||||
*
|
*
|
||||||
* Copyright (c) 2022 STMicroelectronics.
|
* Copyright (c) 2023 STMicroelectronics.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* This software is licensed under terms that can be found in the LICENSE file
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @attention
|
* @attention
|
||||||
*
|
*
|
||||||
* Copyright (c) 2022 STMicroelectronics.
|
* Copyright (c) 2023 STMicroelectronics.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* This software is licensed under terms that can be found in the LICENSE file
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
@@ -525,12 +525,10 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
|
|||||||
/**TIM1 GPIO Configuration
|
/**TIM1 GPIO Configuration
|
||||||
PE9 ------> TIM1_CH1
|
PE9 ------> TIM1_CH1
|
||||||
PE11 ------> TIM1_CH2
|
PE11 ------> TIM1_CH2
|
||||||
PE13 ------> TIM1_CH3
|
|
||||||
PE14 ------> TIM1_CH4
|
|
||||||
*/
|
*/
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_13|GPIO_PIN_14;
|
GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_11;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
|
GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
|
||||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
||||||
@@ -588,7 +586,7 @@ void HAL_TIM_IC_MspInit(TIM_HandleTypeDef* htim_ic)
|
|||||||
*/
|
*/
|
||||||
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
|
GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_PULLDOWN;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
|
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
|
||||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||||
@@ -703,10 +701,8 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
|
|||||||
/**TIM1 GPIO Configuration
|
/**TIM1 GPIO Configuration
|
||||||
PE9 ------> TIM1_CH1
|
PE9 ------> TIM1_CH1
|
||||||
PE11 ------> TIM1_CH2
|
PE11 ------> TIM1_CH2
|
||||||
PE13 ------> TIM1_CH3
|
|
||||||
PE14 ------> TIM1_CH4
|
|
||||||
*/
|
*/
|
||||||
HAL_GPIO_DeInit(GPIOE, GPIO_PIN_9|GPIO_PIN_11|GPIO_PIN_13|GPIO_PIN_14);
|
HAL_GPIO_DeInit(GPIOE, GPIO_PIN_9|GPIO_PIN_11);
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM1_MspDeInit 1 */
|
/* USER CODE BEGIN TIM1_MspDeInit 1 */
|
||||||
|
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @attention
|
* @attention
|
||||||
*
|
*
|
||||||
* Copyright (c) 2022 STMicroelectronics.
|
* Copyright (c) 2023 STMicroelectronics.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* This software is licensed under terms that can be found in the LICENSE file
|
* This software is licensed under terms that can be found in the LICENSE file
|
||||||
|
@@ -275,6 +275,50 @@ menu "On-chip Peripheral Drivers"
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
menuconfig BSP_USING_CAPTURE
|
||||||
|
bool "Enable input capture"
|
||||||
|
default n
|
||||||
|
select RT_USING_INPUT_CAPTURE
|
||||||
|
if BSP_USING_CAPTURE
|
||||||
|
|
||||||
|
menuconfig BSP_USING_CAPTURE1
|
||||||
|
bool "Enable capture1"
|
||||||
|
default n
|
||||||
|
if BSP_USING_CAPTURE1
|
||||||
|
config BSP_USING_CAPTURE1_CH1
|
||||||
|
bool "Enable capture1 channel1"
|
||||||
|
default n
|
||||||
|
config BSP_USING_CAPTURE1_CH2
|
||||||
|
bool "Enable capture1 channel2"
|
||||||
|
default n
|
||||||
|
config BSP_USING_CAPTURE1_CH3
|
||||||
|
bool "Enable capture1 channel3"
|
||||||
|
default n
|
||||||
|
config BSP_USING_CAPTURE1_CH4
|
||||||
|
bool "Enable capture1 channel4"
|
||||||
|
default n
|
||||||
|
endif
|
||||||
|
|
||||||
|
menuconfig BSP_USING_CAPTURE2
|
||||||
|
bool "Enable capture2"
|
||||||
|
default n
|
||||||
|
if BSP_USING_CAPTURE2
|
||||||
|
config BSP_USING_CAPTURE2_CH1
|
||||||
|
bool "Enable capture2 channel1"
|
||||||
|
default n
|
||||||
|
config BSP_USING_CAPTURE2_CH2
|
||||||
|
bool "Enable capture2 channel2"
|
||||||
|
default n
|
||||||
|
config BSP_USING_CAPTURE2_CH3
|
||||||
|
bool "Enable capture2 channel3"
|
||||||
|
default n
|
||||||
|
config BSP_USING_CAPTURE2_CH4
|
||||||
|
bool "Enable capture2 channel4"
|
||||||
|
default n
|
||||||
|
endif
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
menuconfig BSP_USING_ADC
|
menuconfig BSP_USING_ADC
|
||||||
bool "Enable ADC"
|
bool "Enable ADC"
|
||||||
default n
|
default n
|
||||||
|
@@ -104,3 +104,6 @@ INIT_DEVICE_EXPORT(stm32_pwm_init);
|
|||||||
|
|
||||||
extern int stm32_adc_init(void);
|
extern int stm32_adc_init(void);
|
||||||
INIT_BOARD_EXPORT(stm32_adc_init);
|
INIT_BOARD_EXPORT(stm32_adc_init);
|
||||||
|
|
||||||
|
extern int stm32_capture_init(void);
|
||||||
|
INIT_APP_EXPORT(stm32_capture_init);
|
||||||
|
@@ -105,6 +105,9 @@ if GetDepend(['BSP_USING_USBD']):
|
|||||||
if GetDepend(['BSP_USING_PULSE_ENCODER']):
|
if GetDepend(['BSP_USING_PULSE_ENCODER']):
|
||||||
src += ['drv_pulse_encoder.c']
|
src += ['drv_pulse_encoder.c']
|
||||||
|
|
||||||
|
if GetDepend(['BSP_USING_CAPTURE']):
|
||||||
|
src += ['drv_inputcapture.c']
|
||||||
|
|
||||||
if GetDepend(['BSP_USING_USBH']):
|
if GetDepend(['BSP_USING_USBH']):
|
||||||
src += ['drv_usbh.c']
|
src += ['drv_usbh.c']
|
||||||
|
|
||||||
|
605
libraries/HAL_Drivers/drv_inputcapture.c
Normal file
605
libraries/HAL_Drivers/drv_inputcapture.c
Normal file
@@ -0,0 +1,605 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2006-2022, RT-Thread Development Team
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*
|
||||||
|
* Change Logs:
|
||||||
|
* Date Author Notes
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <board.h>
|
||||||
|
|
||||||
|
#ifdef BSP_USING_CAPTURE
|
||||||
|
|
||||||
|
#include "drv_config.h"
|
||||||
|
|
||||||
|
#define CAPTURE1_CONFIG \
|
||||||
|
{ \
|
||||||
|
.timer.Instance = TIM1, \
|
||||||
|
.iqrn = TIM1_CC_IRQn, \
|
||||||
|
.timerx = 1, \
|
||||||
|
.advanced = RT_TRUE, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define CAPTURE2_CONFIG \
|
||||||
|
{ \
|
||||||
|
.timer.Instance = TIM2, \
|
||||||
|
.iqrn = TIM2_IRQn, \
|
||||||
|
.timerx = 2, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LOG_TAG "drv.tcap"
|
||||||
|
#include <drv_log.h>
|
||||||
|
|
||||||
|
#define MAX_PERIOD 65535
|
||||||
|
#define MAX_PULSE 1000
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
POLARITY_BOTHEDGE,
|
||||||
|
POLARITY_RISING,
|
||||||
|
POLARITY_FALLING,
|
||||||
|
}trigger_polarity;
|
||||||
|
|
||||||
|
struct pulse_data
|
||||||
|
{
|
||||||
|
rt_uint32_t last_overflow;
|
||||||
|
rt_uint32_t last_cnt;
|
||||||
|
trigger_polarity polarity;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct stm32_capture_device;
|
||||||
|
|
||||||
|
struct stm32_capture
|
||||||
|
{
|
||||||
|
TIM_HandleTypeDef timer;
|
||||||
|
IRQn_Type iqrn;
|
||||||
|
rt_uint8_t timerx;
|
||||||
|
rt_uint8_t advanced;
|
||||||
|
|
||||||
|
rt_uint8_t inited;
|
||||||
|
rt_uint32_t tim_overflow;
|
||||||
|
struct stm32_capture_device *channels[4];
|
||||||
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
#ifdef BSP_USING_CAPTURE1
|
||||||
|
CAPTURE1_INDEX,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE2
|
||||||
|
CAPTURE2_INDEX,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE3
|
||||||
|
CAPTURE3_INDEX,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE4
|
||||||
|
CAPTURE4_INDEX,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE5
|
||||||
|
CAPTURE5_INDEX,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE6
|
||||||
|
CAPTURE6_INDEX,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE7
|
||||||
|
CAPTURE7_INDEX,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE8
|
||||||
|
CAPTURE8_INDEX,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE9
|
||||||
|
CAPTURE9_INDEX,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE10
|
||||||
|
CAPTURE10_INDEX,
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct stm32_capture stm32_capture_obj[] =
|
||||||
|
{
|
||||||
|
#ifdef BSP_USING_CAPTURE1
|
||||||
|
CAPTURE1_CONFIG,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE2
|
||||||
|
CAPTURE2_CONFIG,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE3
|
||||||
|
CAPTURE3_CONFIG,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE4
|
||||||
|
CAPTURE4_CONFIG,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE5
|
||||||
|
CAPTURE5_CONFIG,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE6
|
||||||
|
CAPTURE6_CONFIG,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE7
|
||||||
|
CAPTURE7_CONFIG,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE8
|
||||||
|
CAPTURE8_CONFIG,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE9
|
||||||
|
CAPTURE9_CONFIG,
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE10
|
||||||
|
CAPTURE10_CONFIG,
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
struct stm32_capture_device
|
||||||
|
{
|
||||||
|
struct rt_inputcapture_device parent;
|
||||||
|
struct stm32_capture *timer;
|
||||||
|
rt_uint8_t ch;
|
||||||
|
rt_uint8_t opend;
|
||||||
|
struct pulse_data data;
|
||||||
|
rt_uint32_t pulsewidth_us;
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct stm32_capture_device stm32_capture_devices[] =
|
||||||
|
{
|
||||||
|
#ifdef BSP_USING_CAPTURE1_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE1_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE1_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE1_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE1_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE1_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE1_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE1_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE2_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE2_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE2_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE2_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE2_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE2_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE2_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE2_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE3_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE3_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE3_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE3_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE3_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE3_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE3_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE3_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE4_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE4_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE4_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE4_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE4_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE4_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE4_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE4_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE5_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE5_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE5_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE5_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE5_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE5_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE5_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE5_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE6_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE6_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE6_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE6_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE6_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE6_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE6_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE6_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE7_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE7_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE7_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE7_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE7_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE7_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE7_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE7_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE8_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE8_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE8_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE8_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE8_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE8_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE8_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE8_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE9_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE9_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE9_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE9_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE9_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE9_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE9_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE9_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE10_CH1
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE10_INDEX], 1, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE10_CH2
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE10_INDEX], 2, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE10_CH3
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE10_INDEX], 3, {0}},
|
||||||
|
#endif
|
||||||
|
#ifdef BSP_USING_CAPTURE10_CH4
|
||||||
|
{{0}, &stm32_capture_obj[CAPTURE10_INDEX], 4, {0}},
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
static rt_uint64_t get_timer_clock(TIM_HandleTypeDef *htim)
|
||||||
|
{
|
||||||
|
rt_uint64_t tim_clock = 0;
|
||||||
|
|
||||||
|
#if defined(SOC_SERIES_STM32F2) || defined(SOC_SERIES_STM32F4) || defined(SOC_SERIES_STM32F7)
|
||||||
|
if (htim->Instance == TIM9 || htim->Instance == TIM10 || htim->Instance == TIM11 || htim->Instance == TIM1 || htim->Instance == TIM8)
|
||||||
|
#elif defined(SOC_SERIES_STM32L4)
|
||||||
|
if (htim->Instance == TIM15 || htim->Instance == TIM16 || htim->Instance == TIM17)
|
||||||
|
#elif defined(SOC_SERIES_STM32MP1)
|
||||||
|
if (htim->Instance == TIM4)
|
||||||
|
#elif defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32G0)
|
||||||
|
if (0)
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#if !defined(SOC_SERIES_STM32F0) && !defined(SOC_SERIES_STM32G0)
|
||||||
|
#ifdef STM32F413xx
|
||||||
|
tim_clock = HAL_RCC_GetPCLK2Freq();
|
||||||
|
#else
|
||||||
|
tim_clock = HAL_RCC_GetPCLK2Freq() * 2;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
#if defined(SOC_SERIES_STM32L4) || defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32G0)
|
||||||
|
tim_clock = HAL_RCC_GetPCLK1Freq();
|
||||||
|
#else
|
||||||
|
tim_clock = HAL_RCC_GetPCLK1Freq() * 2;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
return tim_clock;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rt_hw_capture_timer_init(struct stm32_capture *device)
|
||||||
|
{
|
||||||
|
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
|
||||||
|
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
||||||
|
TIM_IC_InitTypeDef sConfigIC = {0};
|
||||||
|
rt_uint64_t tim_clock;
|
||||||
|
|
||||||
|
if (device->inited)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
tim_clock = get_timer_clock(&device->timer) / 1000000;
|
||||||
|
|
||||||
|
/* configure the timer to ic mode */
|
||||||
|
device->timer.Init.Prescaler = tim_clock-1;
|
||||||
|
device->timer.Init.CounterMode = TIM_COUNTERMODE_UP;
|
||||||
|
device->timer.Init.Period = MAX_PERIOD-1;
|
||||||
|
device->timer.Init.AutoReloadPreload = MAX_PERIOD-1;
|
||||||
|
device->timer.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
||||||
|
#if defined(SOC_SERIES_STM32F1) || defined(SOC_SERIES_STM32L4)
|
||||||
|
device->timer.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
||||||
|
#else
|
||||||
|
device->timer.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (device->advanced && HAL_TIM_Base_Init(&device->timer) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HAL_TIM_IC_Init(&device->timer) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
HAL_NVIC_SetPriority(device->iqrn, 0, 0);
|
||||||
|
HAL_NVIC_EnableIRQ(device->iqrn);
|
||||||
|
|
||||||
|
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
||||||
|
if (HAL_TIM_ConfigClockSource(&device->timer, &sClockSourceConfig) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
||||||
|
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
||||||
|
if (HAL_TIMEx_MasterConfigSynchronization(&device->timer, &sMasterConfig) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
sConfigIC.ICPolarity = TIM_INPUTCHANNELPOLARITY_RISING;
|
||||||
|
sConfigIC.ICSelection = TIM_ICSELECTION_DIRECTTI;
|
||||||
|
sConfigIC.ICPrescaler = TIM_ICPSC_DIV1;
|
||||||
|
sConfigIC.ICFilter = 0;
|
||||||
|
|
||||||
|
if (device->channels[0] != RT_NULL && HAL_TIM_IC_ConfigChannel(&device->timer, &sConfigIC, TIM_CHANNEL_1) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (device->channels[1] != RT_NULL && HAL_TIM_IC_ConfigChannel(&device->timer, &sConfigIC, TIM_CHANNEL_2) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (device->channels[2] != RT_NULL && HAL_TIM_IC_ConfigChannel(&device->timer, &sConfigIC, TIM_CHANNEL_3) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
if (device->channels[3] != RT_NULL && HAL_TIM_IC_ConfigChannel(&device->timer, &sConfigIC, TIM_CHANNEL_4) != HAL_OK)
|
||||||
|
{
|
||||||
|
Error_Handler();
|
||||||
|
}
|
||||||
|
|
||||||
|
__HAL_TIM_DISABLE(&device->timer);
|
||||||
|
__HAL_TIM_SET_COUNTER(&device->timer,0);
|
||||||
|
__HAL_TIM_ENABLE_IT(&device->timer,TIM_IT_UPDATE);
|
||||||
|
__HAL_TIM_ENABLE(&device->timer);
|
||||||
|
|
||||||
|
device->inited = RT_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static rt_err_t rt_hw_capture_open(struct rt_inputcapture_device *inputcapture)
|
||||||
|
{
|
||||||
|
struct stm32_capture_device *device_ch;
|
||||||
|
rt_uint32_t ch;
|
||||||
|
|
||||||
|
rt_enter_critical();
|
||||||
|
|
||||||
|
device_ch = rt_container_of(inputcapture, struct stm32_capture_device, parent);
|
||||||
|
if (device_ch->opend)
|
||||||
|
{
|
||||||
|
rt_exit_critical();
|
||||||
|
return RT_EOK;
|
||||||
|
}
|
||||||
|
device_ch->opend = RT_TRUE;
|
||||||
|
|
||||||
|
rt_hw_capture_timer_init(device_ch->timer);
|
||||||
|
|
||||||
|
rt_exit_critical();
|
||||||
|
|
||||||
|
switch (device_ch->ch)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
ch = TIM_CHANNEL_1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
ch = TIM_CHANNEL_2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
ch = TIM_CHANNEL_3;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ch = TIM_CHANNEL_4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
HAL_TIM_IC_Start_IT(&device_ch->timer->timer, ch);
|
||||||
|
|
||||||
|
return RT_EOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TIM2_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* enter interrupt */
|
||||||
|
rt_interrupt_enter();
|
||||||
|
HAL_TIM_IRQHandler(&stm32_capture_obj[CAPTURE2_INDEX].timer);
|
||||||
|
/* leave interrupt */
|
||||||
|
rt_interrupt_leave();
|
||||||
|
}
|
||||||
|
|
||||||
|
void TIM1_CC_IRQHandler(void)
|
||||||
|
{
|
||||||
|
/* enter interrupt */
|
||||||
|
rt_interrupt_enter();
|
||||||
|
HAL_TIM_IRQHandler(&stm32_capture_obj[CAPTURE1_INDEX].timer);
|
||||||
|
/* leave interrupt */
|
||||||
|
rt_interrupt_leave();
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof(stm32_capture_obj) / sizeof(stm32_capture_obj[0]); i++)
|
||||||
|
{
|
||||||
|
if (stm32_capture_obj[i].timer.Instance == htim->Instance)
|
||||||
|
{
|
||||||
|
stm32_capture_obj[i].tim_overflow ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void _capture_computer(struct stm32_capture_device *dev, rt_uint32_t channel)
|
||||||
|
{
|
||||||
|
rt_uint32_t trigger_overflow = 0;
|
||||||
|
rt_uint32_t trigger_cnt = 0;
|
||||||
|
|
||||||
|
if (dev->data.polarity == POLARITY_RISING)
|
||||||
|
{
|
||||||
|
TIM_RESET_CAPTUREPOLARITY(&dev->timer->timer, channel);
|
||||||
|
TIM_SET_CAPTUREPOLARITY(&dev->timer->timer,channel, TIM_ICPOLARITY_FALLING);
|
||||||
|
dev->data.polarity = POLARITY_FALLING;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TIM_RESET_CAPTUREPOLARITY(&dev->timer->timer, channel);
|
||||||
|
TIM_SET_CAPTUREPOLARITY(&dev->timer->timer,channel, TIM_ICPOLARITY_RISING);
|
||||||
|
dev->data.polarity = POLARITY_RISING;
|
||||||
|
}
|
||||||
|
|
||||||
|
trigger_cnt = HAL_TIM_ReadCapturedValue(&dev->timer->timer, channel);
|
||||||
|
trigger_overflow = dev->timer->tim_overflow;
|
||||||
|
|
||||||
|
if((trigger_overflow < dev->data.last_overflow) ||
|
||||||
|
((trigger_overflow - dev->data.last_overflow) > MAX_PULSE))
|
||||||
|
{
|
||||||
|
dev->data.last_overflow = trigger_overflow;
|
||||||
|
dev->data.last_cnt = trigger_cnt;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dev->pulsewidth_us = (trigger_overflow - dev->data.last_overflow)*MAX_PERIOD
|
||||||
|
+ trigger_cnt - dev->data.last_cnt;
|
||||||
|
|
||||||
|
rt_hw_inputcapture_isr(&dev->parent, dev->data.polarity != POLARITY_FALLING);
|
||||||
|
|
||||||
|
dev->data.last_overflow = trigger_overflow;
|
||||||
|
dev->data.last_cnt = trigger_cnt;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
rt_uint32_t ch, to;
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof(stm32_capture_devices) / sizeof(stm32_capture_devices[0]); i++)
|
||||||
|
{
|
||||||
|
switch (stm32_capture_devices[i].ch)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
ch = HAL_TIM_ACTIVE_CHANNEL_1;
|
||||||
|
to = TIM_CHANNEL_1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
ch = HAL_TIM_ACTIVE_CHANNEL_2;
|
||||||
|
to = TIM_CHANNEL_2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
ch = HAL_TIM_ACTIVE_CHANNEL_3;
|
||||||
|
to = TIM_CHANNEL_3;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ch = HAL_TIM_ACTIVE_CHANNEL_4;
|
||||||
|
to = TIM_CHANNEL_4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (htim->Channel == ch && htim->Instance == stm32_capture_devices[i].timer->timer.Instance)
|
||||||
|
{
|
||||||
|
_capture_computer(&stm32_capture_devices[i], to);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static rt_err_t rt_hw_capture_get_pulsewidth (struct rt_inputcapture_device *inputcapture, rt_uint32_t *pulsewidth_us)
|
||||||
|
{
|
||||||
|
struct stm32_capture_device *device;
|
||||||
|
|
||||||
|
device = rt_container_of(inputcapture, struct stm32_capture_device, parent);
|
||||||
|
*pulsewidth_us = device->pulsewidth_us;
|
||||||
|
|
||||||
|
return RT_EOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static rt_err_t rt_hw_capture_init (struct rt_inputcapture_device *inputcapture)
|
||||||
|
{
|
||||||
|
return RT_EOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static rt_err_t rt_hw_capture_close (struct rt_inputcapture_device *inputcapture)
|
||||||
|
{
|
||||||
|
struct stm32_capture_device *device_ch;
|
||||||
|
rt_uint32_t ch;
|
||||||
|
|
||||||
|
rt_enter_critical();
|
||||||
|
|
||||||
|
device_ch = rt_container_of(inputcapture, struct stm32_capture_device, parent);
|
||||||
|
if (!device_ch->opend)
|
||||||
|
{
|
||||||
|
rt_exit_critical();
|
||||||
|
return RT_EOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (device_ch->ch)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
ch = TIM_CHANNEL_1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
ch = TIM_CHANNEL_2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
ch = TIM_CHANNEL_3;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ch = TIM_CHANNEL_4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
HAL_TIM_IC_Stop_IT(&device_ch->timer->timer, ch);
|
||||||
|
device_ch->opend = RT_FALSE;
|
||||||
|
|
||||||
|
rt_exit_critical();
|
||||||
|
|
||||||
|
return RT_EOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct rt_inputcapture_ops _drv_ops = {
|
||||||
|
.init = rt_hw_capture_init,
|
||||||
|
.open = rt_hw_capture_open,
|
||||||
|
.close = rt_hw_capture_close,
|
||||||
|
.get_pulsewidth = rt_hw_capture_get_pulsewidth,
|
||||||
|
};
|
||||||
|
|
||||||
|
int stm32_capture_init(void)
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
char name[] = "tc00ch0";
|
||||||
|
|
||||||
|
for (i = 0; i < sizeof(stm32_capture_devices) / sizeof(stm32_capture_devices[0]); i++)
|
||||||
|
{
|
||||||
|
stm32_capture_devices[i].timer->channels[stm32_capture_devices[i].ch - 1] = &stm32_capture_devices[i];
|
||||||
|
stm32_capture_devices[i].parent.ops = &_drv_ops;
|
||||||
|
|
||||||
|
rt_snprintf(name, sizeof(name),"tc%dch%d", stm32_capture_devices[i].timer->timerx, stm32_capture_devices[i].ch);
|
||||||
|
rt_device_inputcapture_register(&stm32_capture_devices[i].parent, name, RT_NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
return RT_EOK;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
@@ -46,7 +46,7 @@ if GetDepend(['RT_USING_USB']):
|
|||||||
if GetDepend(['RT_USING_CAN']):
|
if GetDepend(['RT_USING_CAN']):
|
||||||
src += ['STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c']
|
src += ['STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c']
|
||||||
|
|
||||||
if GetDepend(['RT_USING_HWTIMER']) or GetDepend(['RT_USING_PWM']) or GetDepend(['RT_USING_PULSE_ENCODER']):
|
if GetDepend(['RT_USING_HWTIMER']) or GetDepend(['RT_USING_PWM']) or GetDepend(['RT_USING_PULSE_ENCODER']) or GetDepend(['RT_USING_INPUT_CAPTURE']):
|
||||||
src += ['STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c']
|
src += ['STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c']
|
||||||
src += ['STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c']
|
src += ['STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c']
|
||||||
src += ['STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c']
|
src += ['STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_lptim.c']
|
||||||
|
206
project.uvoptx
206
project.uvoptx
@@ -303,18 +303,6 @@
|
|||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>rt-thread\components\libc\cplusplus\cxx_crt.cpp</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>cxx_crt.cpp</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<GroupNumber>2</GroupNumber>
|
|
||||||
<FileNumber>10</FileNumber>
|
|
||||||
<FileType>8</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>rt-thread\components\libc\cplusplus\cxx_Thread.cpp</PathWithFileName>
|
<PathWithFileName>rt-thread\components\libc\cplusplus\cxx_Thread.cpp</PathWithFileName>
|
||||||
<FilenameWithoutPath>cxx_Thread.cpp</FilenameWithoutPath>
|
<FilenameWithoutPath>cxx_Thread.cpp</FilenameWithoutPath>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
@@ -322,7 +310,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>2</GroupNumber>
|
<GroupNumber>2</GroupNumber>
|
||||||
<FileNumber>11</FileNumber>
|
<FileNumber>10</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -334,7 +322,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>2</GroupNumber>
|
<GroupNumber>2</GroupNumber>
|
||||||
<FileNumber>12</FileNumber>
|
<FileNumber>11</FileNumber>
|
||||||
<FileType>8</FileType>
|
<FileType>8</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -344,6 +332,18 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>2</GroupNumber>
|
||||||
|
<FileNumber>12</FileNumber>
|
||||||
|
<FileType>8</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>rt-thread\components\libc\cplusplus\cxx_crt.cpp</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>cxx_crt.cpp</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>2</GroupNumber>
|
<GroupNumber>2</GroupNumber>
|
||||||
<FileNumber>13</FileNumber>
|
<FileNumber>13</FileNumber>
|
||||||
@@ -571,6 +571,18 @@
|
|||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<bDave2>0</bDave2>
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>rt-thread\components\drivers\misc\rt_inputcapture.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>rt_inputcapture.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>4</GroupNumber>
|
||||||
|
<FileNumber>31</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
<PathWithFileName>rt-thread\components\drivers\serial\serial.c</PathWithFileName>
|
<PathWithFileName>rt-thread\components\drivers\serial\serial.c</PathWithFileName>
|
||||||
<FilenameWithoutPath>serial.c</FilenameWithoutPath>
|
<FilenameWithoutPath>serial.c</FilenameWithoutPath>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
@@ -578,7 +590,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>4</GroupNumber>
|
<GroupNumber>4</GroupNumber>
|
||||||
<FileNumber>31</FileNumber>
|
<FileNumber>32</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -598,7 +610,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>32</FileNumber>
|
<FileNumber>33</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -610,7 +622,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>33</FileNumber>
|
<FileNumber>34</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -622,7 +634,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>34</FileNumber>
|
<FileNumber>35</FileNumber>
|
||||||
<FileType>2</FileType>
|
<FileType>2</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -634,7 +646,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>35</FileNumber>
|
<FileNumber>36</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -646,7 +658,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>36</FileNumber>
|
<FileNumber>37</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -658,7 +670,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>37</FileNumber>
|
<FileNumber>38</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -670,7 +682,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>38</FileNumber>
|
<FileNumber>39</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -682,7 +694,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>39</FileNumber>
|
<FileNumber>40</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -694,7 +706,19 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>40</FileNumber>
|
<FileNumber>41</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>libraries\HAL_Drivers\drv_inputcapture.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>drv_inputcapture.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>5</GroupNumber>
|
||||||
|
<FileNumber>42</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -706,7 +730,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>5</GroupNumber>
|
<GroupNumber>5</GroupNumber>
|
||||||
<FileNumber>41</FileNumber>
|
<FileNumber>43</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -726,7 +750,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>42</FileNumber>
|
<FileNumber>44</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -738,7 +762,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>43</FileNumber>
|
<FileNumber>45</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -750,19 +774,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>6</GroupNumber>
|
<GroupNumber>6</GroupNumber>
|
||||||
<FileNumber>44</FileNumber>
|
<FileNumber>46</FileNumber>
|
||||||
<FileType>1</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>rt-thread\components\fal\src\fal.c</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>fal.c</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<GroupNumber>6</GroupNumber>
|
|
||||||
<FileNumber>45</FileNumber>
|
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -772,6 +784,18 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<GroupNumber>6</GroupNumber>
|
||||||
|
<FileNumber>47</FileNumber>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<tvExp>0</tvExp>
|
||||||
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
<bDave2>0</bDave2>
|
||||||
|
<PathWithFileName>rt-thread\components\fal\src\fal.c</PathWithFileName>
|
||||||
|
<FilenameWithoutPath>fal.c</FilenameWithoutPath>
|
||||||
|
<RteFlg>0</RteFlg>
|
||||||
|
<bShared>0</bShared>
|
||||||
|
</File>
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
@@ -782,7 +806,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>7</GroupNumber>
|
||||||
<FileNumber>46</FileNumber>
|
<FileNumber>48</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -794,7 +818,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>7</GroupNumber>
|
||||||
<FileNumber>47</FileNumber>
|
<FileNumber>49</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -806,7 +830,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>7</GroupNumber>
|
||||||
<FileNumber>48</FileNumber>
|
<FileNumber>50</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -818,7 +842,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>7</GroupNumber>
|
<GroupNumber>7</GroupNumber>
|
||||||
<FileNumber>49</FileNumber>
|
<FileNumber>51</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -838,7 +862,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>8</GroupNumber>
|
<GroupNumber>8</GroupNumber>
|
||||||
<FileNumber>50</FileNumber>
|
<FileNumber>52</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -858,7 +882,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>51</FileNumber>
|
<FileNumber>53</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -870,7 +894,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>52</FileNumber>
|
<FileNumber>54</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -882,7 +906,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>53</FileNumber>
|
<FileNumber>55</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -894,7 +918,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>54</FileNumber>
|
<FileNumber>56</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -906,7 +930,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>55</FileNumber>
|
<FileNumber>57</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -918,7 +942,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>56</FileNumber>
|
<FileNumber>58</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -930,7 +954,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>57</FileNumber>
|
<FileNumber>59</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -942,7 +966,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>58</FileNumber>
|
<FileNumber>60</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -954,7 +978,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>59</FileNumber>
|
<FileNumber>61</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -966,7 +990,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>60</FileNumber>
|
<FileNumber>62</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -978,7 +1002,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>61</FileNumber>
|
<FileNumber>63</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -990,7 +1014,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>62</FileNumber>
|
<FileNumber>64</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1002,7 +1026,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>9</GroupNumber>
|
<GroupNumber>9</GroupNumber>
|
||||||
<FileNumber>63</FileNumber>
|
<FileNumber>65</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1022,7 +1046,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>64</FileNumber>
|
<FileNumber>66</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1034,7 +1058,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>65</FileNumber>
|
<FileNumber>67</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1046,7 +1070,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>66</FileNumber>
|
<FileNumber>68</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1058,7 +1082,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>67</FileNumber>
|
<FileNumber>69</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1070,7 +1094,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>68</FileNumber>
|
<FileNumber>70</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1082,7 +1106,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>69</FileNumber>
|
<FileNumber>71</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1094,7 +1118,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>70</FileNumber>
|
<FileNumber>72</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1106,7 +1130,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>71</FileNumber>
|
<FileNumber>73</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1118,7 +1142,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>72</FileNumber>
|
<FileNumber>74</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1130,7 +1154,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>73</FileNumber>
|
<FileNumber>75</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1142,7 +1166,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>74</FileNumber>
|
<FileNumber>76</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1154,7 +1178,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>75</FileNumber>
|
<FileNumber>77</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1166,7 +1190,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>76</FileNumber>
|
<FileNumber>78</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1178,7 +1202,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>77</FileNumber>
|
<FileNumber>79</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1190,7 +1214,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>78</FileNumber>
|
<FileNumber>80</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1202,7 +1226,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>79</FileNumber>
|
<FileNumber>81</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1214,7 +1238,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>80</FileNumber>
|
<FileNumber>82</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1226,7 +1250,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>81</FileNumber>
|
<FileNumber>83</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1238,7 +1262,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>82</FileNumber>
|
<FileNumber>84</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1250,7 +1274,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>83</FileNumber>
|
<FileNumber>85</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1262,7 +1286,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>84</FileNumber>
|
<FileNumber>86</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1274,7 +1298,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>85</FileNumber>
|
<FileNumber>87</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1286,7 +1310,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>86</FileNumber>
|
<FileNumber>88</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1298,7 +1322,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>87</FileNumber>
|
<FileNumber>89</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1310,7 +1334,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>88</FileNumber>
|
<FileNumber>90</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1322,7 +1346,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>89</FileNumber>
|
<FileNumber>91</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1334,7 +1358,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>90</FileNumber>
|
<FileNumber>92</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1346,7 +1370,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>91</FileNumber>
|
<FileNumber>93</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1366,7 +1390,7 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>11</GroupNumber>
|
<GroupNumber>11</GroupNumber>
|
||||||
<FileNumber>92</FileNumber>
|
<FileNumber>94</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1380,13 +1404,13 @@
|
|||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>Utilities</GroupName>
|
<GroupName>Utilities</GroupName>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>93</FileNumber>
|
<FileNumber>95</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1398,7 +1422,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>94</FileNumber>
|
<FileNumber>96</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@@ -1410,7 +1434,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>12</GroupNumber>
|
<GroupNumber>12</GroupNumber>
|
||||||
<FileNumber>95</FileNumber>
|
<FileNumber>97</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
|
@@ -428,11 +428,6 @@
|
|||||||
<Group>
|
<Group>
|
||||||
<GroupName>CPlusPlus</GroupName>
|
<GroupName>CPlusPlus</GroupName>
|
||||||
<Files>
|
<Files>
|
||||||
<File>
|
|
||||||
<FileName>cxx_crt.cpp</FileName>
|
|
||||||
<FileType>8</FileType>
|
|
||||||
<FilePath>rt-thread\components\libc\cplusplus\cxx_crt.cpp</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
<File>
|
||||||
<FileName>cxx_Thread.cpp</FileName>
|
<FileName>cxx_Thread.cpp</FileName>
|
||||||
<FileType>8</FileType>
|
<FileType>8</FileType>
|
||||||
@@ -448,6 +443,11 @@
|
|||||||
<FileType>8</FileType>
|
<FileType>8</FileType>
|
||||||
<FilePath>rt-thread\components\libc\cplusplus\cxx_Mutex.cpp</FilePath>
|
<FilePath>rt-thread\components\libc\cplusplus\cxx_Mutex.cpp</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>cxx_crt.cpp</FileName>
|
||||||
|
<FileType>8</FileType>
|
||||||
|
<FilePath>rt-thread\components\libc\cplusplus\cxx_crt.cpp</FilePath>
|
||||||
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>cxx_Semaphore.cpp</FileName>
|
<FileName>cxx_Semaphore.cpp</FileName>
|
||||||
<FileType>8</FileType>
|
<FileType>8</FileType>
|
||||||
@@ -543,6 +543,11 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>rt-thread\components\drivers\misc\rt_drv_pwm.c</FilePath>
|
<FilePath>rt-thread\components\drivers\misc\rt_drv_pwm.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>rt_inputcapture.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>rt-thread\components\drivers\misc\rt_inputcapture.c</FilePath>
|
||||||
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>serial.c</FileName>
|
<FileName>serial.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
@@ -598,6 +603,11 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>libraries\HAL_Drivers\drv_gpio.c</FilePath>
|
<FilePath>libraries\HAL_Drivers\drv_gpio.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>drv_inputcapture.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>libraries\HAL_Drivers\drv_inputcapture.c</FilePath>
|
||||||
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<FileName>drv_pwm.c</FileName>
|
<FileName>drv_pwm.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
@@ -623,16 +633,16 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>rt-thread\components\fal\src\fal_partition.c</FilePath>
|
<FilePath>rt-thread\components\fal\src\fal_partition.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<FileName>fal.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>rt-thread\components\fal\src\fal.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
<File>
|
||||||
<FileName>fal_flash.c</FileName>
|
<FileName>fal_flash.c</FileName>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>rt-thread\components\fal\src\fal_flash.c</FilePath>
|
<FilePath>rt-thread\components\fal\src\fal_flash.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
|
<File>
|
||||||
|
<FileName>fal.c</FileName>
|
||||||
|
<FileType>1</FileType>
|
||||||
|
<FilePath>rt-thread\components\fal\src\fal.c</FilePath>
|
||||||
|
</File>
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
@@ -181,10 +181,7 @@ void rt_hw_inputcapture_isr(struct rt_inputcapture_device *inputcapture, rt_bool
|
|||||||
}
|
}
|
||||||
|
|
||||||
data.is_high = level;
|
data.is_high = level;
|
||||||
if (rt_ringbuffer_put(inputcapture->ringbuff, (rt_uint8_t *)&data, sizeof(struct rt_inputcapture_data)) == 0)
|
rt_ringbuffer_put(inputcapture->ringbuff, (rt_uint8_t *)&data, sizeof(struct rt_inputcapture_data));
|
||||||
{
|
|
||||||
LOG_W("inputcapture ringbuffer doesn't have enough space.");
|
|
||||||
}
|
|
||||||
|
|
||||||
receive_size = rt_ringbuffer_data_len(inputcapture->ringbuff) / sizeof(struct rt_inputcapture_data);
|
receive_size = rt_ringbuffer_data_len(inputcapture->ringbuff) / sizeof(struct rt_inputcapture_data);
|
||||||
|
|
||||||
|
@@ -88,6 +88,8 @@
|
|||||||
#define RT_USING_ADC
|
#define RT_USING_ADC
|
||||||
#define RT_USING_PWM
|
#define RT_USING_PWM
|
||||||
#define RT_USING_WDT
|
#define RT_USING_WDT
|
||||||
|
#define RT_USING_INPUT_CAPTURE
|
||||||
|
#define RT_INPUT_CAPTURE_RB_SIZE 100
|
||||||
|
|
||||||
/* Using USB */
|
/* Using USB */
|
||||||
|
|
||||||
@@ -304,6 +306,13 @@
|
|||||||
#define BSP_USING_PWM4_CH2
|
#define BSP_USING_PWM4_CH2
|
||||||
#define BSP_USING_PWM4_CH3
|
#define BSP_USING_PWM4_CH3
|
||||||
#define BSP_USING_PWM4_CH4
|
#define BSP_USING_PWM4_CH4
|
||||||
|
#define BSP_USING_CAPTURE
|
||||||
|
#define BSP_USING_CAPTURE1
|
||||||
|
#define BSP_USING_CAPTURE1_CH1
|
||||||
|
#define BSP_USING_CAPTURE1_CH2
|
||||||
|
#define BSP_USING_CAPTURE2
|
||||||
|
#define BSP_USING_CAPTURE2_CH3
|
||||||
|
#define BSP_USING_CAPTURE2_CH4
|
||||||
#define BSP_USING_ADC
|
#define BSP_USING_ADC
|
||||||
#define BSP_USING_ADC1
|
#define BSP_USING_ADC1
|
||||||
#define BSP_USING_ON_CHIP_FLASH
|
#define BSP_USING_ON_CHIP_FLASH
|
||||||
|
Reference in New Issue
Block a user