A compilation of some hardware sensors and their shared programming interfaces.

TouchSensor.cpp

Committer:
mgottscho
Date:
2014-03-19
Revision:
1:15396cab58d1
Parent:
0:8d34cc2ff388

File content as of revision 1:15396cab58d1:

/* TouchSensor.cpp
 * Tested with mbed board: FRDM-KL46Z
 * Author: Mark Gottscho
 * mgottscho@ucla.edu
 */
 
#include "mbed.h"
#include "TouchSensor.h"
#include "PeriodicSensor.h"

TouchSensor::TouchSensor() :
                PeriodicSensor(0.005), //default min sampling rate of 200 Hz
                __sensor(),
                __distance(0),
                __percentage(0)
                {
}

TouchSensor::~TouchSensor() { }

float TouchSensor::getPercentage(bool sampleNow) {
    __disable_irq();
    if (sampleNow) {
        __percentage = __sensor.readPercentage();
    }
    
    __dataReady = false;
    __enable_irq();
    
    return __percentage;
}

uint8_t TouchSensor::getDistance(bool sampleNow) {
    __disable_irq();
    if (sampleNow) {
        __distance = __sensor.readDistance();
    }
    
    __dataReady = false;
    __enable_irq();
    
    return __distance;   
}

void TouchSensor::__sample_data_ISR() {
    getDistance(true);
    getPercentage(true);
    __dataReady = true;
}