Basic Encoder Library for Sparkfun's Hall- Effect Encoder Kit Part# ROB-12629

Fork of HALLFX_ENCODER by Bryce Williams

Committer:
PeaceBearer
Date:
Sat May 05 15:26:01 2018 +0000
Revision:
2:818c44a8d4ad
Parent:
1:f28b876f1fe1
code;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
PeaceBearer 1:f28b876f1fe1 1 #include "Encodeur.h"
PeaceBearer 1:f28b876f1fe1 2 #include <iostream>
electromotivated 0:f10558519825 3
PeaceBearer 1:f28b876f1fe1 4 using namespace std;
PeaceBearer 1:f28b876f1fe1 5
PeaceBearer 1:f28b876f1fe1 6 Encodeur::Encodeur(PinName enc_in): _enc_in(enc_in){
PeaceBearer 1:f28b876f1fe1 7
electromotivated 0:f10558519825 8 _enc_in.mode(PullUp);
PeaceBearer 1:f28b876f1fe1 9
electromotivated 0:f10558519825 10 // Invoke interrupt on both falling and rising edges
PeaceBearer 1:f28b876f1fe1 11 _enc_in.fall(callback(this, &Encodeur::incrementer));
PeaceBearer 1:f28b876f1fe1 12 _enc_in.rise(callback(this, &Encodeur::incrementer));
electromotivated 0:f10558519825 13 }
electromotivated 0:f10558519825 14
PeaceBearer 1:f28b876f1fe1 15 void Encodeur::zero(){
PeaceBearer 1:f28b876f1fe1 16 _compteur = 0;
PeaceBearer 2:818c44a8d4ad 17 _tour = 0.0;
PeaceBearer 1:f28b876f1fe1 18 }
PeaceBearer 1:f28b876f1fe1 19
PeaceBearer 1:f28b876f1fe1 20 void Encodeur::incrementer(){
PeaceBearer 1:f28b876f1fe1 21 _compteur++;
PeaceBearer 2:818c44a8d4ad 22 _tour = _tour + 0.125;
electromotivated 0:f10558519825 23 }
PeaceBearer 2:818c44a8d4ad 24 int Encodeur::lire_compteur(){
PeaceBearer 1:f28b876f1fe1 25 return _compteur;
electromotivated 0:f10558519825 26 }
electromotivated 0:f10558519825 27
PeaceBearer 2:818c44a8d4ad 28 double Encodeur::lire_tour(){
PeaceBearer 1:f28b876f1fe1 29 return _tour;
PeaceBearer 1:f28b876f1fe1 30 }
PeaceBearer 1:f28b876f1fe1 31
PeaceBearer 1:f28b876f1fe1 32 void Encodeur::afficher() const {
PeaceBearer 2:818c44a8d4ad 33 cout << "compteur = " << _compteur << ", tour = " << _tour << ", distance = " << (_tour*3.14*63) << endl;
PeaceBearer 1:f28b876f1fe1 34 }
PeaceBearer 1:f28b876f1fe1 35
PeaceBearer 2:818c44a8d4ad 36 double Encodeur::distance() {
PeaceBearer 2:818c44a8d4ad 37 return (_tour*3.14*63);
PeaceBearer 2:818c44a8d4ad 38 }
PeaceBearer 2:818c44a8d4ad 39