Nathan Yonkee / Mbed 2 deprecated Nucleo_sinewave_output_copy

Dependencies:   mbed

Committer:
Nathan Yonkee
Date:
Fri Mar 02 07:12:37 2018 -0700
Revision:
9:d58e77ebd769
add mbed-os library

Who changed what in which revision?

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