gjhn

Dependents:   BLE_GENERALE

Fork of X_NUCLEO_IDB0XA1 by ST

Committer:
andreasortino
Date:
Tue Sep 19 08:24:05 2017 +0000
Revision:
308:de76b6d90215
Parent:
290:d8faff21b01f
iugjhv

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Wolfgang Betz 132:51056160fa4a 1 /******************** (C) COPYRIGHT 2012 STMicroelectronics ********************
Wolfgang Betz 132:51056160fa4a 2 * File Name : gp_timer.h
Wolfgang Betz 132:51056160fa4a 3 * Author : AMS - HEA&RF BU
Wolfgang Betz 132:51056160fa4a 4 * Version : V1.0.0
Wolfgang Betz 132:51056160fa4a 5 * Date : 19-July-2012
Wolfgang Betz 132:51056160fa4a 6 * Description : General purpose timer library.
Wolfgang Betz 132:51056160fa4a 7 ********************************************************************************
Wolfgang Betz 132:51056160fa4a 8 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
Wolfgang Betz 132:51056160fa4a 9 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
Wolfgang Betz 132:51056160fa4a 10 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
Wolfgang Betz 132:51056160fa4a 11 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
Wolfgang Betz 132:51056160fa4a 12 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
Wolfgang Betz 132:51056160fa4a 13 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
Wolfgang Betz 132:51056160fa4a 14 *******************************************************************************/
Wolfgang Betz 132:51056160fa4a 15
Wolfgang Betz 132:51056160fa4a 16 #ifndef __GP_TIMER_H__
Wolfgang Betz 132:51056160fa4a 17 #define __GP_TIMER_H__
Wolfgang Betz 132:51056160fa4a 18
Vincent Coubard 290:d8faff21b01f 19 #include "ble_clock.h"
Wolfgang Betz 132:51056160fa4a 20 #include "ble_status.h"
Wolfgang Betz 132:51056160fa4a 21 #ifdef __DMA_LP__
Wolfgang Betz 132:51056160fa4a 22 #include "stm32xx_timerserver.h"
Wolfgang Betz 132:51056160fa4a 23 #endif /* __DMA_LP__ */
Wolfgang Betz 132:51056160fa4a 24
Wolfgang Betz 132:51056160fa4a 25 /**
Wolfgang Betz 132:51056160fa4a 26 * timer
Wolfgang Betz 132:51056160fa4a 27 *
Wolfgang Betz 132:51056160fa4a 28 * A structure that represents a timer. Use Timer_Set() to set the timer.
Wolfgang Betz 132:51056160fa4a 29 *
Wolfgang Betz 132:51056160fa4a 30 */
Wolfgang Betz 132:51056160fa4a 31 struct timer {
Wolfgang Betz 132:51056160fa4a 32
Wolfgang Betz 132:51056160fa4a 33 #ifndef DOXYGEN_SHOULD_SKIP_THIS
Wolfgang Betz 132:51056160fa4a 34
Wolfgang Betz 132:51056160fa4a 35 tClockTime start;
Wolfgang Betz 132:51056160fa4a 36 tClockTime interval;
Wolfgang Betz 132:51056160fa4a 37
Wolfgang Betz 132:51056160fa4a 38 #endif
Wolfgang Betz 132:51056160fa4a 39 };
Wolfgang Betz 132:51056160fa4a 40
Wolfgang Betz 132:51056160fa4a 41 typedef void (* TIMER_HCI_TIMEOUT_NOTIFY_CALLBACK_TYPE)(void);
Wolfgang Betz 132:51056160fa4a 42
Wolfgang Betz 132:51056160fa4a 43 /**
Wolfgang Betz 132:51056160fa4a 44 * Timer_Set
Wolfgang Betz 132:51056160fa4a 45 *
Wolfgang Betz 132:51056160fa4a 46 * @param[in] t Pointer to a timer structure
Wolfgang Betz 132:51056160fa4a 47 * @param[in] interval timeout value
Wolfgang Betz 132:51056160fa4a 48 *
Wolfgang Betz 132:51056160fa4a 49 * This function sets the timeout value of a timer.
Wolfgang Betz 132:51056160fa4a 50 *
Wolfgang Betz 132:51056160fa4a 51 */
Wolfgang Betz 132:51056160fa4a 52 void Timer_Set(struct timer *t, tClockTime interval);
Wolfgang Betz 132:51056160fa4a 53
Wolfgang Betz 132:51056160fa4a 54 /**
Wolfgang Betz 132:51056160fa4a 55 * Timer_Reset
Wolfgang Betz 132:51056160fa4a 56 *
Wolfgang Betz 132:51056160fa4a 57 * @param[in] t Pointer to a timer structure
Wolfgang Betz 132:51056160fa4a 58 *
Wolfgang Betz 132:51056160fa4a 59 * This function resets the timer with the same interval given
Wolfgang Betz 132:51056160fa4a 60 * with Timer_Set, starting from the time it previously expired.
Wolfgang Betz 132:51056160fa4a 61 *
Wolfgang Betz 132:51056160fa4a 62 */
Wolfgang Betz 132:51056160fa4a 63 void Timer_Reset(struct timer *t);
Wolfgang Betz 132:51056160fa4a 64
Wolfgang Betz 132:51056160fa4a 65 /**
Wolfgang Betz 132:51056160fa4a 66 * Timer_Restart
Wolfgang Betz 132:51056160fa4a 67 *
Wolfgang Betz 132:51056160fa4a 68 * @param[in] t Pointer to a timer structure
Wolfgang Betz 132:51056160fa4a 69 *
Wolfgang Betz 132:51056160fa4a 70 * This function resets the timer with the same interval given
Wolfgang Betz 132:51056160fa4a 71 * with Timer_Set, starting from the current time.
Wolfgang Betz 132:51056160fa4a 72 *
Wolfgang Betz 132:51056160fa4a 73 */
Wolfgang Betz 132:51056160fa4a 74 void Timer_Restart(struct timer *t);
Wolfgang Betz 132:51056160fa4a 75
Wolfgang Betz 132:51056160fa4a 76 /**
Wolfgang Betz 132:51056160fa4a 77 * Timer_Expired
Wolfgang Betz 132:51056160fa4a 78 *
Wolfgang Betz 132:51056160fa4a 79 * @param[in] t Pointer to a timer structure
Wolfgang Betz 132:51056160fa4a 80 *
Wolfgang Betz 132:51056160fa4a 81 * This function returns TRUE if timer is expired, FALSE otherwise.
Wolfgang Betz 132:51056160fa4a 82 *
Wolfgang Betz 132:51056160fa4a 83 */
Wolfgang Betz 132:51056160fa4a 84 int Timer_Expired(struct timer *t);
Wolfgang Betz 132:51056160fa4a 85
Wolfgang Betz 132:51056160fa4a 86 /**
Wolfgang Betz 132:51056160fa4a 87 * Timer_Expired
Wolfgang Betz 132:51056160fa4a 88 *
Wolfgang Betz 132:51056160fa4a 89 * @param[in] t Pointer to a timer structure
Wolfgang Betz 132:51056160fa4a 90 *
Wolfgang Betz 132:51056160fa4a 91 * This function returns the time needed for expiration.
Wolfgang Betz 132:51056160fa4a 92 *
Wolfgang Betz 132:51056160fa4a 93 * @return Time before timer's expiration.
Wolfgang Betz 132:51056160fa4a 94 */
Wolfgang Betz 132:51056160fa4a 95 tClockTime Timer_Remaining(struct timer *t);
Wolfgang Betz 132:51056160fa4a 96
Wolfgang Betz 132:51056160fa4a 97 #ifdef __DMA_LP__
Wolfgang Betz 132:51056160fa4a 98 tBleStatus Blue_NRG_HCI_Timer_Start(uint32_t expiryTime,
Wolfgang Betz 132:51056160fa4a 99 TIMER_HCI_TIMEOUT_NOTIFY_CALLBACK_TYPE timercb,
Wolfgang Betz 132:51056160fa4a 100 uint8_t *timerID);
Wolfgang Betz 132:51056160fa4a 101
Wolfgang Betz 132:51056160fa4a 102 tBleStatus Blue_NRG_HCI_Timer_Stop(uint8_t timerID);
Wolfgang Betz 132:51056160fa4a 103 #endif /* __DMA_LP__ */
Wolfgang Betz 132:51056160fa4a 104
Vincent Coubard 290:d8faff21b01f 105 #endif /* __GP_TIMER_H__ */