Not work original Lib on F446RE & L432KC . Change usage prime() & setNext() for both TX and RX function due to unexpected behavior (maybe os TimerEvent function problem)

Dependents:   BufferedSoftSerial

Committer:
kenjiArai
Date:
Tue May 12 05:27:07 2020 +0000
Revision:
13:6399b30798a5
Parent:
12:cd58d03b8559
expand for several CPU's.

Who changed what in which revision?

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