Code for my balancing robot, controlled with a PS3 controller via bluetooth

Dependencies:   mbed

Committer:
Lauszus
Date:
Fri Apr 13 19:45:25 2012 +0000
Revision:
8:87dd9d5f7001
Parent:
4:0b4c320bc948

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Lauszus 4:0b4c320bc948 1 #ifndef _encoder_h_
Lauszus 4:0b4c320bc948 2 #define _encoder_h_
Lauszus 4:0b4c320bc948 3
Lauszus 4:0b4c320bc948 4 class Encoder {
Lauszus 4:0b4c320bc948 5 public:
Lauszus 4:0b4c320bc948 6 Encoder(PinName pinA, PinName pinB) : _HallSensorA(pinA), _HallSensorB(pinB) {
Lauszus 4:0b4c320bc948 7 _counter = 0;
Lauszus 4:0b4c320bc948 8 _HallSensorA.rise(this, &Encoder::EncodeA);
Lauszus 4:0b4c320bc948 9 }
Lauszus 4:0b4c320bc948 10 long read() {
Lauszus 4:0b4c320bc948 11 return _counter;
Lauszus 4:0b4c320bc948 12 }
Lauszus 4:0b4c320bc948 13 private:
Lauszus 4:0b4c320bc948 14 volatile long _counter;
Lauszus 4:0b4c320bc948 15 InterruptIn _HallSensorA;
Lauszus 4:0b4c320bc948 16 DigitalIn _HallSensorB;
Lauszus 4:0b4c320bc948 17
Lauszus 4:0b4c320bc948 18 void EncodeA() {
Lauszus 4:0b4c320bc948 19 if (_HallSensorB.read())
Lauszus 4:0b4c320bc948 20 _counter++;
Lauszus 4:0b4c320bc948 21 else
Lauszus 4:0b4c320bc948 22 _counter--;
Lauszus 4:0b4c320bc948 23 }
Lauszus 4:0b4c320bc948 24 };
Lauszus 4:0b4c320bc948 25
Lauszus 3:c3963f37d597 26 #endif