a

Dependencies:   mbed LidarLitev2

Committer:
kazuryu
Date:
Sun Sep 29 09:41:46 2019 +0000
Revision:
0:48dbc1f972f1
areyoukiddingme;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kazuryu 0:48dbc1f972f1 1 #include "rori.h"
kazuryu 0:48dbc1f972f1 2 #include "mbed.h"
kazuryu 0:48dbc1f972f1 3
kazuryu 0:48dbc1f972f1 4 Serial s(USBTX,USBRX);
kazuryu 0:48dbc1f972f1 5 RORI::RORI(PinName a,PinName b): pinA(a),pinB(b),DigA(a),DigB(b){
kazuryu 0:48dbc1f972f1 6 flag = true;
kazuryu 0:48dbc1f972f1 7 DigA.mode(PullDown);
kazuryu 0:48dbc1f972f1 8 DigB.mode(PullDown);
kazuryu 0:48dbc1f972f1 9 }
kazuryu 0:48dbc1f972f1 10
kazuryu 0:48dbc1f972f1 11 void RORI::loli(){
kazuryu 0:48dbc1f972f1 12 volatile short hear = DigA.read()<<1 | DigB.read();
kazuryu 0:48dbc1f972f1 13
kazuryu 0:48dbc1f972f1 14 s.printf("%d",DigA.read());
kazuryu 0:48dbc1f972f1 15 s.printf("%s",":");
kazuryu 0:48dbc1f972f1 16 s.printf("%d\n",DigB.read());
kazuryu 0:48dbc1f972f1 17
kazuryu 0:48dbc1f972f1 18 if(!dir){
kazuryu 0:48dbc1f972f1 19 if(hear == 1){
kazuryu 0:48dbc1f972f1 20 dir = hear;
kazuryu 0:48dbc1f972f1 21 }else if(hear == 2){
kazuryu 0:48dbc1f972f1 22 dir = hear;
kazuryu 0:48dbc1f972f1 23 }else if(!hear){
kazuryu 0:48dbc1f972f1 24 dir = 0;
kazuryu 0:48dbc1f972f1 25 }
kazuryu 0:48dbc1f972f1 26 }else if(!hear){
kazuryu 0:48dbc1f972f1 27 if(old != dir){
kazuryu 0:48dbc1f972f1 28 if(dir == 2){
kazuryu 0:48dbc1f972f1 29 enc_count++;
kazuryu 0:48dbc1f972f1 30 }else if(dir == 1){
kazuryu 0:48dbc1f972f1 31 enc_count--;
kazuryu 0:48dbc1f972f1 32 }
kazuryu 0:48dbc1f972f1 33 }
kazuryu 0:48dbc1f972f1 34 dir = 0;
kazuryu 0:48dbc1f972f1 35 }
kazuryu 0:48dbc1f972f1 36 old = hear;
kazuryu 0:48dbc1f972f1 37 }
kazuryu 0:48dbc1f972f1 38
kazuryu 0:48dbc1f972f1 39 void RORI::read(long *a){
kazuryu 0:48dbc1f972f1 40 pinA.rise(this,&RORI::loli);
kazuryu 0:48dbc1f972f1 41 pinA.fall(this,&RORI::loli);
kazuryu 0:48dbc1f972f1 42 pinB.rise(this,&RORI::loli);
kazuryu 0:48dbc1f972f1 43 pinB.fall(this,&RORI::loli);
kazuryu 0:48dbc1f972f1 44 *a = enc_count;
kazuryu 0:48dbc1f972f1 45 }
kazuryu 0:48dbc1f972f1 46 bool RORI::getflag(){
kazuryu 0:48dbc1f972f1 47 return(flag);
kazuryu 0:48dbc1f972f1 48 }