t6est

Dependencies:   Pulse

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers rori.cpp Source File

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     }