智能车制作

标题: S128光电组编码器程序 求大神分析 [打印本页]

作者: Lotus_seed    时间: 2014-5-13 21:21
标题: S128光电组编码器程序 求大神分析
void SpeedIN_init(void)
{

    DDRT&=~(1<<SIGNAL);
    PERT|=(1<<SIGNAL);//编码器脉冲累加器口为输入,上拉有效。其他口没作用。
    PPST&=~(1<<SIGNAL);//T口是输入,上啦电阻全部有效(如果作为外部输入口,要读取PTIT)?
    //数据寄存器是PTT

    DDRS&=~(1<<RXD0);
    DDRS|=(1<<TXD0);
    PERS|=(1<<RXD0);
    PPSS&=~(1<<RXD0);//输入端为上拉有效
    WOMS=0X00;//推挽输出
    //如果读取S端口,要读取PTIS

      PACTL = (1<<PAEN);//脉冲累加器启动,外部发生一次下降沿就计数一次。外部编码器连接到IOC7.
          //在中断里读取PACNT的值就是脉冲个数。读取后清零PACNT。
}


//20ms中断内:   
{  
    /////////////////////////////////////////
    _asm(MOVB #$01,PITTF); //clear interrupt falg
     now_real_speed = PACNT;//返回速度值
    PACNT=0;
    speeddetective_flag=0;
    /////////////////////////////////////////
   }


用的是官方标准的编码器,接线是直接把编码器的A口接到128系统T7口上。主频40Mhz。
有反应,转动轮子有数字返回,但是数字只有5左右,就算轮子转的很快也只有10左右。
返回的数字很少,求大神指点。


作者: Lotus_seed    时间: 2014-5-13 21:24
返回的数字太小,只有10以内,无法进行精确的PID控制,求指导
作者: 凌心    时间: 2014-5-14 13:02
什么是官方标准的?能直接输出数字信号吗?
作者: Lotus_seed    时间: 2014-5-14 21:47
凌心 发表于 2014-5-14 13:02
什么是官方标准的?能直接输出数字信号吗?

不是啊。我百度来的。

作者: 凌心    时间: 2014-5-15 12:55
Lotus_seed 发表于 2014-5-14 21:47
不是啊。我百度来的。

我是说你的编码器可以直接输出数字信号?




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