Appiko
Data Structures | Enumerations | Functions
Auxiliary clock management

Module to manage auxiliary clock used by other modules like pir_sense and tssp_detect. This module will switch between RTC(LFCLK) and TIMER(HFCLK) as needed. More...

Data Structures

struct  aux_clk_ppi_t
 
struct  aux_clk_setup_t
 

Enumerations

enum  aux_clk_source_t { AUX_CLK_SRC_LFCLK, AUX_CLK_SRC_HFCLK }
 
enum  aux_clk_evt_t {
  AUX_CLK_EVT_NON = 0x00, AUX_CLK_EVT_CC0 = 0x01, AUX_CLK_EVT_CC1 = 0x02, AUX_CLK_EVT_CC2 = 0x04,
  AUX_CLK_EVT_CC3 = 0x08
}
 
enum  aux_clk_tsk_t { AUX_CLK_TASKS_START, AUX_CLK_TASKS_STOP, AUX_CLK_TASKS_CLEAR }
 

Functions

void aux_clk_set (aux_clk_setup_t *aux_clk)
 Function to setup the Auxiliary clock module. More...
 
void aux_clk_select_src (aux_clk_source_t source)
 Function to select the clock source for auxiliary clock module. More...
 
void aux_clk_update_cc (uint32_t cc_id, uint32_t new_val_ms)
 Function to update the given CC value for clock channel. More...
 
void aux_clk_update_ppi (uint32_t ppi_channel, aux_clk_ppi_t *new_ppi)
 Function to Update PPI settings for given ppi channel. More...
 
uint32_t aux_clk_get_ms (void)
 Function to get ms since Auxiliary clock has started or cleared. More...
 
void aux_clk_start ()
 
void aux_clk_stop ()
 Function to stop clock.
 
void aux_clk_clear ()
 Function to clear clock counter value.
 
void aux_clk_en_evt (uint8_t events)
 Function to enable one or more events from aux_clk_evt_t. More...
 
void aux_clk_dis_evt (uint8_t events)
 Function to disable one or more events from aux_clk_evt_t. More...
 
void aux_clk_update_irq_priority (app_irq_priority_t new_priority)
 Function to change IRQ Priority if needed. More...
 

Detailed Description

Enumeration Type Documentation

◆ aux_clk_evt_t

List of events generated by this module

Enumerator
AUX_CLK_EVT_NON 

Event generated on clock overflow

AUX_CLK_EVT_CC0 

Event generated channel 0 compare match

AUX_CLK_EVT_CC1 

Event generated channel 1 compare match

AUX_CLK_EVT_CC2 

Event generated channel 2 compare match

AUX_CLK_EVT_CC3 

Event generated channel 3 compare match

Definition at line 100 of file aux_clk.h.

◆ aux_clk_source_t

List of Clock sources

Enumerator
AUX_CLK_SRC_LFCLK 

Low Freq Clock : RTC peripheral

AUX_CLK_SRC_HFCLK 

High Freq Clock : Timer peripheral

Definition at line 91 of file aux_clk.h.

◆ aux_clk_tsk_t

List of tasks which can be performed on clocks

Enumerator
AUX_CLK_TASKS_START 

Task to start the clock

AUX_CLK_TASKS_STOP 

Task to stop the clock

AUX_CLK_TASKS_CLEAR 

Task to clear the counter value

Definition at line 115 of file aux_clk.h.

Function Documentation

◆ aux_clk_dis_evt()

void aux_clk_dis_evt ( uint8_t  events)
Parameters
eventsOne or more events 'or'ed together

Definition at line 339 of file aux_clk.c.

◆ aux_clk_en_evt()

void aux_clk_en_evt ( uint8_t  events)
Parameters
eventsOne or more events 'or'ed together

Definition at line 332 of file aux_clk.c.

◆ aux_clk_get_ms()

uint32_t aux_clk_get_ms ( void  )
Returns
MS count

Definition at line 371 of file aux_clk.c.

References AUX_CLK_SRC_LFCLK.

◆ aux_clk_select_src()

void aux_clk_select_src ( aux_clk_source_t  source)
Parameters
sourceClock source used. aux_clk_source_t

Definition at line 264 of file aux_clk.c.

◆ aux_clk_set()

void aux_clk_set ( aux_clk_setup_t aux_clk)
Parameters
aux_clkStructure pointer to data type aux_clk_setup_t used to setup the module
Note
This Funciton will not start auxiliary clock. Call aux_clk_start ();

Definition at line 281 of file aux_clk.c.

References aux_clk_setup_t::arr_ppi_cnf, and aux_clk_setup_t::source.

◆ aux_clk_start()

void aux_clk_start ( )

@breif Function to start clock

Definition at line 308 of file aux_clk.c.

References AUX_CLK_SRC_LFCLK.

◆ aux_clk_update_cc()

void aux_clk_update_cc ( uint32_t  cc_id,
uint32_t  new_val_ms 
)
Parameters
cc_idClock channel id
new_val_msNew value in milliseconds

Definition at line 360 of file aux_clk.c.

◆ aux_clk_update_irq_priority()

void aux_clk_update_irq_priority ( app_irq_priority_t  new_priority)
Parameters
new_priorityNew IRQ priority.

Definition at line 366 of file aux_clk.c.

◆ aux_clk_update_ppi()

void aux_clk_update_ppi ( uint32_t  ppi_channel,
aux_clk_ppi_t new_ppi 
)
Parameters
ppi_channelPPI channel of which settings are to be updated AUX_CLK_PPI_CHANNEL_x
new_ppiNew PPI settings

Definition at line 346 of file aux_clk.c.