Microchip® Advanced Software Framework

common/components/wifi/winc1500/exosite_demo/iot/sw_timer.c File Reference

SW Timer component for the IoT(Internet of things) service.

Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.

#include "sw_timer.h"

Functions

void sw_timer_disable (struct sw_timer_module *const module_inst)
 Stop the timer. More...
 
void sw_timer_disable_callback (struct sw_timer_module *const module_inst, int timer_id)
 Disable callback. More...
 
void sw_timer_enable (struct sw_timer_module *const module_inst)
 Start the timer. More...
 
void sw_timer_enable_callback (struct sw_timer_module *const module_inst, int timer_id, uint32_t delay)
 Enables callback. More...
 
void sw_timer_get_config_defaults (struct sw_timer_config *const config)
 Get default configuration of SW timer. More...
 
void sw_timer_init (struct sw_timer_module *const module_inst, struct sw_timer_config *const config)
 Initialize the SW timer module. More...
 
int sw_timer_register_callback (struct sw_timer_module *const module_inst, sw_timer_callback_t callback, void *context, uint32_t period)
 Register callback. More...
 
void sw_timer_task (struct sw_timer_module *const module_inst)
 Checks the time out of each timer handlers. More...
 
static void sw_timer_tcc_callback (struct tcc_module *const module)
 TCC callback of SW timer. More...
 
void sw_timer_unregister_callback (struct sw_timer_module *const module_inst, int timer_id)
 Unregister callback. More...
 

Variables

static uint32_t sw_timer_tick = 0
 Tick count of timer. More...
 

void sw_timer_disable ( struct sw_timer_module *const  module_inst)

Stop the timer.

Parameters
[in]module_instPointer of timer.

References Assert, tcc_disable(), and sw_timer_module::tcc_inst.

void sw_timer_disable_callback ( struct sw_timer_module *const  module_inst,
int  timer_id 
)

Disable callback.

Disable the callback function registered by the sw_timer_register_callback.

Parameters
[in]module_instPointer to USART software instance struct
[in]timer_idTimer ID .

References Assert, sw_timer_handle::callback_enable, and sw_timer_module::handler.

void sw_timer_enable ( struct sw_timer_module *const  module_inst)

Start the timer.

Parameters
[in]module_instPointer of timer.

References Assert, tcc_enable(), and sw_timer_module::tcc_inst.

void sw_timer_enable_callback ( struct sw_timer_module *const  module_inst,
int  timer_id,
uint32_t  delay 
)

Enables callback.

Enables the callback function registered by the sw_timer_register_callback.

Parameters
[in]module_instPointer to USART software instance struct
[in]timer_idTimer ID .
[in]delayInitialization value of timer.

References sw_timer_module::accuracy, Assert, sw_timer_handle::callback_enable, sw_timer_handle::expire_time, sw_timer_module::handler, and sw_timer_tick.

void sw_timer_get_config_defaults ( struct sw_timer_config *const  config)

Get default configuration of SW timer.

Parameters
[in]configPointer of configuration structure which will be used in the timer.

References sw_timer_config::accuracy, Assert, sw_timer_config::tcc_callback_channel, and sw_timer_config::tcc_dev.

int sw_timer_register_callback ( struct sw_timer_module *const  module_inst,
sw_timer_callback_t  callback,
void *  context,
uint32_t  period 
)

Register callback.

Parameters
[in]module_instPointer of timer.
[in]callbackCallback entry of time out.
[in]contextPrivate data of timer.
[in]periodPeriod of timer.
Returns
If negative value, registering timer was failed. Otherwise this value is ID of timer.

References sw_timer_module::accuracy, Assert, sw_timer_handle::callback, callback, sw_timer_handle::callback_enable, sw_timer_handle::context, context, sw_timer_module::handler, sw_timer_handle::period, and sw_timer_handle::used.

void sw_timer_task ( struct sw_timer_module *const  module_inst)

Checks the time out of each timer handlers.

This function must be called continuously for the checking the expiration of the timer handle.

Parameters
[in]module_instPointer to USART software instance struct

References Assert, sw_timer_handle::busy, sw_timer_handle::callback, sw_timer_handle::callback_enable, sw_timer_handle::context, sw_timer_handle::expire_time, sw_timer_module::handler, sw_timer_handle::period, sw_timer_tick, and sw_timer_handle::used.

static void sw_timer_tcc_callback ( struct tcc_module *const  module)
static

TCC callback of SW timer.

This function performs to the increasing the tick count.

Parameters
[in]moduleInstance of the TCC.

References sw_timer_tick.

Referenced by sw_timer_init().

void sw_timer_unregister_callback ( struct sw_timer_module *const  module_inst,
int  timer_id 
)

Unregister callback.

Parameters
[in]module_instPointer of timer.
[in]timer_idTimer ID .

References Assert, sw_timer_module::handler, and sw_timer_handle::used.

uint32_t sw_timer_tick = 0
static

Tick count of timer.

Referenced by sw_timer_enable_callback(), sw_timer_task(), and sw_timer_tcc_callback().