1)使用XMC_Delay(); 上述函数会延迟指定的毫秒数,延迟的周期数是参考SystemCoreClock来计算的,这个API是在最新的XMC_LIB中定义的,可从以下链接中下载: 2)另一种方法是在DAVE中配置Timer,让Timer计数到所需的延迟时间,并在达到所需延迟时间时产生中断。可以参考以下链接: 3)以下函数也可以创建延时,但为了配置确切的延时,应根据时钟频率进行必要的计算: #define FREQ_1MHZ (1000000UL) void Delay1(uint32_t delay) { uint32_t i; SystemCoreClockUpdate(); delay = delay * (uint32_t)(SystemCoreClock / FREQ_1MHZ); for (i = 0U; i < delay; ++i) { __NOP(); } }
|