智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 14098|回复: 29
打印 上一主题 下一主题

[软件类] 编码器测速

  [复制链接]

12

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
693
威望
400
贡献
159
兑换币
10
注册时间
2012-4-10
在线时间
67 小时
跳转到指定楼层
1#
发表于 2012-5-2 15:56:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
基于PIT计数器用光电编码器测速,如何把编码器输出的方波脉冲信号用PIT计数?原理和程序的实现!!!

9

主题

95

帖子

2

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4091
威望
826
贡献
3079
兑换币
250
注册时间
2012-2-1
在线时间
93 小时
推荐
发表于 2012-6-3 23:53:10 | 只看该作者
5768340 发表于 2012-5-2 16:07
脉冲累加器

你妹,只有一路脉冲累加器,怎么累加呀,要中断配合才能行的
回复 支持 0 反对 1

使用道具 举报

28

主题

644

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5607

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

威望
2272
贡献
2099
兑换币
346
注册时间
2011-11-15
在线时间
618 小时
2#
发表于 2012-5-2 16:07:27 | 只看该作者
脉冲累加器
回复 支持 反对

使用道具 举报

12

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
693
威望
400
贡献
159
兑换币
10
注册时间
2012-4-10
在线时间
67 小时
3#
 楼主| 发表于 2012-5-2 22:05:32 | 只看该作者
5768340 发表于 2012-5-2 16:07
脉冲累加器

是利用FTM的捕捉模式做个计数器吗?
回复 支持 反对

使用道具 举报

3

主题

99

帖子

0

精华

高级会员

Rank: 4

积分
780
威望
474
贡献
200
兑换币
43
注册时间
2012-2-18
在线时间
53 小时
毕业学校
广东技术师范学院
4#
发表于 2012-5-24 14:30:57 | 只看该作者
mini绝对式编码器测速&测转向非常方便,可以考虑下,淘宝上有卖
回复 支持 反对

使用道具 举报

12

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
693
威望
400
贡献
159
兑换币
10
注册时间
2012-4-10
在线时间
67 小时
5#
 楼主| 发表于 2012-5-24 15:26:02 | 只看该作者
谢谢啦!
回复 支持 反对

使用道具 举报

21

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2104
威望
1065
贡献
631
兑换币
272
注册时间
2011-10-29
在线时间
204 小时
6#
发表于 2012-5-26 09:39:13 | 只看该作者
一直在做LPTM脉冲累加……还没做出来……交流下啊
回复 支持 反对

使用道具 举报

12

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
693
威望
400
贡献
159
兑换币
10
注册时间
2012-4-10
在线时间
67 小时
7#
 楼主| 发表于 2012-5-26 12:32:38 | 只看该作者
你做到什么程度...
回复 支持 反对

使用道具 举报

12

主题

56

帖子

0

精华

高级会员

Rank: 4

积分
693
威望
400
贡献
159
兑换币
10
注册时间
2012-4-10
在线时间
67 小时
8#
 楼主| 发表于 2012-5-26 12:33:10 | 只看该作者
陌路樱花泪 发表于 2012-5-26 09:39
一直在做LPTM脉冲累加……还没做出来……交流下啊

你做到什么程度...
回复 支持 反对

使用道具 举报

27

主题

179

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3585
威望
2743
贡献
620
兑换币
23
注册时间
2011-8-13
在线时间
111 小时
9#
发表于 2012-5-26 12:40:24 | 只看该作者
5768340 发表于 2012-5-2 16:07
脉冲累加器

脉冲累加需不需要中断啊
回复 支持 反对

使用道具 举报

21

主题

81

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2104
威望
1065
贡献
631
兑换币
272
注册时间
2011-10-29
在线时间
204 小时
10#
发表于 2012-5-26 15:30:13 | 只看该作者
□借ωο①生 发表于 2012-5-26 12:33
你做到什么程度...

代码早就写好了,等下帖给你,我在PIT中断里读取速度,现在的问题就是,用手转的小速度可以测到数值,速度一快寄存器的值就为0了,怀疑是PIT周期没设好,你看下能做出来不?搞好也教教我啊
下面代码:
void PIT_init(){
  SIM_SCGC6|=SIM_SCGC6_PIT_MASK;
  PIT_MCR&=~PIT_MCR_MDIS_MASK;//定时器时钟使能
  PIT_MCR&=~PIT_MCR_FRZ_MASK;//在调试模式下停止
  //PIT_MCR=0x00;
  PIT_LDVAL(0)=960000;//周期设置
  PIT_TCTRL(0)|=PIT_TCTRL_TEN_MASK;       //使能pit模块运行
  PIT_TCTRL(0)|=PIT_TCTRL_TIE_MASK;//关中断
}
//LPTM初始化
  void LPTM_init(){
   unsigned int cmp_value=65535; //比较值设到最大
    SIM_SCGC5 |=  SIM_SCGC5_PORTC_MASK ;
    SIM_SCGC5|=SIM_SCGC5_LPTIMER_MASK;//开启LPTM模块时钟
    LPTMR0_CSR=0x00;  //清空寄存器
    LPTMR0_PSR=0x00;
    LPTMR0_CMR=0x00;
    SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK; //设置PTC5为脉冲累加,用C5口作为脉冲接收口
    PORTC_PCR5=PORT_PCR_MUX(0x4); // PTC5
    PORTC_PCR5|=PORT_PCR_PE_MASK;
    PORTC_PCR5|=(PORT_PCR_PS_MASK);//下拉电阻配置 //外部输入的信号作为计数时钟
    LPTMR0_CSR = LPTMR_CSR_TPS(0x2);//选择输入通道2 C5
    LPTMR0_PSR=LPTMR_PSR_PCS(0x01);
    LPTMR0_PSR|=LPTMR_PSR_PBYP_MASK; //LPO clock1KHZ的时钟 , 预分频绕道              
    LPTMR0_CMR=LPTMR_CMR_COMPARE(cmp_value);
    LPTMR0_CSR|=LPTMR_CSR_TPP_MASK;            //设置上升沿触发计数
        LPTMR0_CSR |=LPTMR_CSR_TMS_MASK;//设置为脉冲计数模式
    LPTMR0_CSR|=LPTMR_CSR_TFC_MASK;//自由计数模式   
   
    LPTMR0_CSR&=~LPTMR_CSR_TIE_MASK;//不使能中断
    LPTMR0_CSR|=LPTMR_CSR_TEN_MASK;             //开启模块
  }
void pit0_isr()//在PIT中断里测速,//自己设置中断
{      
GetCnt++;
          if(GetCnt>100){   
          GetFreq=(vint16)(LPTMR0_CNR);
          GetFreq=(vint16)(LPTMR0_CNR);
             LPTMR0_CSR&=(~LPTMR_CSR_TEN_MASK);       //清空寄存器
             LPTMR0_CSR|=LPTMR_CSR_TEN_MASK;
             GetCnt=0;
          }
    PIT_TCTRL(0)|=PIT_TFLG_TIF_MASK;//清中断标志位
},希望你能有突破
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-25 03:34 , Processed in 0.077804 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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