Ryu Kaz
/
767zi
t6est
rori.cpp@4:9ba47e5db1e2, 2019-10-05 (annotated)
- Committer:
- kazuryu
- Date:
- Sat Oct 05 01:41:37 2019 +0000
- Revision:
- 4:9ba47e5db1e2
- Parent:
- 0:3dc012104243
B
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kazuryu | 0:3dc012104243 | 1 | #include "rori.h" |
kazuryu | 0:3dc012104243 | 2 | #include "mbed.h" |
kazuryu | 0:3dc012104243 | 3 | |
kazuryu | 0:3dc012104243 | 4 | RORI::RORI(PinName a,PinName b): pinA(a),pinB(b),DigA(a),DigB(b){ |
kazuryu | 0:3dc012104243 | 5 | flag = true; |
kazuryu | 0:3dc012104243 | 6 | } |
kazuryu | 0:3dc012104243 | 7 | |
kazuryu | 0:3dc012104243 | 8 | void RORI::loli(){ |
kazuryu | 0:3dc012104243 | 9 | volatile short hear = DigA.read()<<1 | DigB.read(); |
kazuryu | 0:3dc012104243 | 10 | if(!dir){ |
kazuryu | 0:3dc012104243 | 11 | if(hear == 1){ |
kazuryu | 0:3dc012104243 | 12 | dir = hear; |
kazuryu | 0:3dc012104243 | 13 | }else if(hear == 2){ |
kazuryu | 0:3dc012104243 | 14 | dir = hear; |
kazuryu | 0:3dc012104243 | 15 | }else if(!hear){ |
kazuryu | 0:3dc012104243 | 16 | dir = 0; |
kazuryu | 0:3dc012104243 | 17 | } |
kazuryu | 0:3dc012104243 | 18 | }else if(!hear){ |
kazuryu | 0:3dc012104243 | 19 | if(old != dir){ |
kazuryu | 0:3dc012104243 | 20 | if(dir == 2){ |
kazuryu | 0:3dc012104243 | 21 | enc_count++; |
kazuryu | 0:3dc012104243 | 22 | }else if(dir == 1){ |
kazuryu | 0:3dc012104243 | 23 | enc_count--; |
kazuryu | 0:3dc012104243 | 24 | } |
kazuryu | 0:3dc012104243 | 25 | } |
kazuryu | 0:3dc012104243 | 26 | dir = 0; |
kazuryu | 0:3dc012104243 | 27 | } |
kazuryu | 0:3dc012104243 | 28 | old = hear; |
kazuryu | 0:3dc012104243 | 29 | } |
kazuryu | 0:3dc012104243 | 30 | |
kazuryu | 0:3dc012104243 | 31 | //long RORI::read(){ |
kazuryu | 0:3dc012104243 | 32 | |
kazuryu | 0:3dc012104243 | 33 | // return(enc_count); |
kazuryu | 0:3dc012104243 | 34 | // } |
kazuryu | 0:3dc012104243 | 35 | void RORI::read(long *a){ |
kazuryu | 0:3dc012104243 | 36 | pinA.rise(this,&RORI::loli); |
kazuryu | 0:3dc012104243 | 37 | pinA.fall(this,&RORI::loli); |
kazuryu | 0:3dc012104243 | 38 | pinB.rise(this,&RORI::loli); |
kazuryu | 0:3dc012104243 | 39 | pinB.fall(this,&RORI::loli); |
kazuryu | 0:3dc012104243 | 40 | *a = enc_count; |
kazuryu | 0:3dc012104243 | 41 | } |
kazuryu | 0:3dc012104243 | 42 | bool RORI::getflag(){ |
kazuryu | 0:3dc012104243 | 43 | return(flag); |
kazuryu | 0:3dc012104243 | 44 | } |