Fiona Lin / Mbed OS cap_sense

capsense.cpp

Committer:
fionalin
Date:
2022-06-28
Revision:
0:4e3ad938564e
Child:
1:40e5ac1119a6

File content as of revision 0:4e3ad938564e:

#include <mbed.h>
#include "capsense.h"

CapSense::CapSense(PinName measure_pin, PinName square_pin)
    : cap_sense_measure(measure_pin), square_wave(square_pin), 
      measured_this_cycle(false) {}
          
bool CapSense::toggle() {
    bool last_signal = square_wave.read();
        square_wave.write(!last_signal);
        if (!last_signal) {
            measured_this_cycle = false;
            timer.start();
        }
        return !last_signal;
}

bool CapSense::try_measure() {
    if (cap_sense_measure.read() == 1 && !measured_this_cycle) {
            timer.stop();
            last_measurement = timer.read();
            measured_this_cycle = true;
            timer.reset();
            return true;
        }
        return false;
}

long CapSense::read_measurement() {
    return last_measurement;
}