你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
wenyangzeng 发表于 2019-9-10 15:10 编码器接口应该就很合适了
jsrdczy 发表于 2019-9-11 13:24 编码器模式下,如果一个通道电平不变。另外一个通道的脉冲只会让计数加1减1从而维持不变吧,这个该怎么实 ...
wenyangzeng 发表于 2019-9-11 13:59 正交编码呀,TI1超前或滞后TI2 90°决定方向,你必须使用正交编码器
jsrdczy 发表于 2019-9-11 14:14 不好意思多问一句,我现在的测量对象并不是正交编码器,而是带方向口的高速脉冲输入。方向口就是保持高电 ...
编码器模式下,如果一个通道电平不变。另外一个通道的脉冲只会让计数加1减1从而维持不变吧,这个该怎么实现一直累加呢,
正交编码呀,TI1超前或滞后TI2 90°决定方向,你必须使用正交编码器
不好意思多问一句,我现在的测量对象并不是正交编码器,而是带方向口的高速脉冲输入。方向口就是保持高电平或者低电平用来指示正方向或负方向。TI1时脉冲输入,ti2的电平时维持不变的。
既然是高低电平表示方向,就用1个定时器输入就够了。
int place_cnt=0;
int8_t dir=0;//IO初始化时候注意赋值//TIM->ARR初始化为最大65535
//io中断
void io_int_callback()
{
updata_place_cnt();
if(io==1)dir = 1;
else dir = -1;
}
//定时调用更新
void updata_place_cnt()
{
uint32_t temp=TIMX->CNT;
place_cnt += temp*dir;
TIMX->CNT = 0;
}