智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2102|回复: 11
打印 上一主题 下一主题

kl25脉冲计数

[复制链接]

15

主题

107

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2212
威望
1132
贡献
682
兑换币
724
注册时间
2014-1-30
在线时间
199 小时
跳转到指定楼层
1#
发表于 2014-5-20 15:14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有没有kl25脉冲计数写出来的,拿出来分享一下。
回复

使用道具 举报

28

主题

598

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3121

活跃会员奖章优秀会员奖章

威望
1711
贡献
860
兑换币
854
注册时间
2013-10-29
在线时间
275 小时
2#
发表于 2014-5-20 15:35:17 | 只看该作者
有!可惜不是我!
回复 支持 反对

使用道具 举报

14

主题

644

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4415

在线王奖章优秀会员奖章活跃会员奖章论坛元老奖章

威望
2369
贡献
358
兑换币
1614
注册时间
2013-9-23
在线时间
844 小时
3#
发表于 2014-5-20 15:39:59 | 只看该作者
void Counter0_Init(void)
{
        /*First configure the pin of the module will be use*/
        SIM->SCGC5 |=(uint32_t)(0x1UL<<11);                        //open the clock of the PTC
        PORTC->PCR[5] &=~(uint32_t)(0x7UL<<8);
        PORTC->PCR[5] |=(uint32_t)(0x3UL<<8);        //PTC5 for ALT3(LPTMR_ALT2)

        /*Configure the module*/
        SIM->SCGC5 |=(uint32_t)(0x1UL<<0);                        //open the clock of the LPTMR0
        LPTMR0->CSR =0;
        LPTMR0->PSR        =0;
  LPTMR0->CMR        =0xFFFFUL;
        LPTMR0->PSR        |=(uint32_t)(0x1UL<<2);                //prescaler and glitch filter bypassed,if you want to use it,reference the book
       
        LPTMR0->CSR        &=~(uint32_t)(0x3UL<<4);
        LPTMR0->CSR |=(uint32_t)(0x2UL<<4);                //Select the LPTMR_ALT2 as the input clk
        LPTMR0->CSR |=(uint32_t)(0x1UL<<1);                //counter mode selected
       
        LPTMR0->CSR        |=(uint32_t)0x1UL;                        //enable the counter
}
uint32_t Counter0_Read(void)
{
        uint32_t temp=0;
        LPTMR0->CNR =0x00;
        temp=LPTMR0->CNR;
        return temp;
}
void Counter0_Clear(void)
{
        LPTMR0->CSR =0;
        LPTMR0->PSR        =0;
  LPTMR0->CMR        =0xFFFFUL;
        LPTMR0->PSR        |=(uint32_t)(0x1UL<<2);                //prescaler and glitch filter bypassed,if you want to use it,reference the book
       
        LPTMR0->CSR        &=~(uint32_t)(0x3UL<<4);
        LPTMR0->CSR |=(uint32_t)(0x2UL<<4);                //Select the LPTMR_ALT2 as the input clk
        LPTMR0->CSR |=(uint32_t)(0x1UL<<1);                //counter mode selected
       
        LPTMR0->CSR        |=(uint32_t)0x1UL;                        //enable the counter
}
回复 支持 反对

使用道具 举报

15

主题

107

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2212
威望
1132
贡献
682
兑换币
724
注册时间
2014-1-30
在线时间
199 小时
4#
 楼主| 发表于 2014-5-20 16:59:09 | 只看该作者
chenqiang 发表于 2014-5-20 15:39
void Counter0_Init(void)
{
        /*First configure the pin of the module will be use*/

你用了吗,能测出来吗,我大致也这样写的,但是测不出来
回复 支持 反对

使用道具 举报

14

主题

644

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4415

在线王奖章优秀会员奖章活跃会员奖章论坛元老奖章

威望
2369
贡献
358
兑换币
1614
注册时间
2013-9-23
在线时间
844 小时
5#
发表于 2014-5-20 17:06:02 | 只看该作者
綿婲/ka餹 发表于 2014-5-20 16:59
你用了吗,能测出来吗,我大致也这样写的,但是测不出来

用了,挺好用的。能计数啊
回复 支持 反对

使用道具 举报

14

主题

644

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4415

在线王奖章优秀会员奖章活跃会员奖章论坛元老奖章

威望
2369
贡献
358
兑换币
1614
注册时间
2013-9-23
在线时间
844 小时
6#
发表于 2014-5-20 17:07:26 | 只看该作者
綿婲/ka餹 发表于 2014-5-20 16:59
你用了吗,能测出来吗,我大致也这样写的,但是测不出来

最大计数为65535,在到达这个数之前要清零。
回复 支持 反对

使用道具 举报

15

主题

107

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2212
威望
1132
贡献
682
兑换币
724
注册时间
2014-1-30
在线时间
199 小时
7#
 楼主| 发表于 2014-5-20 17:45:45 | 只看该作者
chenqiang 发表于 2014-5-20 17:06
用了,挺好用的。能计数啊

哦,我试试,有什么问题再问你

回复 支持 反对

使用道具 举报

6

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1647
威望
872
贡献
547
兑换币
571
注册时间
2014-6-19
在线时间
114 小时
毕业学校
河海
8#
发表于 2014-7-8 14:07:20 | 只看该作者
挺好的,但我想实现两路脉冲计数怎么办呢?
回复 支持 反对

使用道具 举报

0

主题

9

帖子

0

精华

高级会员

Rank: 4

积分
813
威望
409
贡献
256
兑换币
262
注册时间
2013-7-6
在线时间
74 小时
毕业学校
西太平洋大学
9#
发表于 2014-7-9 11:31:16 | 只看该作者
chenqiang 发表于 2014-5-20 15:39
void Counter0_Init(void)
{
        /*First configure the pin of the module will be use*/

请问一下,我用lptmr脉冲计数,发现它在速度快的时候测不准,超过正确值很多,跳动很大。你有没有遇到这种情况啊?
回复 支持 反对

使用道具 举报

14

主题

644

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4415

在线王奖章优秀会员奖章活跃会员奖章论坛元老奖章

威望
2369
贡献
358
兑换币
1614
注册时间
2013-9-23
在线时间
844 小时
10#
发表于 2014-7-9 21:54:16 | 只看该作者
国际化 发表于 2014-7-9 11:31
请问一下,我用lptmr脉冲计数,发现它在速度快的时候测不准,超过正确值很多,跳动很大。你有没有遇到这种 ...

没有遇到过这种情况呢
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-30 16:15 , Processed in 0.069709 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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