Ryu Kaz
/
767zi
t6est
Embed:
(wiki syntax)
Show/hide line numbers
rori.cpp
00001 #include "rori.h" 00002 #include "mbed.h" 00003 00004 RORI::RORI(PinName a,PinName b): pinA(a),pinB(b),DigA(a),DigB(b){ 00005 flag = true; 00006 } 00007 00008 void RORI::loli(){ 00009 volatile short hear = DigA.read()<<1 | DigB.read(); 00010 if(!dir){ 00011 if(hear == 1){ 00012 dir = hear; 00013 }else if(hear == 2){ 00014 dir = hear; 00015 }else if(!hear){ 00016 dir = 0; 00017 } 00018 }else if(!hear){ 00019 if(old != dir){ 00020 if(dir == 2){ 00021 enc_count++; 00022 }else if(dir == 1){ 00023 enc_count--; 00024 } 00025 } 00026 dir = 0; 00027 } 00028 old = hear; 00029 } 00030 00031 //long RORI::read(){ 00032 00033 // return(enc_count); 00034 // } 00035 void RORI::read(long *a){ 00036 pinA.rise(this,&RORI::loli); 00037 pinA.fall(this,&RORI::loli); 00038 pinB.rise(this,&RORI::loli); 00039 pinB.fall(this,&RORI::loli); 00040 *a = enc_count; 00041 } 00042 bool RORI::getflag(){ 00043 return(flag); 00044 }
Generated on Thu Jul 14 2022 20:44:12 by 1.7.2