RTC auf true

Committer:
kevman
Date:
Wed Nov 28 15:10:15 2018 +0000
Revision:
0:38ceb79fef03
RTC modified

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevman 0:38ceb79fef03 1 /* mbed Microcontroller Library
kevman 0:38ceb79fef03 2 * Copyright (c) 2006-2013 ARM Limited
kevman 0:38ceb79fef03 3 *
kevman 0:38ceb79fef03 4 * Licensed under the Apache License, Version 2.0 (the "License");
kevman 0:38ceb79fef03 5 * you may not use this file except in compliance with the License.
kevman 0:38ceb79fef03 6 * You may obtain a copy of the License at
kevman 0:38ceb79fef03 7 *
kevman 0:38ceb79fef03 8 * http://www.apache.org/licenses/LICENSE-2.0
kevman 0:38ceb79fef03 9 *
kevman 0:38ceb79fef03 10 * Unless required by applicable law or agreed to in writing, software
kevman 0:38ceb79fef03 11 * distributed under the License is distributed on an "AS IS" BASIS,
kevman 0:38ceb79fef03 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
kevman 0:38ceb79fef03 13 * See the License for the specific language governing permissions and
kevman 0:38ceb79fef03 14 * limitations under the License.
kevman 0:38ceb79fef03 15 */
kevman 0:38ceb79fef03 16 #include "drivers/TimerEvent.h"
kevman 0:38ceb79fef03 17
kevman 0:38ceb79fef03 18 #include <stddef.h>
kevman 0:38ceb79fef03 19 #include "hal/ticker_api.h"
kevman 0:38ceb79fef03 20 #include "hal/us_ticker_api.h"
kevman 0:38ceb79fef03 21
kevman 0:38ceb79fef03 22 namespace mbed {
kevman 0:38ceb79fef03 23
kevman 0:38ceb79fef03 24 TimerEvent::TimerEvent() : event(), _ticker_data(get_us_ticker_data())
kevman 0:38ceb79fef03 25 {
kevman 0:38ceb79fef03 26 ticker_set_handler(_ticker_data, (&TimerEvent::irq));
kevman 0:38ceb79fef03 27 }
kevman 0:38ceb79fef03 28
kevman 0:38ceb79fef03 29 TimerEvent::TimerEvent(const ticker_data_t *data) : event(), _ticker_data(data)
kevman 0:38ceb79fef03 30 {
kevman 0:38ceb79fef03 31 ticker_set_handler(_ticker_data, (&TimerEvent::irq));
kevman 0:38ceb79fef03 32 }
kevman 0:38ceb79fef03 33
kevman 0:38ceb79fef03 34 void TimerEvent::irq(uint32_t id)
kevman 0:38ceb79fef03 35 {
kevman 0:38ceb79fef03 36 TimerEvent *timer_event = (TimerEvent *)id;
kevman 0:38ceb79fef03 37 timer_event->handler();
kevman 0:38ceb79fef03 38 }
kevman 0:38ceb79fef03 39
kevman 0:38ceb79fef03 40 TimerEvent::~TimerEvent()
kevman 0:38ceb79fef03 41 {
kevman 0:38ceb79fef03 42 remove();
kevman 0:38ceb79fef03 43 }
kevman 0:38ceb79fef03 44
kevman 0:38ceb79fef03 45 // insert in to linked list
kevman 0:38ceb79fef03 46 void TimerEvent::insert(timestamp_t timestamp)
kevman 0:38ceb79fef03 47 {
kevman 0:38ceb79fef03 48 ticker_insert_event(_ticker_data, &event, timestamp, (uint32_t)this);
kevman 0:38ceb79fef03 49 }
kevman 0:38ceb79fef03 50
kevman 0:38ceb79fef03 51 void TimerEvent::insert_absolute(us_timestamp_t timestamp)
kevman 0:38ceb79fef03 52 {
kevman 0:38ceb79fef03 53 ticker_insert_event_us(_ticker_data, &event, timestamp, (uint32_t)this);
kevman 0:38ceb79fef03 54 }
kevman 0:38ceb79fef03 55
kevman 0:38ceb79fef03 56 void TimerEvent::remove()
kevman 0:38ceb79fef03 57 {
kevman 0:38ceb79fef03 58 ticker_remove_event(_ticker_data, &event);
kevman 0:38ceb79fef03 59 }
kevman 0:38ceb79fef03 60
kevman 0:38ceb79fef03 61 } // namespace mbed