智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5713|回复: 6
打印 上一主题 下一主题

[采集类] 疑问··关于计算编码器脉冲测速的。

[复制链接]

1

主题

31

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
397
威望
220
贡献
39
兑换币
12
注册时间
2010-11-24
在线时间
69 小时
跳转到指定楼层
1#
发表于 2011-3-13 21:52:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
先看源程序:
#define bus 24000000
#define timeclk (bus/128)
#define intcnt   200
#define cnts    (timeclk/intcnt)
#define duoji   1500

void PLL_Init(void)   //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)

{                     //锁相环时钟=2*16*(2+1)/(1+1)=48MHz

  REFDV=1;            //总线时钟=48/2=24MHz
  SYNR=2;
  while(!(CRGFLG&0x08));
  CLKSEL=0x80;        //选定锁相环时钟                                          

}


void PACN_Init()

{

PACTL = 0x50;      //脉冲计数 下降沿
PACNT = 0x0000;  //清0计数器

}

void Time_Init()

{
TIOS=0x01;    //定时器通道0设置为输出比较
TC0=(int)(TCNT+cnts); //赋初值,当TCNT从0计数到此值时第一次进入中断
TCTL2=0x01;  
TSCR2=0x07;   //计一个数用5.33微秒  
TSCR1=0x80;
TIE=0x01;      
}

#pragma CODE_SEG NON_BANKED
void interrupt 8 TIM(void)

{

TFLG1_C0F=1;//清中断标志位
TIE=0x00;
TC0=(int)(TCNT+cnts);
sudu=PACNT ;  //读取脉冲数
PACNT =0;
   TIE=0x01;   
}

#pragma CODE_SEG DEFAULT



读到脉冲数后直接显示,显示数字是60.按照定时器的定义,5000US左右中断一次读取数值,那么一秒钟脉冲就差不多是12000个,我用的是200P的速度编码器,那么每秒钟编码器转60圈,编码器齿轮直径16毫米,车大齿轮直径42毫米,乘上换成速度那差不多20M/S,这显然不可能。我不知道哪里出现了问题,请各位帮我看看问题出现在哪里?

3

主题

54

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
455
威望
262
贡献
95
兑换币
12
注册时间
2010-11-13
在线时间
49 小时
2#
发表于 2011-3-13 21:54:36 | 只看该作者
我还没做到测速部分呢,,先来学习一下
回复

使用道具 举报

7

主题

42

帖子

0

精华

高级会员

Rank: 4

积分
698
威望
406
贡献
196
兑换币
10
注册时间
2012-2-23
在线时间
48 小时
毕业学校
湘潭大学
3#
发表于 2012-2-27 11:01:46 | 只看该作者
你把中断的时间设置长一点看看怎么样呀?
回复

使用道具 举报

5

主题

92

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1145
威望
694
贡献
117
兑换币
10
注册时间
2011-5-20
在线时间
167 小时
4#
发表于 2012-2-27 22:45:31 | 只看该作者
好像有个公式,可惜没记住啊
回复

使用道具 举报

0

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
425
威望
295
贡献
70
兑换币
0
注册时间
2012-2-12
在线时间
30 小时
毕业学校
合肥师范学院
5#
发表于 2012-7-22 09:05:38 | 只看该作者
(PACNT/200)*(编码器齿数/连接轮齿数)*连接轮周长/测速周期==speed
回复

使用道具 举报

5

主题

52

帖子

0

精华

高级会员

Rank: 4

积分
939
威望
431
贡献
316
兑换币
252
注册时间
2014-5-12
在线时间
96 小时
毕业学校
河海大学
6#
发表于 2015-2-16 22:16:34 | 只看该作者
PACTL = 0x50;      //脉冲计数 下降沿,应该是上升沿吧
回复

使用道具 举报

10

主题

38

帖子

0

精华

高级会员

Rank: 4

积分
732
威望
385
贡献
209
兑换币
239
注册时间
2015-11-24
在线时间
69 小时
毕业学校
湖北科技学院
7#
发表于 2016-3-17 11:16:37 | 只看该作者
我是随便说的,因为编码器的齿轮没有直接和车轮的齿轮耦合,错了别骂我啊
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 18:28 , Processed in 0.468475 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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