Fiona Lin / Mbed OS cap_sense
Committer:
fionalin
Date:
Tue Jul 12 13:02:25 2022 -0400
Revision:
1:40e5ac1119a6
Parent:
0:4e3ad938564e
Child:
2:d9745be6c253
updated to macro format

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fionalin 0:4e3ad938564e 1 #include <mbed.h>
fionalin 0:4e3ad938564e 2 #include "capsense.h"
fionalin 0:4e3ad938564e 3
fionalin 0:4e3ad938564e 4 CapSense::CapSense(PinName measure_pin, PinName square_pin)
fionalin 0:4e3ad938564e 5 : cap_sense_measure(measure_pin), square_wave(square_pin),
fionalin 0:4e3ad938564e 6 measured_this_cycle(false) {}
fionalin 0:4e3ad938564e 7
fionalin 0:4e3ad938564e 8 bool CapSense::toggle() {
fionalin 0:4e3ad938564e 9 bool last_signal = square_wave.read();
fionalin 1:40e5ac1119a6 10 square_wave.write(!last_signal);
fionalin 1:40e5ac1119a6 11 if (!last_signal) {
fionalin 1:40e5ac1119a6 12 measured_this_cycle = false;
fionalin 1:40e5ac1119a6 13 timer.start();
fionalin 1:40e5ac1119a6 14 }
fionalin 1:40e5ac1119a6 15 return !last_signal;
fionalin 0:4e3ad938564e 16 }
fionalin 0:4e3ad938564e 17
fionalin 0:4e3ad938564e 18 bool CapSense::try_measure() {
fionalin 1:40e5ac1119a6 19 if (cap_sense_measure.read() == 1 && !measured_this_cycle)
fionalin 1:40e5ac1119a6 20 {
fionalin 0:4e3ad938564e 21 timer.stop();
fionalin 0:4e3ad938564e 22 last_measurement = timer.read();
fionalin 0:4e3ad938564e 23 measured_this_cycle = true;
fionalin 0:4e3ad938564e 24 timer.reset();
fionalin 0:4e3ad938564e 25 return true;
fionalin 0:4e3ad938564e 26 }
fionalin 0:4e3ad938564e 27 return false;
fionalin 0:4e3ad938564e 28 }
fionalin 0:4e3ad938564e 29
fionalin 0:4e3ad938564e 30 long CapSense::read_measurement() {
fionalin 0:4e3ad938564e 31 return last_measurement;
fionalin 0:4e3ad938564e 32 }
fionalin 0:4e3ad938564e 33
fionalin 0:4e3ad938564e 34
fionalin 0:4e3ad938564e 35