//反转 11->10->00->01->11 3 2 0 1 3
//正转 11->01->00->10->11 3 1 0 2 3
old_data 前一次引脚状态
new_data 当前引脚状态
void decode_round(void)//旋转解码
{
unsigned char new_data;
new_data=读当前引脚状态;
switch(old_data)
{
case 0: if(new_data==2) 数值++;
else if(new_data==1) 数值--;
break;
case 1: if(new_data==0) 数值++;
else if(new_data==3) 数值--;
break;
case 2: if(new_data==3) 数值++;
else if(new_data==0) 数值--;
break;
case 3: if(new_data==1) 数值++;
else if(new_data==2) 数值--;
break;
default:break;
}
old_data=new_data;
}
以上在ATmage8中通过
一周热门 更多>