Bouffalo SDK  1.0
Bouffalolab Software Development Kit
bflb_timer.h
Go to the documentation of this file.
1 #ifndef _BFLB_TIMER_H
2 #define _BFLB_TIMER_H
3 
4 #include "bflb_core.h"
5 
17 #if !defined(BL702L)
18 #define TIMER_CLKSRC_BCLK 0
19 #endif
20 #define TIMER_CLKSRC_32K 1
21 #define TIMER_CLKSRC_1K 2
22 #define TIMER_CLKSRC_XTAL 3
23 #if !defined(BL702) && !defined(BL602)
24 #define TIMER_CLKSRC_GPIO 4
25 #endif
26 #define TIMER_CLKSRC_NO 5
27 
34 #define TIMER_COUNTER_MODE_PROLOAD 0
35 #define TIMER_COUNTER_MODE_UP 1
36 
43 #define TIMER_COMP_ID_0 0
44 #define TIMER_COMP_ID_1 1
45 #define TIMER_COMP_ID_2 2
46 #define TIMER_COMP_NONE 3
47 
54 #define TIMER_CAPTURE_POLARITY_POSITIVE 0
55 #define TIMER_CAPTURE_POLARITY_NEGATIVE 1
56 
73  uint8_t counter_mode;
74  uint8_t clock_source;
75  uint8_t clock_div;
76  uint8_t trigger_comp_id;
77  uint32_t comp0_val;
78  uint32_t comp1_val;
79  uint32_t comp2_val;
80  uint32_t preload_val;
81 };
82 
90  uint8_t pin;
91  uint8_t polarity;
92 };
93 
94 #ifdef __cplusplus
95 extern "C" {
96 #endif
97 
104 void bflb_timer_init(struct bflb_device_s *dev, const struct bflb_timer_config_s *config);
105 
111 void bflb_timer_deinit(struct bflb_device_s *dev);
112 
118 void bflb_timer_start(struct bflb_device_s *dev);
119 
125 void bflb_timer_stop(struct bflb_device_s *dev);
126 
133 void bflb_timer_set_preloadvalue(struct bflb_device_s *dev, uint32_t val);
134 
142 void bflb_timer_set_compvalue(struct bflb_device_s *dev, uint8_t cmp_no, uint32_t val);
143 
151 uint32_t bflb_timer_get_compvalue(struct bflb_device_s *dev, uint8_t cmp_no);
152 
159 uint32_t bflb_timer_get_countervalue(struct bflb_device_s *dev);
160 
168 void bflb_timer_compint_mask(struct bflb_device_s *dev, uint8_t cmp_no, bool mask);
169 
177 bool bflb_timer_get_compint_status(struct bflb_device_s *dev, uint8_t cmp_no);
178 
185 void bflb_timer_compint_clear(struct bflb_device_s *dev, uint8_t cmp_no);
186 
187 #if !defined(BL702) || !defined(BL602)
188 void bflb_timer_capture_init(struct bflb_device_s *dev, const struct bflb_timer_capture_config_s *config);
190 #endif
191 
192 #ifdef __cplusplus
193 }
194 #endif
195 
204 #endif
TIMER capture configuration structure.
Definition: bflb_timer.h:89
uint32_t comp0_val
Definition: bflb_timer.h:77
void bflb_timer_init(struct bflb_device_s *dev, const struct bflb_timer_config_s *config)
Initialize timer.
uint32_t comp2_val
Definition: bflb_timer.h:79
uint32_t bflb_timer_capture_get_pulsewidth(struct bflb_device_s *dev)
TIMER configuration structure.
Definition: bflb_timer.h:72
uint32_t comp1_val
Definition: bflb_timer.h:78
void bflb_timer_compint_mask(struct bflb_device_s *dev, uint8_t cmp_no, bool mask)
Enable or disable timer interrupt of corresponding compare id.
void bflb_timer_start(struct bflb_device_s *dev)
Start timer.
uint32_t bflb_timer_get_compvalue(struct bflb_device_s *dev, uint8_t cmp_no)
Get compare value of corresponding compare id.
void bflb_timer_compint_clear(struct bflb_device_s *dev, uint8_t cmp_no)
Clear timer interrupt status of corresponding compare id.
uint32_t bflb_timer_get_countervalue(struct bflb_device_s *dev)
Get timer counter value.
bool bflb_timer_get_compint_status(struct bflb_device_s *dev, uint8_t cmp_no)
Get timer interrupt status of corresponding compare id.
uint8_t trigger_comp_id
Definition: bflb_timer.h:76
void bflb_timer_set_compvalue(struct bflb_device_s *dev, uint8_t cmp_no, uint32_t val)
Set compare value of corresponding compare id.
void bflb_timer_set_preloadvalue(struct bflb_device_s *dev, uint32_t val)
Set timer preload value.
void bflb_timer_capture_init(struct bflb_device_s *dev, const struct bflb_timer_capture_config_s *config)
uint8_t counter_mode
Definition: bflb_timer.h:73
void bflb_timer_stop(struct bflb_device_s *dev)
Stop timer.
uint32_t preload_val
Definition: bflb_timer.h:80
void bflb_timer_deinit(struct bflb_device_s *dev)
Deinitialize timer.
uint8_t clock_source
Definition: bflb_timer.h:74