My fork of X_NUCLEO_IDB0XA1
Fork of X_NUCLEO_IDB0XA1 by
Diff: source/bluenrg-hci/utils/gp_timer.c
- Revision:
- 306:3a7d9f923493
- Parent:
- 252:0c2cb16a7166
- Parent:
- 305:3d978a7bffc9
--- a/source/bluenrg-hci/utils/gp_timer.c Mon Jun 27 15:51:20 2016 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2004, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - * Author: Adam Dunkels <adam@sics.se> - * - */ - -#include "clock.h" -#include "gp_timer.h" - -/*---------------------------------------------------------------------------*/ -/** - * Set a timer. - * - * This function sets a timer for a time sometime in the - * future. The function timer_expired() will evaluate to true after - * the timer has expired. - * - * @param[in] t A pointer to the timer - * @param[in] interval The interval before the timer expires. - * - */ -void -Timer_Set(struct timer *t, tClockTime interval) -{ - t->interval = interval; - t->start = Clock_Time(); -} -/*---------------------------------------------------------------------------*/ -/** - * Reset the timer with the same interval. - * - * This function resets the timer with the same interval that was - * given to the timer_set() function. The start point of the interval - * is the exact time that the timer last expired. Therefore, this - * function will cause the timer to be stable over time, unlike the - * timer_restart() function. - * - * \param t A pointer to the timer. - * - * \sa timer_restart() - */ -void -Timer_Reset(struct timer *t) -{ - t->start += t->interval; -} -/*---------------------------------------------------------------------------*/ -/** - * Restart the timer from the current point in time - * - * This function restarts a timer with the same interval that was - * given to the timer_set() function. The timer will start at the - * current time. - * - * \note A periodic timer will drift if this function is used to reset - * it. For preioric timers, use the timer_reset() function instead. - * - * \param t A pointer to the timer. - * - * \sa timer_reset() - */ -void -Timer_Restart(struct timer *t) -{ - t->start = Clock_Time(); -} -/*---------------------------------------------------------------------------*/ -/** - * Check if a timer has expired. - * - * This function tests if a timer has expired and returns true or - * false depending on its status. - * - * \param t A pointer to the timer - * - * \return Non-zero if the timer has expired, zero otherwise. - * - */ -int -Timer_Expired(struct timer *t) -{ - /* Note: Can not return diff >= t->interval so we add 1 to diff and return - t->interval < diff - required to avoid an internal error in mspgcc. */ - tClockTime diff = (Clock_Time() - t->start) + 1; - return t->interval < diff; - -} -/*---------------------------------------------------------------------------*/ -/** - * The time until the timer expires - * - * This function returns the time until the timer expires. - * - * \param t A pointer to the timer - * - * \return The time until the timer expires - * - */ -tClockTime -Timer_Remaining(struct timer *t) -{ - return t->start + t->interval - Clock_Time(); -} -/*---------------------------------------------------------------------------*/ -#ifdef __DMA_LP__ - -tBleStatus Blue_NRG_HCI_Timer_Start(uint32_t expiryTime, - TIMER_HCI_TIMEOUT_NOTIFY_CALLBACK_TYPE timercb, - uint8_t *timerID) -{ - TIMER_Create(eTimerModuleID_BlueNRG_HCI, timerID, eTimerMode_SingleShot, - (pf_TIMER_TimerCallBack_t) timercb); - TIMER_Start(*timerID, expiryTime*1000/TIMERSERVER_TICK_VALUE); - - return (BLE_STATUS_SUCCESS); -} - -/*---------------------------------------------------------------------------*/ -tBleStatus Blue_NRG_HCI_Timer_Stop(uint8_t timerID) -{ - TIMER_Delete(timerID); - - return (BLE_STATUS_SUCCESS); -} - -#endif /* __DMA_LP__ */ -/*---------------------------------------------------------------------------*/