Contiki-NG
Loading...
Searching...
No Matches

Files

file  clock-arch.c
 Software clock implementation for the nRF.
 

Functions

static void rtc_handler (nrfx_rtc_int_type_t int_type)
 Function for handling the RTC<instance> interrupts.
 
static void lfclk_config (void)
 Function starting the internal LFCLK XTAL oscillator.
 
static void rtc_config (void)
 Function initialization and configuration of RTC driver instance.
 
void clock_init (void)
 Initialize the clock library.
 
clock_time_t clock_time (void)
 Get the current clock time.
 
unsigned long clock_seconds (void)
 Get the current value of the platform seconds.
 
void clock_wait (clock_time_t i)
 Wait for a given number of ticks.
 
void clock_delay_usec (uint16_t dt)
 Delay a given number of microseconds.
 
void clock_delay (unsigned int i)
 Obsolete delay function but we implement it here since some code still uses it.
 

Variables

static const nrfx_rtc_t rtc = NRFX_RTC_INSTANCE( 0 )
 < RTC instance used for platform clock
 

Detailed Description

Function Documentation

◆ clock_delay()

void clock_delay ( unsigned int i)

Obsolete delay function but we implement it here since some code still uses it.

Obsolete delay function but we implement it here since some code still uses it.

Definition at line 184 of file clock-arch.c.

References clock_delay_usec().

◆ clock_delay_usec()

void clock_delay_usec ( uint16_t dt)

Delay a given number of microseconds.

Parameters
dtHow many microseconds to delay.
Note
Interrupts could increase the delay by a variable amount.

< GPTIMER0

< GPTM Timer A interval load

< GPTIMER0

< GPTM control

< Timer A enable

< GPTIMER0

< GPTM control

< Timer A enable

Definition at line 174 of file clock-arch.c.

◆ clock_init()

void clock_init ( void )

Initialize the clock library.

This function initializes the clock library and should be called from the main() function of the system.

Initialize the clock library.

We initialise the SysTick to fire 128 interrupts per second, giving us a value of 128 for CLOCK_SECOND

We also initialise GPT0:Timer A, which is used by clock_delay_usec(). We use 16-bit range (individual), count-down, one-shot, no interrupts. The prescaler is computed according to the system clock in order to get 1 tick per usec.

< GPT[3:0] clocks - active mode

< GPT0 clock enable, CPU running

< GPTIMER0

< GPTM control

< GPTIMER0

< GPTM configuration

< GPTIMER0

< GPTM Timer A mode

< GPTIMER0

< GPTM Timer A prescale

Definition at line 136 of file clock-arch.c.

References lfclk_config(), and rtc_config().

◆ clock_seconds()

unsigned long clock_seconds ( void )

Get the current value of the platform seconds.

This could be the number of seconds since startup, or since a standard epoch.

Returns
The value.

Definition at line 159 of file clock-arch.c.

References CLOCK_SECOND.

◆ clock_time()

clock_time_t clock_time ( void )

Get the current clock time.

This function returns the current system clock time.

Returns
The current clock time, measured in system ticks.

Definition at line 144 of file clock-arch.c.

◆ clock_wait()

void clock_wait ( clock_time_t t)

Wait for a given number of ticks.

Parameters
tHow many ticks.

Definition at line 165 of file clock-arch.c.

References clock_time(), and start().

◆ rtc_handler()

static void rtc_handler ( nrfx_rtc_int_type_t int_type)
static

Function for handling the RTC<instance> interrupts.

Parameters
int_typeType of interrupt to be handled

Definition at line 84 of file clock-arch.c.

Referenced by rtc_config().