Creating a CoxBox with the mbed

Dependencies:   mbed C12832 SMARTGPU2

HallEffect.cpp

Committer:
jad19925
Date:
2014-05-05
Revision:
14:03ce6381dce6
Parent:
8:ae9f6033daa0

File content as of revision 14:03ce6381dce6:

#include "HallEffect.h"

HallEffect::HallEffect(){
    strokeCount = 0;
    for(int i = 0; i < DATA_STROKE_COUNT; i++){
        timeBetweenStrokes[i] = 1;
    }
    timeIndex = 0;
    timer.start();
}

int HallEffect::getSPM(){
    int spm = -1;
    double sum = 0;
    for(int i = 0; i < DATA_STROKE_COUNT; i++){
        sum += timeBetweenStrokes[i];
    }
    double secPerStroke = (sum * 2) / DATA_STROKE_COUNT;
    double strokesPerSec = 1/secPerStroke;
    double strokesPerMin = strokesPerSec*60;
    spm = (int)strokesPerMin;
    return spm;
}

int HallEffect::getCount(){
    return strokeCount/2;
}

void HallEffect::resetCount(){
    strokeCount = 0;
}

void HallEffect::recordStroke(){
    strokeCount++;
    timer.stop();
    timeBetweenStrokes[timeIndex] = timer.read();
    timer.reset();
    timer.start();
    timeIndex = (timeIndex + 1) % DATA_STROKE_COUNT;
}