A compilation of some hardware sensors and their shared programming interfaces.
Embed:
(wiki syntax)
Show/hide line numbers
TouchSensor.cpp
00001 /* TouchSensor.cpp 00002 * Tested with mbed board: FRDM-KL46Z 00003 * Author: Mark Gottscho 00004 * mgottscho@ucla.edu 00005 */ 00006 00007 #include "mbed.h" 00008 #include "TouchSensor.h" 00009 #include "PeriodicSensor.h" 00010 00011 TouchSensor::TouchSensor() : 00012 PeriodicSensor(0.005), //default min sampling rate of 200 Hz 00013 __sensor(), 00014 __distance(0), 00015 __percentage(0) 00016 { 00017 } 00018 00019 TouchSensor::~TouchSensor() { } 00020 00021 float TouchSensor::getPercentage(bool sampleNow) { 00022 __disable_irq(); 00023 if (sampleNow) { 00024 __percentage = __sensor.readPercentage(); 00025 } 00026 00027 __dataReady = false; 00028 __enable_irq(); 00029 00030 return __percentage; 00031 } 00032 00033 uint8_t TouchSensor::getDistance(bool sampleNow) { 00034 __disable_irq(); 00035 if (sampleNow) { 00036 __distance = __sensor.readDistance(); 00037 } 00038 00039 __dataReady = false; 00040 __enable_irq(); 00041 00042 return __distance; 00043 } 00044 00045 void TouchSensor::__sample_data_ISR() { 00046 getDistance(true); 00047 getPercentage(true); 00048 __dataReady = true; 00049 }
Generated on Wed Jul 13 2022 19:24:41 by 1.7.2