旋转解码器程序实验

2020-02-01 16:37发布

//反转 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中通过
0条回答

一周热门 更多>