marginer 发表于 2019-7-16 12:09 初始化SysTick定时器,用于delay延时;必须在调用AC781x库封装的延时函数之前,调用InitDelay()。 |
marginer 发表于 2019-7-16 12:09 void InitDelay(void) { s_facus = __SYSTEM_CLOCK / 1000000; s_facms = s_facus * 1000; }SysTick的配置和使能是在mdelay或udelay里面配置的。 InitDelay会根据当前的系统时钟算出1ms或1us需要多少个count。在调用udelay或mdelay时,会参考这个值。 void udelay(uint32_t us) { uint32_t tick = us * s_facus; SysTickRepeatDelay(tick / MAX_SYSTICK_COUNT, MAX_SYSTICK_COUNT); SysTickDelay(tick % MAX_SYSTICK_COUNT); } |