注册 登录
查看: 243|回复: 3

KL26的延时函数使用

[复制链接]
发表于 2014-8-13 23:13:49 | 显示全部楼层 |阅读模式
/*
* 配置延时函数
*/
#if  0
#include "MKL_lptmr.h"
#define     DELAY()         lptmr_delay_ms(500)
#define     DELAY_MS(ms)    lptmr_delay_ms(ms)
#define     DELAY_US(us)    lptmr_delay_us(us)
#elif   0
#include "MKL_pit.h"
#define DELAY()         pit_delay_ms(PIT1,500)
#define DELAY_MS(ms)    pit_delay_ms(PIT1,ms)
#define DELAY_US(us)    pit_delay_us(PIT1,us)
#else
#include "MKL_SysTick.h"
#define DELAY()         systick_delay_ms(500)
#define DELAY_MS(ms)    systick_delay_ms(ms)
#define DELAY_US(us)    systick_delay_us(us)
#endif
山外哥,我是初学者。延时函数可以用这三种函数吧?是不是他们都有自己的时钟模块呢?
我还有点不懂这条件编译。上面这种写法到底编译哪些呢?还是都编译,都可以调用吗?这三种有什么区别呢?
回复

使用道具 举报

发表于 2014-8-13 23:15:19 | 显示全部楼层
上面3种都可以用。

条件编译,是选择 DELAY() 这些宏定义具体选择的是哪个 模块。

他们都有自己的时钟,是准确延时的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-13 23:20:09 | 显示全部楼层
山外メ雲ジ 发表于 2014-8-13 23:15
上面3种都可以用。

条件编译,是选择 DELAY() 这些宏定义具体选择的是哪个 模块。

比如我想用lptmr这个模块,是不是把if 0改为if 1呢?
回复 支持 反对

使用道具 举报

发表于 2014-8-13 23:21:05 | 显示全部楼层
798931248 发表于 2014-8-13 23:20
比如我想用lptmr这个模块,是不是把if 0改为if 1呢?

是,不过一般lptmr 用于脉冲计数,就不要用于延时了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部