ロータリーエンコーダのデコード
割り込みが片エッジのため一寸工夫が必要(両エッジ指定可能なCPUもある)

動作シーケンスを下記に、軸の回転で接点が90度ずれながら交互にON/OFFする

←接点

| ←| ←  ↓に向かってうごけば ①
 |  |
 |   |
|    |
|   |
 |  |
 |   |
|←  |←  ↑に向かってうごけば ②

方法A

    ↑      ↑割り込み
RE1__~~~~____~~~~____

      ↑      ↑
RE2____~~~~____~~~~__

   001111000011110000
   000011110000111100
   001133220011332200
   000011111111222222

      ↑      ↑
RE1____~~~~____~~~~____

    ↑      ↑      ↑
RE2__~~~~____~~~~____~~

   0000111100001111
   0011110000111100
   0022331100223311
   4444333333332222

RE1,RE2ともHになった時

RE2(P21)が原因なら右=+ 
RE1(P20)が原因なら左=ー

方法B

    ↑      ↑割り込み
RE1__~~~~____~~~~____

          ↓     ↓ 
RE2____~~~~____~~~~__

   001111000011110000
   000011110000111100
   001133220011332200
   001111110011111100

      ↑      ↑
RE1____~~~~____~~~~____

        ↓      ↓ 
RE2__~~~~____~~~~____~~

   00001111000011110000
   00111100001111000011
   0022331100223311
   00001111111111111111

RE2の割り込み時
 RE1が1なら左周り=-
 RE1が0なら右周り=+ 

方法Bが簡単