Fiona Lin / Mbed OS cap_sense
Committer:
fionalin
Date:
Tue Jun 28 21:32:51 2022 +0000
Revision:
0:4e3ad938564e
Child:
1:40e5ac1119a6
init commit

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 0:4e3ad938564e 10 square_wave.write(!last_signal);
fionalin 0:4e3ad938564e 11 if (!last_signal) {
fionalin 0:4e3ad938564e 12 measured_this_cycle = false;
fionalin 0:4e3ad938564e 13 timer.start();
fionalin 0:4e3ad938564e 14 }
fionalin 0:4e3ad938564e 15 return !last_signal;
fionalin 0:4e3ad938564e 16 }
fionalin 0:4e3ad938564e 17
fionalin 0:4e3ad938564e 18 bool CapSense::try_measure() {
fionalin 0:4e3ad938564e 19 if (cap_sense_measure.read() == 1 && !measured_this_cycle) {
fionalin 0:4e3ad938564e 20 timer.stop();
fionalin 0:4e3ad938564e 21 last_measurement = timer.read();
fionalin 0:4e3ad938564e 22 measured_this_cycle = true;
fionalin 0:4e3ad938564e 23 timer.reset();
fionalin 0:4e3ad938564e 24 return true;
fionalin 0:4e3ad938564e 25 }
fionalin 0:4e3ad938564e 26 return false;
fionalin 0:4e3ad938564e 27 }
fionalin 0:4e3ad938564e 28
fionalin 0:4e3ad938564e 29 long CapSense::read_measurement() {
fionalin 0:4e3ad938564e 30 return last_measurement;
fionalin 0:4e3ad938564e 31 }
fionalin 0:4e3ad938564e 32
fionalin 0:4e3ad938564e 33
fionalin 0:4e3ad938564e 34