智能车制作

标题: 编码器测速 [打印本页]

作者: 熊熊    时间: 2011-5-20 17:09
标题: 编码器测速
今天把编码器装上了 可是程序下载进去后传感器打到黑线上电机就不转了 全部打到白的上才转 并且不到速度返回值 但是看出来中断是合适的
我只是在之前的程序中加了一下程序 (之前的程序跑的好好的)
void initPIT(void)//定时中断初始化函数 10MS定时中断设置
{
   PITCFLMT_PITE=0; //定时中断通道0关
   PITCE_PCE0=1;//定时器通道0使能
   PITMTLD0=160-1;//8位定时器初值设定。160分频,在16MHzBusClock下,为0.1MHz。即10us.
  
   PITLD0=PITTIME-1;//16位定时器初值设定。PITTIME*0.01MS
   PITINTE_PINTE0=1;//定时器中断通道0中断使能
   PITCFLMT_PITE=1;//定时器通道0使能
}
void Init_Event_Count(void)
{
          PACTL = (1<<6);//脉冲累加器启动,外部发生一次下降沿就计数一次。外部编码器连接到IOC7.
          //在中断里读取PACNT的值就是脉冲个数。读取后清零PACNT。
}
void interrupt 66 timer0(void)      //1ms执行函数程序      
{
  
  PITTF_PTF0 = 1;                     //PIT中断标志位清零
  count++;
   
    if(count>9) //10MS一次中断,用来读取编码器脉冲值
        {
                count=0;
                pulse=PACNT; //读取脉冲值
            //                                                                          Moto_PID();
                   //进行电机的PID控制
            PACNT=0;       //脉冲累加器计数器清零
        }
}
#define PITTIME  1000   //定时100ms(除以 100为ms 定时时间)



哪位大虾能帮我分析这是什么原因 Q:89012072
作者: 熊熊    时间: 2011-5-30 19:22

作者: HTL__BYDgod    时间: 2011-6-11 08:53
关注中
也在纠结
作者: 两米阳光鲍    时间: 2011-6-11 20:15
编码器不给力啊,用示波器看看
作者: tongyonghua123    时间: 2011-10-7 22:35
学习了
作者: songqiang    时间: 2011-10-26 20:54
知道了,谢谢啦
作者: 温水角蛙    时间: 2011-12-11 19:07
我用的是脉冲计数,用定时器读取脉冲寄存器。。。
下面是我的程序。。。。


ACN_init(void)      //使用16位脉冲累加器A进行计数
{
  
  PACTL_PAEN =0;
  PACTL_PEDGE =1;         //上升沿计数
  PACNT=0x0000;               //脉冲累加器清0   
  PACTL_PAEN =1;         //脉冲累加器A使能
}

unsigned int speed_get(void)         //每40个脉冲对应7.8CM
{     
   unsigned int speed;
   speed = PACNT;
   PACNT = 0;
   return speed;
}

void initPIT(void)
{
  PITCFLMT_PITE=0;
  PITCE_PCE=1;
  PITMTLD0=240-1;
  PITLD0=PITTIME-1;
  PITINTE_PINTE0=1;
  PITCFLMT_PITE=1;
}

  #pragma CODE_SEG_NEAR_SEG NON_BANKED
void interrupt 66 PIT0(void) {
vTmpPIT++;
if(vTmpPIT==10) {
  x=speed_get();
put_char_change(x);
Sci0Write('    ');
vTmpPIT=0;
}
PITTF_PTF0=1;
}
作者: 夏洛克    时间: 2012-3-4 18:38

作者: xufang    时间: 2012-3-5 19:47
学习
作者: dongyunlong    时间: 2012-3-16 07:34
lz  pulse=PACNT; //读取脉冲值
这是什么意思?获得这个脉冲就知道了????
作者: c_do0123    时间: 2012-3-21 19:38
学习了!
作者: chenjian    时间: 2012-5-15 19:46
不懂

作者: kycore    时间: 2012-5-23 11:11
各位我想知道在主函数中怎么用脉冲计数器的值,及怎么用pulse=PACNT中的pulse

作者: YLL    时间: 2012-5-24 18:01
问一下,编码器那个齿轮和车模上的齿轮不啮合,要怎么换
作者: 杂志    时间: 2012-12-9 14:16
PACTL =0x20又是什么意思呢?
作者: 鸡蛋灌饼    时间: 2013-3-29 17:23
获得Pulse脉冲的数值怎么得到速度值??




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2