1.實現功能,就是經過A與COM和B與COM的不一樣波形,判斷順時針或逆時針旋轉。以下圖所示波形ide
2.相關程序,程序設計思路,當A、B同時爲高時,若是A先變爲低,爲順時針,若是B先變低,爲逆時針。當A、B同是爲低時,若是A先變高,爲順時針,若是B先變高,爲逆時針。設計
1 if(A==0&&B==0) //同低時 2 { 3 CW_Value++; 4 if(CW_Value > 250) 5 { 6 CW_Value = 250; 7 } 8 } 9 if(A==1&&B==1) //同高時 10 { 11 CCW_Value++; 12 if(CCW_Value>250) 13 CCW_Value = 250; 14 } 15 16 if(CW_Value>5) //判斷同低時,那個先發生跳變 17 { 18 if(A==1&&B==0)//A先發生跳變,順時針 19 { 20 time1++; 21 if(time1 > 200){ 22 time1 = 200; 23 } 24 if(time1 > 3) 25 { 26 if(PT.CW_value<99) 27 PT.CW_value++; 28 CW_Value = 0;time1=0; 29 } 30 } 31 else 32 time1 = 0; 33 if(B==1&&A==0)//B先發生跳變,逆時針 34 { 35 time2++; 36 if(time2>250) 37 time2=250; 38 if(time2 > 3) 39 { 40 if(PT.CW_value>0) 41 PT.CW_value--; 42 CW_Value = 0;time2=0; 43 } 44 } 45 else 46 time2 = 0; 47 } 48 if(CCW_Value > 5)//判斷同高時,那個先發生跳變 49 { 50 if(A==0&&B==1)//B先發生跳變,順時針 51 { 52 time3++; 53 if(time3 > 200){ 54 time3 = 200; 55 } 56 if(time3 > 5) 57 { 58 if(PT.CW_value<99) 59 PT.CW_value++; 60 CCW_Value = 0;time3=0; 61 } 62 } 63 else 64 time3 = 0; 65 if(B==0&&A==1)//A先發生跳變,逆時針 66 { 67 time4++; 68 if(time4>250) 69 time4=250; 70 if(time4 > 5) 71 { 72 if(PT.CW_value>0) 73 PT.CW_value--; 74 CCW_Value = 0;time4=0; 75 } 76 } 77 else 78 time4 = 0; 79 }