打印
[Kinetis]

kl02 us级的精确延时函数

[复制链接]
1497|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ysszhk|  楼主 | 2014-12-24 15:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我自己写了一个us级的延时函数,不知道对不对?请大家帮我看看。
void delay(int N)
{
        int i;
        //MCGFLLCLK as clock
        SIM_SOPT2 |= SIM_SOPT2_TPMSRC(1);
        //open TPM0 clock gate control
        SIM_SCGC6 |= SIM_SCGC6_TPM0_MASK;
                //set count value
        i=48*N;//48  about 1us
        TPM0_MOD = i;
        //TPM counter increments on every TPM counter clock
        TPM0_SC = TPM_SC_TOIE_MASK | TPM_SC_CMOD(1) ;
        while(!(TPM0_SC&TPM_SC_TOF_MASK));
        TPM0_SC |= TPM_SC_TOF_MASK;
        TPM0_SC &= ~TPM_SC_TOIE_MASK;       
}

相关帖子

沙发
ysszhk|  楼主 | 2014-12-24 15:14 | 只看该作者
外部晶振32.768K,fll因子1464.

使用特权

评论回复
板凳
FSL_TICS_Robin| | 2014-12-24 15:18 | 只看该作者
楼主你好
实际是否准确还得通过测试才能知道呢

使用特权

评论回复
地板
ysszhk|  楼主 | 2014-12-24 18:40 | 只看该作者
就是想看看各位大神觉得我这个写的有没有问题啊。。

使用特权

评论回复
5
FSL_TICS_Robin| | 2014-12-25 15:07 | 只看该作者
楼主你好
如果你只是需要一个软件定时器而不需要操作外部引脚,那么PIT也可以实现此功能。
TPM模块更适合做PWM输出、输入捕捉等功能。

使用特权

评论回复
6
ysszhk|  楼主 | 2014-12-27 12:37 | 只看该作者
FSL_TICS_Robin 发表于 2014-12-25 15:07
楼主你好
如果你只是需要一个软件定时器而不需要操作外部引脚,那么PIT也可以实现此功能。
TPM模块更适合做 ...

嗯,这个us定时还是很准的,我用示波器量是很准的。

使用特权

评论回复
7
elecintop| | 2014-12-28 17:15 | 只看该作者
:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

79

帖子

0

粉丝