Software UART program using Infra-Red LED and IR-Detector

Dependents:   TestVirtualisation Bf_SoftSerial_IR

Committer:
kenjiArai
Date:
Fri May 15 04:11:01 2020 +0000
Revision:
15:8d343be3382d
Parent:
14:dc766032cdd6
Updated several functions based on SoftSerial library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 15:8d343be3382d 1 //A modified version of the regular ticker/timeout libraries
kenjiArai 15:8d343be3382d 2 // to allow us to do timeout without losing accuracy
kenjiArai 13:2b5649a1278a 3
kenjiArai 15:8d343be3382d 4 // Modified by K.Arai / JH1PJL May 15th, 2020
Sissors 6:517082212c00 5
kenjiArai 15:8d343be3382d 6 #ifndef FLEXTICKER_H
kenjiArai 15:8d343be3382d 7 #define FLEXTICKER_H
Sissors 6:517082212c00 8
Sissors 6:517082212c00 9 #include "mbed.h"
Sissors 6:517082212c00 10
kenjiArai 15:8d343be3382d 11 class FlexTicker: public TimerEvent
kenjiArai 15:8d343be3382d 12 {
kenjiArai 15:8d343be3382d 13 public:
Sissors 6:517082212c00 14 template<typename T>
kenjiArai 15:8d343be3382d 15 void attach(T* tptr, void (T::*mptr)(void))
kenjiArai 15:8d343be3382d 16 {
kenjiArai 15:8d343be3382d 17 _function = Callback<void()>(tptr, mptr);
Sissors 6:517082212c00 18 }
kenjiArai 15:8d343be3382d 19
Sissors 6:517082212c00 20 /** Detach the function
Sissors 6:517082212c00 21 */
kenjiArai 15:8d343be3382d 22 void detach()
kenjiArai 15:8d343be3382d 23 {
Sissors 6:517082212c00 24 remove();
Sissors 6:517082212c00 25 }
kenjiArai 15:8d343be3382d 26
kenjiArai 15:8d343be3382d 27 void setNext(int delay)
kenjiArai 15:8d343be3382d 28 {
Sissors 6:517082212c00 29 insert(event.timestamp + delay);
Sissors 6:517082212c00 30 }
kenjiArai 15:8d343be3382d 31
kenjiArai 15:8d343be3382d 32 void prime(int comp_time = 0)
kenjiArai 15:8d343be3382d 33 {
kenjiArai 15:8d343be3382d 34 event.timestamp = us_ticker_read() + comp_time;
Sissors 6:517082212c00 35 }
kenjiArai 15:8d343be3382d 36
Sissors 6:517082212c00 37 protected:
kenjiArai 15:8d343be3382d 38 virtual void handler()
kenjiArai 15:8d343be3382d 39 {
Sissors 6:517082212c00 40 _function.call();
Sissors 6:517082212c00 41 }
kenjiArai 15:8d343be3382d 42
Sissors 6:517082212c00 43 unsigned int _delay;
kenjiArai 15:8d343be3382d 44 Callback<void()> _function;
Sissors 6:517082212c00 45 };
Sissors 6:517082212c00 46
Sissors 6:517082212c00 47 #endif