SemiDrive SSDK Appication Program Interface PTG3.0
sdrv_multicapture.h
Go to the documentation of this file.
1
8#ifndef SDRV_MULTI_CPT_H
9#define SDRV_MULTI_CPT_H
10
11
12#define ETIMER_IP_MAX_MODULE (8U) /*etimer的模块的最大数量*/
13#define MULTI_CPT_MODULE_NUM (2U) /*支持multi capture模块的数量。当前只有etimer1 和 etimer2支持multi capture的功能*/
14#define MULTI_CPT_MAX_IO_NUM (32U) /*支持multi capture模块,最大输入捕获的通道数量*/
15#define MULTI_CPT_BURST_LEN (1) /*缓冲区数据buff的大小*/
16#define MULTI_CPT_DMA_BURST_LEN (1) /*DMA每次搬运一个数据*/
17
18
19typedef enum {
20 MULTI_CPT_RISING_EDGE = 0u, /*上升沿*/
21 MULTI_CPT_FALLING_EDGE /*下降沿*/
23
24
25typedef enum {
26 MULTI_CPT_ACTIVE = 0u, /*通道Active*/
27 MULTI_CPT_IDLE /*通道Idle*/
29
30
31typedef enum {
35 MULTI_CPT_ETIMER4 = 3U, /*etimer的模块*/
37
38typedef enum {
39 MULTI_CPT_SEL_HF_CLK = 0, /*默认值*/
43} sdrv_multicpt_clock_ref_type; /*时钟源*/
44
45
46typedef struct {
47 uint8_t u8TimerModule; /*etimer模块ID*/
48 uint8_t u8MultiCptChannum; /*multi capture的数量*/
49 uint16_t u16Prescaler; /*时钟分频系数*/
51 uint32_t irq; /*中断号*/
52 bool int_en; /*是否使能中断还是DMA*/
54
55
56
57
58extern uint8_t sdrv_get_chip_version(void);
59
66extern void sdrv_etimer_multicpt_init(void);
67
76
84extern void sdrv_etimer_multicpt_module_deinit(uint8_t timer_module);
85
94extern void sdrv_etimer_multicpt_channel_start_capture(uint8_t timer_module, uint8_t channel);
95
104extern void sdrv_etimer_multicpt_channel_stop_capture(uint8_t timer_module, uint8_t channel);
105
106#endif
unsigned char u[1]
Definition: logo_rgb565.h:32916
void sdrv_etimer_multicpt_init(void)
sdrv_etimer_multicpt_init
void sdrv_etimer_multicpt_module_init(sdrv_multicpt_config *pmulticpt_config)
sdrv_etimer_multicpt_module_init
sdrv_multicpt_input_state_type
Definition: sdrv_multicapture.h:25
@ MULTI_CPT_IDLE
Definition: sdrv_multicapture.h:27
@ MULTI_CPT_ACTIVE
Definition: sdrv_multicapture.h:26
void sdrv_etimer_multicpt_module_deinit(uint8_t timer_module)
sdrv_etimer_multicpt_module_deinit
void sdrv_etimer_multicpt_channel_stop_capture(uint8_t timer_module, uint8_t channel)
sdrv_etimer_multicpt_channel_stop_capture
sdrv_multicpt_edge_change_type
Definition: sdrv_multicapture.h:19
@ MULTI_CPT_RISING_EDGE
Definition: sdrv_multicapture.h:20
@ MULTI_CPT_FALLING_EDGE
Definition: sdrv_multicapture.h:21
sdrv_multicpt_clock_ref_type
Definition: sdrv_multicapture.h:38
@ MULTI_CPT_SEL_AHF_CLK
Definition: sdrv_multicapture.h:40
@ MULTI_CPT_SEL_HF_CLK
Definition: sdrv_multicapture.h:39
@ MULTI_CPT_SEL_LP_CLK
Definition: sdrv_multicapture.h:42
@ MULTI_CPT_SEL_EXT_CLK
Definition: sdrv_multicapture.h:41
sdrv_multicpt_hw_module
Definition: sdrv_multicapture.h:31
@ MULTI_CPT_ETIMER3
Definition: sdrv_multicapture.h:34
@ MULTI_CPT_ETIMER2
Definition: sdrv_multicapture.h:33
@ MULTI_CPT_ETIMER4
Definition: sdrv_multicapture.h:35
@ MULTI_CPT_ETIMER1
Definition: sdrv_multicapture.h:32
void sdrv_etimer_multicpt_channel_start_capture(uint8_t timer_module, uint8_t channel)
sdrv_etimer_multicpt_channel_start_capture
uint8_t sdrv_get_chip_version(void)
Definition: sdrv_multicapture.h:46
uint16_t u16Prescaler
Definition: sdrv_multicapture.h:49
uint32_t irq
Definition: sdrv_multicapture.h:51
bool int_en
Definition: sdrv_multicapture.h:52
sdrv_multicpt_clock_ref_type eClockRef
Definition: sdrv_multicapture.h:50
uint8_t u8TimerModule
Definition: sdrv_multicapture.h:47
uint8_t u8MultiCptChannum
Definition: sdrv_multicapture.h:48