This fork captures the mbed lib v125 for ease of integration into older projects.

Fork of mbed-dev by mbed official

Committer:
apluscw
Date:
Fri Jul 20 21:24:42 2018 +0000
Revision:
187:92cbb9eec47b
Mbed library with source code from mbed lib v125. Posted to ease integration with some older projects.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
apluscw 187:92cbb9eec47b 1 /* mbed Microcontroller Library
apluscw 187:92cbb9eec47b 2 * Copyright (c) 2006-2013 ARM Limited
apluscw 187:92cbb9eec47b 3 *
apluscw 187:92cbb9eec47b 4 * Licensed under the Apache License, Version 2.0 (the "License");
apluscw 187:92cbb9eec47b 5 * you may not use this file except in compliance with the License.
apluscw 187:92cbb9eec47b 6 * You may obtain a copy of the License at
apluscw 187:92cbb9eec47b 7 *
apluscw 187:92cbb9eec47b 8 * http://www.apache.org/licenses/LICENSE-2.0
apluscw 187:92cbb9eec47b 9 *
apluscw 187:92cbb9eec47b 10 * Unless required by applicable law or agreed to in writing, software
apluscw 187:92cbb9eec47b 11 * distributed under the License is distributed on an "AS IS" BASIS,
apluscw 187:92cbb9eec47b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
apluscw 187:92cbb9eec47b 13 * See the License for the specific language governing permissions and
apluscw 187:92cbb9eec47b 14 * limitations under the License.
apluscw 187:92cbb9eec47b 15 */
apluscw 187:92cbb9eec47b 16 #ifndef MBED_TIMEREVENT_H
apluscw 187:92cbb9eec47b 17 #define MBED_TIMEREVENT_H
apluscw 187:92cbb9eec47b 18
apluscw 187:92cbb9eec47b 19 #include "ticker_api.h"
apluscw 187:92cbb9eec47b 20 #include "us_ticker_api.h"
apluscw 187:92cbb9eec47b 21
apluscw 187:92cbb9eec47b 22 namespace mbed {
apluscw 187:92cbb9eec47b 23
apluscw 187:92cbb9eec47b 24 /** Base abstraction for timer interrupts
apluscw 187:92cbb9eec47b 25 *
apluscw 187:92cbb9eec47b 26 * @Note Synchronization level: Interrupt safe
apluscw 187:92cbb9eec47b 27 */
apluscw 187:92cbb9eec47b 28 class TimerEvent {
apluscw 187:92cbb9eec47b 29 public:
apluscw 187:92cbb9eec47b 30 TimerEvent();
apluscw 187:92cbb9eec47b 31 TimerEvent(const ticker_data_t *data);
apluscw 187:92cbb9eec47b 32
apluscw 187:92cbb9eec47b 33 /** The handler registered with the underlying timer interrupt
apluscw 187:92cbb9eec47b 34 */
apluscw 187:92cbb9eec47b 35 static void irq(uint32_t id);
apluscw 187:92cbb9eec47b 36
apluscw 187:92cbb9eec47b 37 /** Destruction removes it...
apluscw 187:92cbb9eec47b 38 */
apluscw 187:92cbb9eec47b 39 virtual ~TimerEvent();
apluscw 187:92cbb9eec47b 40
apluscw 187:92cbb9eec47b 41 protected:
apluscw 187:92cbb9eec47b 42 // The handler called to service the timer event of the derived class
apluscw 187:92cbb9eec47b 43 virtual void handler() = 0;
apluscw 187:92cbb9eec47b 44
apluscw 187:92cbb9eec47b 45 // insert in to linked list
apluscw 187:92cbb9eec47b 46 void insert(timestamp_t timestamp);
apluscw 187:92cbb9eec47b 47
apluscw 187:92cbb9eec47b 48 // remove from linked list, if in it
apluscw 187:92cbb9eec47b 49 void remove();
apluscw 187:92cbb9eec47b 50
apluscw 187:92cbb9eec47b 51 ticker_event_t event;
apluscw 187:92cbb9eec47b 52
apluscw 187:92cbb9eec47b 53 const ticker_data_t *_ticker_data;
apluscw 187:92cbb9eec47b 54 };
apluscw 187:92cbb9eec47b 55
apluscw 187:92cbb9eec47b 56 } // namespace mbed
apluscw 187:92cbb9eec47b 57
apluscw 187:92cbb9eec47b 58 #endif