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

Dependents:   ESP8266_pid_redbot_webserver 4180_lab4_project dotbot ShadowDistance ... more

Files at this revision

API Documentation at this revision

Comitter:
electromotivated
Date:
Tue Dec 08 00:09:51 2015 +0000
Commit message:
Upload;

Changed in this revision

HALLFX_ENCODER.cpp Show annotated file Show diff for this revision Revisions of this file
HALLFX_ENCODER.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r f10558519825 HALLFX_ENCODER.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HALLFX_ENCODER.cpp	Tue Dec 08 00:09:51 2015 +0000
@@ -0,0 +1,20 @@
+#include "HALLFX_ENCODER.h"
+
+HALLFX_ENCODER::HALLFX_ENCODER(PinName enc_in): _enc_in(enc_in){
+    _enc_in.mode(PullUp);
+    // Invoke interrupt on both falling and rising edges
+    _enc_in.fall(this, &HALLFX_ENCODER::callback);
+    _enc_in.rise(this, &HALLFX_ENCODER::callback);
+}
+
+long HALLFX_ENCODER::read(){
+    return count;
+}
+
+void HALLFX_ENCODER::reset(){
+    count = 0;
+}
+
+void HALLFX_ENCODER::callback(){
+    count++;   
+}
\ No newline at end of file
diff -r 000000000000 -r f10558519825 HALLFX_ENCODER.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/HALLFX_ENCODER.h	Tue Dec 08 00:09:51 2015 +0000
@@ -0,0 +1,38 @@
+#ifndef HALLFX_ENCODER_H
+#define HALLFX_ENCODER_H
+
+/*
+    Basic Encoder Library for Sparkfun's Wheel Encoder Kit
+    Part# ROB-12629.
+*/
+
+#include "mbed.h"
+
+class HALLFX_ENCODER{
+    public:
+        /*
+            Constructor for Encoder objects
+            @param enc_in    The mBed pin connected to encoder output
+        */
+        HALLFX_ENCODER(PinName enc_in);
+        /*
+            read() returns total number of counts of the encoder.
+            Count can be +/- and indicates the overall direction,
+            (+): CW (-): CCW
+            @return     The toltal number of counts of the encoder.
+        */
+        long read();
+        /*
+            reset() clears the counter to 0. 
+        */
+        void reset();
+    private:
+        long count;         // Total number of counts since start.
+        InterruptIn _enc_in;// Encoder Input/Interrupt Pin
+        /*
+            Increments/Decrements count on interrrupt.
+        */
+        void callback();    // Interrupt callback function
+};
+
+#endif
\ No newline at end of file