智能车制作
标题:
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