SemiDrive SSDK Appication Program Interface PTG3.0
Data Structures | Functions
sdrv_btm.h File Reference
#include <types.h>
#include <compiler.h>
#include <sdrv_common.h>
#include "../source/btm/sdrv_btm_hw.h"

Go to the source code of this file.

Data Structures

struct  sdrv_btm_cfg
 
struct  sdrv_btm
 
struct  sdrv_btm_controller_module
 

Functions

status_t sdrv_btm_init (sdrv_btm_t *ctrl, sdrv_btm_cfg_t *cfg)
 
status_t sdrv_btm_deinit (sdrv_btm_t *ctrl)
 
status_t sdrv_btm_start (sdrv_btm_t *ctrl, btm_type_t btm_type, btm_time_type_t time_type, uint32_t time_out)
 
status_t sdrv_btm_stop (sdrv_btm_t *ctrl)
 
status_t sdrv_btm_set_callback (sdrv_btm_t *ctrl, btm_callback callback, void *arg)
 
uint32_t sdrv_btm_get_current_time (sdrv_btm_t *ctrl)
 
uint32_t sdrv_btm_get_current_time_ex (sdrv_btm_t *ctrl, btm_time_type_t time_type)
 
status_t sdrv_btm_pause (sdrv_btm_t *ctrl)
 
status_t sdrv_btm_continue (sdrv_btm_t *ctrl)
 
uint32_t sdrv_btm_get_counter (sdrv_btm_t *ctrl)
 
status_t sdrv_btm_set_overflow (sdrv_btm_t *ctrl, uint32_t val)
 
status_t sdrv_btm_force_reload (sdrv_btm_t *ctrl)
 
bool sdrv_btm_is_overflowed (sdrv_btm_t *ctrl)
 
status_t sdrv_btm_clear_intr (sdrv_btm_t *ctrl)
 
uint32_t sdrv_btm_count_to_us (sdrv_btm_t *ctrl, uint32_t cnt)
 

Detailed Description

Revision History:

Typedef Documentation

◆ btm_callback

typedef void(* btm_callback) (void *arg)

◆ btm_status_t

typedef __BEGIN_CDECLS enum btm_status btm_status_t

◆ btm_time_type_t

◆ btm_type_t

typedef enum btm_type btm_type_t

◆ sdrv_btm_cfg_t

typedef struct sdrv_btm_cfg sdrv_btm_cfg_t

◆ sdrv_btm_controller_module_t

◆ sdrv_btm_t

typedef struct sdrv_btm sdrv_btm_t

Enumeration Type Documentation

◆ btm_status

enum btm_status
Enumerator
BTM_STATUS_NULL 
BTM_STATUS_IDLE 
BTM_STATUS_BUSY 
BTM_STATUS_ERR 

◆ btm_time_type

Enumerator
BTM_TIME_MS 
BTM_TIME_US 
BTM_TIME_NS 

◆ btm_type

enum btm_type
Enumerator
BTM_TYPE_ONESHOT 
BTM_TYPE_PERIOD 
BTM_TYPE_ERR 

Function Documentation

◆ sdrv_btm_clear_intr()

status_t sdrv_btm_clear_intr ( sdrv_btm_t ctrl)

btm clear interupt status

Parameters
[in]ctrlbtm ctrl instance
Returns
succeed:0 fail:other

◆ sdrv_btm_continue()

status_t sdrv_btm_continue ( sdrv_btm_t ctrl)

btm continue

Parameters
[in]ctrlbtm ctrl instance
Returns
succeed:0 fail:other

◆ sdrv_btm_count_to_us()

uint32_t sdrv_btm_count_to_us ( sdrv_btm_t ctrl,
uint32_t  cnt 
)

btm convert count to time in us

Parameters
[in]ctrlbtm ctrl instance
[in]cntbtm count value
Returns
time in microseconds.

◆ sdrv_btm_deinit()

status_t sdrv_btm_deinit ( sdrv_btm_t ctrl)

btm deinit

Deinitial btm module instance.

Parameters
[in]ctrlbtm ctrl instance
Returns
succeed:0 fail:other

◆ sdrv_btm_force_reload()

status_t sdrv_btm_force_reload ( sdrv_btm_t ctrl)

btm force reset counter value

Btm force reset counter value to 0.

Parameters
[in]ctrlbtm ctrl instance
Returns
succeed:0 fail:other

◆ sdrv_btm_get_counter()

uint32_t sdrv_btm_get_counter ( sdrv_btm_t ctrl)

get btm counter value

Parameters
[in]ctrlbtm ctrl instance
Returns
btm counter value

◆ sdrv_btm_get_current_time()

uint32_t sdrv_btm_get_current_time ( sdrv_btm_t ctrl)

get btm Elapsed time (us)

Parameters
[in]ctrlbtm ctrl instance
Returns
btm Elapsed time (us)

◆ sdrv_btm_get_current_time_ex()

uint32_t sdrv_btm_get_current_time_ex ( sdrv_btm_t ctrl,
btm_time_type_t  time_type 
)

get btm Elapsed time (extend)

Parameters
[in]ctrlbtm ctrl instance
[in]time_typetime type
Returns
btm Elapsed time (us)

◆ sdrv_btm_init()

status_t sdrv_btm_init ( sdrv_btm_t ctrl,
sdrv_btm_cfg_t cfg 
)

btm init

Initial btm module instance.

Parameters
[in]ctrlbtm ctrl instance
[in]cfgbtm config
Returns
succeed:0 fail:other

◆ sdrv_btm_is_overflowed()

bool sdrv_btm_is_overflowed ( sdrv_btm_t ctrl)

is btm overflow.

Check btm overflow status.

Parameters
[in]ctrlbtm ctrl instance
Returns
true:overflow fail:not overflow

◆ sdrv_btm_pause()

status_t sdrv_btm_pause ( sdrv_btm_t ctrl)

btm pause

Parameters
[in]ctrlbtm ctrl instance
Returns
succeed:0 fail:other

◆ sdrv_btm_set_callback()

status_t sdrv_btm_set_callback ( sdrv_btm_t ctrl,
btm_callback  callback,
void *  arg 
)

btm setup callback funciton

Parameters
[in]ctrlbtm ctrl instance
[in]callbackuser callback function
Returns
succeed:0 fail:other

◆ sdrv_btm_set_overflow()

status_t sdrv_btm_set_overflow ( sdrv_btm_t ctrl,
uint32_t  val 
)

set btm overflow value

Parameters
[in]ctrlbtm ctrl instance
[in]valbtm overflow value
Returns
succeed:0 fail:other

◆ sdrv_btm_start()

status_t sdrv_btm_start ( sdrv_btm_t ctrl,
btm_type_t  btm_type,
btm_time_type_t  time_type,
uint32_t  time_out 
)

btm start

In one-short mode, btm will auto stop while reaches overflow value. In continuous mode, btm will reset to 0 and restart once reaches overflow value.

Parameters
[in]ctrlbtm ctrl instance
[in]btm_typetimer type
[in]time_typetimeout time unit
[in]time_outtimeout
Returns
succeed:0 fail:other

◆ sdrv_btm_stop()

status_t sdrv_btm_stop ( sdrv_btm_t ctrl)

btm stop

BTM stop to count.

Parameters
[in]ctrlbtm ctrl instance
Returns
succeed:0 fail:other