TIMER

Macros

timer clock source

定时器输入时钟源可以选择以下类型,注意: TIMER_CLKSRC_GPIO BL602/BL702 系列没有此功能。

1#define TIMER_CLKSRC_BCLK 0
2#define TIMER_CLKSRC_32K  1
3#define TIMER_CLKSRC_1K   2
4#define TIMER_CLKSRC_XTAL 3
5#define TIMER_CLKSRC_GPIO 4
6#define TIMER_CLKSRC_NO   5

timer counter mode

定时器计数模式分为两种: freerun(向上计数模式)、preload(重装载模式)。

1 #define TIMER_COUNTER_MODE_PROLOAD 0
2 #define TIMER_COUNTER_MODE_UP      1

timer compare id

定时器一共三个 compare id, 用于设置不同的定时时间,可以当三个定时器使用。

1 #define TIMER_COMP_ID_0 0
2 #define TIMER_COMP_ID_1 1
3 #define TIMER_COMP_ID_2 2

Structs

struct bflb_timer_config_s

timer 初始化配置结构体。

 1 struct bflb_timer_config_s {
 2     uint8_t counter_mode;
 3     uint8_t clock_source;
 4     uint8_t clock_div;
 5     uint8_t trigger_comp_id;
 6     uint32_t comp0_val;
 7     uint32_t comp1_val;
 8     uint32_t comp2_val;
 9     uint32_t preload_val;
10 };

parameter

description

counter_mode

计数模式

clock_source

时钟源选择

clock_div

分频值

trigger_comp_id

选择触发的最高 comp id(选择越高,则能够定时的个数越多)

comp0_val

comp0 比较值

comp1_val

comp1 比较值(需要大于 comp0_val)

comp2_val

comp2 比较值(需要大于 comp1_val)

preload_val

重装载值

Functions

bflb_timer_init

说明: 初始化 timer。使用之前需要开启 timer ip 时钟。

1 void bflb_timer_init(struct bflb_device_s *dev, const struct bflb_timer_config_s *config);

parameter

description

dev

设备句柄

config

配置项

bflb_timer_deinit

说明: 反初始化 timer。

1 void bflb_timer_deinit(struct bflb_device_s *dev);

parameter

description

dev

设备句柄

bflb_timer_start

说明: 启动 timer 。

1 void bflb_timer_start(struct bflb_device_s *dev);

parameter

description

dev

设备句柄

bflb_timer_stop

说明: 停止 timer。

1 void bflb_timer_stop(struct bflb_device_s *dev);

parameter

description

dev

设备句柄

bflb_timer_set_compvalue

说明: 设置 timer comp id 比较值。

1 void bflb_timer_set_compvalue(struct bflb_device_s *dev, uint8_t cmp_no, uint32_t val);

parameter

description

dev

设备句柄

cmp_no

comp id

val

比较值

bflb_timer_get_compvalue

说明: 获取 comp id 比较值。

1 uint32_t bflb_timer_get_compvalue(struct bflb_device_s *dev, uint8_t cmp_no);

parameter

description

dev

设备句柄

cmp_no

comp id

return

比较值

bflb_timer_get_countervalue

说明: 获取 timer 计数值。

1 uint32_t bflb_timer_get_countervalue(struct bflb_device_s *dev);

parameter

description

dev

设备句柄

return

计数值

bflb_timer_compint_mask

说明: timer comp 中断屏蔽开关。

1 void bflb_timer_compint_mask(struct bflb_device_s *dev, uint8_t cmp_no, bool mask);

parameter

description

dev

设备句柄

cmp_no

comp id

mask

是否屏蔽中断

bflb_timer_get_compint_status

说明: 获取 timer comp id 中断匹配标志。

1 bool bflb_timer_get_compint_status(struct bflb_device_s *dev, uint8_t cmp_no);

parameter

description

dev

设备句柄

cmp_no

comp id

return

为 true 表示匹配

bflb_timer_compint_clear

说明: 清除 timer comp id 中断标志。

1 void bflb_timer_compint_clear(struct bflb_device_s *dev, uint8_t cmp_no);

parameter

description

dev

设备句柄

cmp_no

comp id