fast-feedback virtual target task code on STM Nucleo

Dependencies:   mbed

core/intr.h

Committer:
gwappa
Date:
2018-12-13
Revision:
32:1416e015016c
Parent:
26:b4421d1ee57a

File content as of revision 32:1416e015016c:

#ifndef INTR_H_
#define INTR_H_

#include "mbed.h"
#include "arraylist.h"
#include "trialtime.h"
#include "IO.h"

class InterruptHandler
{
public:
    explicit InterruptHandler(PinName pin, const int& debounce_ms=-1, const bool& logged=true);
    
    void attach(Callback<void ()> cb);
    void detach();
    void setDebounce(const int& value_ms);
    void reset(const int& debounce_ms=-1, const bool& logged=true);
    void writeToSerial(const trialtime_t& origin=0);

private:
    void trigger();

    InterruptIn         in_;
    bool                logged_;
    int                 debounce_;
    Callback<void ()>   handler_;
    
    trialtime_t             refrac_;
    ArrayList<trialtime_t>  events_;
};

#endif