当按键读,用执行其他程序的时间消抖
- void Encoder_Scan(void)
- {
- static bit encoder_up_flag,encoder_down_flag;
- static unsigned char encoder_up_temp,encoder_down_temp;
- if(PHASE_A==0&&PHASE_B==1&&encoder_down_temp==0&&encoder_down_flag==0&&encoder_up_flag==0&&encoder_up_temp==0)
- {
- encoder_down_flag=1;
- encoder_down_temp=1;
- encoder_up_flag=0;
- encoder_up_temp=0;
- }
- if(PHASE_A==1&&PHASE_B==0&&encoder_up_temp==0&&encoder_up_flag==0&&encoder_down_flag==0&&encoder_down_temp==0)
- {
- encoder_up_flag=1;
- encoder_up_temp=1;
- encoder_down_flag=0;
- encoder_down_temp=0;
- }
- if(PHASE_A==0&&PHASE_B==0&&encoder_down_temp==1&&encoder_down_flag==1&&encoder_up_flag==0&&encoder_up_temp==0)
- encoder_down_temp=2;
- if(PHASE_A==0&&PHASE_B==0&&encoder_up_temp==1&&encoder_up_flag==1&&encoder_down_flag==0&&encoder_down_temp==0)
- encoder_up_temp=2;
- if(PHASE_A==1&&PHASE_B==0&&encoder_down_temp==2&&encoder_down_flag==1&&encoder_up_flag==0&&encoder_up_temp==0)
- encoder_down_temp=3;
- if(PHASE_A==0&&PHASE_B==1&&encoder_up_temp==2&&encoder_up_flag==1&&encoder_down_flag==0&&encoder_down_temp==0)
- encoder_up_temp=3;
- if(PHASE_A==1&&PHASE_B==1&&encoder_down_temp==3&&encoder_down_flag==1&&encoder_up_flag==0&&encoder_up_temp==0)
- encoder_down_temp=4;
- if(PHASE_A==1&&PHASE_B==1&&encoder_up_temp==3&&encoder_up_flag==1&&encoder_down_flag==0&&encoder_down_temp==0)
- encoder_up_temp=4;
- if(PHASE_A==1&&PHASE_B==1&&encoder_down_temp!=4&&encoder_down_flag==1&&encoder_up_flag==0&&encoder_up_temp==0)
- {
- encoder_down_temp=0;
- encoder_down_flag=0;
- }
- if(PHASE_A==1&&PHASE_B==1&&encoder_up_temp!=4&&encoder_up_flag==1&&encoder_down_flag==0&&encoder_down_temp==0)
- {
- encoder_up_temp=0;
- encoder_up_flag=0;
- }
- if(encoder_down_temp==4)
- {
- encoder_down_flag=0;
- encoder_down_temp=0;
- encoder_up_temp=0;
- encoder_up_flag=0;
- //逆时针执行的操作
- }
- if(encoder_up_temp==4)
- {
- encoder_up_flag=0;
- encoder_up_temp=0;
- encoder_down_flag=0;
- encoder_down_temp=0;
- //顺时针执行的操作
- }
- }
复制代码
|