时钟模块分为系统时钟(system clock)和系统定时器(system Timer)。其中系统时钟是MCU执行程序的时钟,可以为硬件模块提供时钟。系统定时器,是一个只读的定时器,为BLE时序提供时间基准,也可以给用户使用。
系统时钟,是24MHZ晶振,经过倍频、分频得到,分为16M/24M/32M/48M
系统定时器,是24MHZ晶振,2/3分频得到,固定16M.
系统时钟,可以在app_config.h中修改定义。所有时钟源为system clock的硬件模块,在设置模块的clock时候,只能使用下面的时间定义进行设置。
/// Clock /
//#define CLOCK_SYS_CLOCK_HZ 16000000
//#define CLOCK_SYS_CLOCK_HZ 24000000
//#define CLOCK_SYS_CLOCK_HZ 32000000
#define CLOCK_SYS_CLOCK_HZ 48000000
enum{
CLOCK_SYS_CLOCK_1S = CLOCK_SYS_CLOCK_HZ,
CLOCK_SYS_CLOCK_1MS = (CLOCK_SYS_CLOCK_1S / 1000),
CLOCK_SYS_CLOCK_1US = (CLOCK_SYS_CLOCK_1S / 1000000),
系统定时器,是BLE的计时基准,定义如下:
//clock.h
//system timer clock source is constant 16M, never change
enum{
CLOCK_16M_SYS_TIMER_CLK_1S =