EFM32 Happy Gecko Software Documentation  efm32hg-doc-5.1.2
rtcdriver.h File Reference

Detailed Description

RTCDRV timer API definition.

Version
5.1.2

License

(C) Copyright 2014 Silicon Labs, http://www.silabs.com

This file is licensed under the Silabs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.

Definition in file rtcdriver.h.

#include <stdint.h>
#include <stdbool.h>
#include "ecode.h"
#include "rtcdrv_config.h"

Go to the source code of this file.

Macros

#define ECODE_EMDRV_RTCDRV_ALL_TIMERS_USED   ( ECODE_EMDRV_RTCDRV_BASE | 0x00000001 )
 No timers available.
 
#define ECODE_EMDRV_RTCDRV_ILLEGAL_TIMER_ID   ( ECODE_EMDRV_RTCDRV_BASE | 0x00000002 )
 Illegal timer id.
 
#define ECODE_EMDRV_RTCDRV_OK   ( ECODE_OK )
 Success return value.
 
#define ECODE_EMDRV_RTCDRV_PARAM_ERROR   ( ECODE_EMDRV_RTCDRV_BASE | 0x00000004 )
 Illegal input parameter.
 
#define ECODE_EMDRV_RTCDRV_TIMER_NOT_ALLOCATED   ( ECODE_EMDRV_RTCDRV_BASE | 0x00000003 )
 Timer is not allocated.
 
#define ECODE_EMDRV_RTCDRV_TIMER_NOT_RUNNING   ( ECODE_EMDRV_RTCDRV_BASE | 0x00000005 )
 Timer is not running.
 

Typedefs

typedef void(* RTCDRV_Callback_t) (RTCDRV_TimerID_t id, void *user)
 Typedef for the user supplied callback function which is called when a timer elapse. More...
 
typedef uint32_t RTCDRV_TimerID_t
 Timer ID.
 

Enumerations

enum  RTCDRV_TimerType_t {
  rtcdrvTimerTypeOneshot =0,
  rtcdrvTimerTypePeriodic =1
}
 Timer type enumerator. More...
 

Functions

Ecode_t RTCDRV_AllocateTimer (RTCDRV_TimerID_t *id)
 Allocate timer. More...
 
Ecode_t RTCDRV_DeInit (void)
 Deinitialize RTCDRV driver. More...
 
Ecode_t RTCDRV_Delay (uint32_t ms)
 Millisecond delay function. More...
 
Ecode_t RTCDRV_FreeTimer (RTCDRV_TimerID_t id)
 Free timer. More...
 
uint32_t RTCDRV_GetWallClock (void)
 Get wallclock time. More...
 
uint32_t RTCDRV_GetWallClockTicks32 (void)
 Get wallclock tick count as a 32bit value. At 4 ticks per millisecond, overflow occurs after approximately 12.5 days. More...
 
uint64_t RTCDRV_GetWallClockTicks64 (void)
 Get wallclock tick count as a 64 bit value. This will never overflow. More...
 
Ecode_t RTCDRV_Init (void)
 Initialize RTCDRV driver. More...
 
Ecode_t RTCDRV_IsRunning (RTCDRV_TimerID_t id, bool *isRunning)
 Check if a given timer is running. More...
 
uint64_t RTCDRV_MsecsToTicks (uint32_t ms)
 Convert from milliseconds to RTC/RTCC ticks. More...
 
uint64_t RTCDRV_SecsToTicks (uint32_t secs)
 Convert from seconds to RTC/RTCC ticks. More...
 
Ecode_t RTCDRV_SetWallClock (uint32_t secs)
 Set wallclock time. More...
 
Ecode_t RTCDRV_StartTimer (RTCDRV_TimerID_t id, RTCDRV_TimerType_t type, uint32_t timeout, RTCDRV_Callback_t callback, void *user)
 Start a timer. More...
 
Ecode_t RTCDRV_StopTimer (RTCDRV_TimerID_t id)
 Stop a given timer. More...
 
uint32_t RTCDRV_TicksToMsec (uint64_t ticks)
 Convert from RTC/RTCC ticks to milliseconds. More...
 
uint32_t RTCDRV_TicksToSec (uint64_t ticks)
 Convert from RTC/RTCC ticks to seconds. More...
 
Ecode_t RTCDRV_TimeRemaining (RTCDRV_TimerID_t id, uint32_t *timeRemaining)
 Get time left before a given timer expires. More...