旋转编码器
void e1.setencoder(int mode,int delay);
// mode:0-关闭,1-开启,2-设置延时,默认500ms
// delay:延时时间,单位10ms,范围0~255。mode为2时有效。
关于延时时间的描述:旋转编码器在不停旋转的时候,我们并不知道旋转是否结束,但又不能等到完全停止才获取结果,因此需要设置延时值,也就是说当旋转不停时间超过延时值时,则强制反馈一次。
示例:
// 关闭编码器模式
e1.setencoder(0,0);
// 启动旋转编码器
e1.setencoder(1,0);
// 设置旋转编码器的延时时间
e1.setencoder(2,300);
获取旋转编码器的状态
void e1.recvExtend( int mode, int bs, int len)
{
int num;
int val;
num = getbin(bs,0);
val = getbin(bs,1);
if(mode == 6){ // 旋转编码器 旋转结果
//此时num 为0或1,分别对应两个编码器
//此时val>80(十进制),表示编码器顺时针旋转,转动(val-80)格
//此时val<80(十进制),表示编码器逆时针旋转,转动(80-val)格
}
if(mode == 7){ // 旋转编码器 按键结果
//此时num 为0或1,分别对应两个编码器
//此时val=1 按下;=2抬起;=3长按
}
}