智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 10947|回复: 37
打印 上一主题 下一主题

编码器PT7口测速

  [复制链接]

16

主题

47

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1212
威望
685
贡献
247
兑换币
86
注册时间
2012-2-2
在线时间
140 小时
毕业学校
三江
跳转到指定楼层
1#
发表于 2012-5-13 20:15:25 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
void PLL_Init(void)   //PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1
{ CLKSEL=0x00;
  PLLCTL_PLLON=1;                    //锁相环时钟=2*16*(5+1)/(1+1)=48MHz
  REFDV=1;            //总线时钟=48/2=24MHz
  SYNR=0xC5;
  POSTDIV=0x00;
  _asm NOP;
  _asm NOP;
  _asm NOP;
  while((CRGFLG&0x08)==0);
  CLKSEL_PLLSEL=1;        //选定锁相环时钟  */
}

void PIT0_Init(void)          //定时中断初始化函数 0.1MS定时中断设置
{
    PACTL=0x50;
    PITCFLMT_PITE=0;          //定时中断通道0关
    PITCE_PCE0=1;             //定时器通道0使能
    PITMTLD0=120-1;           //8位定时器初值设定。120分频,在24MHzBusClock下,为0.2MHz。即 5us.
    PITLD0=20-1;           //16位定时器初值设定。PITTIME*0.005MS=0.1ms
    PITINTE_PINTE0=1;           //定时器中断通道0中断使能
    PITCFLMT_PITE=1;            //定时器通道0使能
}


void PA_Init(void)
  {
   PACTL=0x50;//PT7 PIN,PACN32 16BIT,FALLing edge,NOT INTERRUPT
   PACNT = 0x00;    //累加器置初值
}


#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT0_INTER()             //2十毫秒计数一次
{
    PIT0Count++;
    if(PIT0Count==200)
    {
       PIT0Count=0;
       //PACTL_PAEN=0;
       nowspeed=PACNT;                //编码器输出脉冲个数
       PACNT=0;
      PITTF_PTF0=1;//清中断标志位


我用的是PT7口测速的  测编码器的波形是好的 但是PACNT检测不到值 为什么总是0啊 求高手

6

主题

673

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2357

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

QQ
威望
1073
贡献
634
兑换币
740
注册时间
2013-7-5
在线时间
325 小时
38#
发表于 2014-1-13 21:06:47 | 只看该作者
:o:o看看
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
威望
126
贡献
62
兑换币
72
注册时间
2012-11-30
在线时间
36 小时
37#
发表于 2013-4-12 23:45:02 | 只看该作者
鸡蛋灌饼 发表于 2013-3-29 15:43
PACTL=0x50;这句话是什么意思,为什么有的是0x40 ??求解

上升沿计数,使能累加器
回复 支持 反对

使用道具 举报

0

主题

80

帖子

0

精华

高级会员

Rank: 4

积分
798
威望
333
贡献
273
兑换币
197
注册时间
2012-11-16
在线时间
96 小时
毕业学校
华北水利水电学院
36#
发表于 2013-3-30 21:50:05 | 只看该作者
有可能主函数里边没有初始化吧,今儿我们仅是这种情况,,,
回复 支持 反对

使用道具 举报

12

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1179
威望
590
贡献
325
兑换币
287
注册时间
2012-10-11
在线时间
132 小时
35#
发表于 2013-3-29 16:12:28 | 只看该作者
初始化之后怎么获得目前速度啊???
回复 支持 反对

使用道具 举报

12

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1179
威望
590
贡献
325
兑换币
287
注册时间
2012-10-11
在线时间
132 小时
34#
发表于 2013-3-29 15:43:00 | 只看该作者
PACTL=0x50;这句话是什么意思,为什么有的是0x40 ??求解
回复 支持 反对

使用道具 举报

10

主题

169

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3183
威望
1604
贡献
1001
兑换币
830
注册时间
2012-6-30
在线时间
289 小时
33#
发表于 2013-3-14 13:53:16 | 只看该作者
昨晚刚解决同样的问题,不过我的问题是初始化那边没设置好
回复 支持 反对

使用道具 举报

12

主题

110

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1683
威望
873
贡献
480
兑换币
175
注册时间
2012-3-9
在线时间
165 小时
32#
发表于 2013-3-10 11:12:46 | 只看该作者
510838570 发表于 2012-5-31 19:10
你好,你的问题是怎么样解决的,我遇到和你相同的问题,在示波器能够显示,可是测量到的值都是0

我也是一样的问题,同求啊
回复 支持 反对

使用道具 举报

21

主题

892

帖子

0

精华

常驻嘉宾

爱板者

Rank: 8Rank: 8

积分
3857

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

威望
1833
贡献
1048
兑换币
736
注册时间
2012-12-4
在线时间
488 小时
31#
发表于 2013-1-1 22:22:43 | 只看该作者
zhiyang1989 发表于 2012-6-5 13:33
你可以先用函数发生器模拟一个方波 调方波幅度 看下调到什么时候能检测到值 然后接编码器 看编码器的波形 ...

那你怎么没解决的呢 硬件或者软件应该加什么
回复 支持 反对

使用道具 举报

21

主题

892

帖子

0

精华

常驻嘉宾

爱板者

Rank: 8Rank: 8

积分
3857

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

威望
1833
贡献
1048
兑换币
736
注册时间
2012-12-4
在线时间
488 小时
30#
发表于 2013-1-1 22:19:25 | 只看该作者
zhiyang1989 发表于 2012-5-15 12:54
我知道问题所在了 是因为我的编码器输出的波形幅度太小了导致接收不到PANCT里面的值 不过还是真心谢谢你啊 ...

求指教 和你一样的问题 我的测了峰峰值是10V以上  跟别人的差不多
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 04:52 , Processed in 0.139744 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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