Fiona Lin / Mbed OS cap_sense
Committer:
fionalin
Date:
Thu Aug 04 15:14:29 2022 -0400
Revision:
2:d9745be6c253
Parent:
1:40e5ac1119a6
hehe forgot to commit

Who changed what in which revision?

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