$darkmode
RuiChing API 参考手册
V0.9.1

提供 hwtimer 设备的查找、打开、初始化、控制接口 更多...

结构体

struct  rt_hwtimerval
 hwtimer 时间值的结构体 更多...
 
struct  rt_hwtimer_info
 hwtimer 特性信息结构体 更多...
 

宏定义

#define HWTIMER_CNTMODE_UP
 hwtimer 为递增计数模式
 
#define HWTIMER_CNTMODE_DW
 hwtimer 为递减计数模式
 

枚举

enum  rt_hwtimer_ctrl_t { HWTIMER_CTRL_FREQ_SET , HWTIMER_CTRL_STOP , HWTIMER_CTRL_INFO_GET , HWTIMER_CTRL_MODE_SET }
 hwtimer 控制命令枚举 更多...
 
enum  rt_hwtimer_mode_t { HWTIMER_MODE_ONESHOT , HWTIMER_MODE_PERIOD }
 hwtimer 计时模式枚举 更多...
 

函数

rt_device_t rt_device_find (const char *name)
 查找指定名称的 hwtimer 设备 更多...
 
rt_err_t rt_device_open (rt_device_t dev, rt_uint16_t oflag)
 打开 hwtimer 设备 更多...
 
rt_err_t rt_device_init (rt_device_t dev)
 初始化 hwtimer 设备 更多...
 
rt_ssize_t rt_device_read (rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
 从 hwtimer 获取定时器当前值 更多...
 
rt_ssize_t rt_device_write (rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
 设置 hwtimer 的超时值 更多...
 
rt_err_t rt_device_set_rx_indicate (rt_device_t dev, rt_err_t(*rx_ind)(rt_device_t dev, rt_size_t size))
 设置 hwtimer 定时器超时回调函数 更多...
 
rt_err_t rt_device_control (rt_device_t dev, int cmd, void *arg)
 对 hwtimer 设备执行控制操作 更多...
 
rt_err_t rt_device_close (rt_device_t dev)
 关闭 hwtimer 设备 更多...
 

详细描述

提供 hwtimer 设备的查找、打开、初始化、控制接口

枚举类型说明

◆ rt_hwtimer_ctrl_t

hwtimer 控制命令枚举

该枚举定义了 hwtimer 的控制命令, 用于配置频率、停止定时器、获取信息以及设置定时模式。

枚举值
HWTIMER_CTRL_FREQ_SET 

设置计数频率

HWTIMER_CTRL_STOP 

停止定时器

HWTIMER_CTRL_INFO_GET 

获取定时器特性信息

HWTIMER_CTRL_MODE_SET 

设置定时模式(单次 / 周期)

  • 单次模式(oneshot):定时器到期后停止
  • 周期模式(period):定时器到期后自动重载

◆ rt_hwtimer_mode_t

hwtimer 计时模式枚举

定义 hwtimer 的工作模式,包括单次模式和周期模式。

枚举值
HWTIMER_MODE_ONESHOT 

单次模式

定时器到期后自动停止,不会重新加载。

HWTIMER_MODE_PERIOD 

周期模式

定时器到期后自动重载并继续运行。

函数说明

◆ rt_device_find()

rt_device_t rt_device_find ( const char *  name)

查找指定名称的 hwtimer 设备

本函数通过 hwtimer 设备名称查找已注册的 hwtimer 设备

参数
[in]namehwtimer 设备的名称字符串
返回值
!RT_NULL返回 hwtimer 设备结构体指针
RT_NULL当前系统没有找到对应的 hwtimer 设备

◆ rt_device_open()

rt_err_t rt_device_open ( rt_device_t  dev,
rt_uint16_t  oflag 
)

打开 hwtimer 设备

本函数用于打开 hwtimer 设备

参数
[in]dev指向 hwtimer 设备结构体的指针
[in]oflag设备打开标志
标志位 含义
RT_DEVICE_OFLAG_RDWR 以读写方式打开 hwtimer 设备
返回值
RT_EOK成功
-RT_ENOSYS功能不支持

◆ rt_device_init()

rt_err_t rt_device_init ( rt_device_t  dev)

初始化 hwtimer 设备

本函数用于初始化 hwtimer 设备

参数
[in]dev指向 hwtimer 设备结构体的指针
返回值
RT_EOK成功
-RT_ENOSYS功能不支持

◆ rt_device_read()

rt_ssize_t rt_device_read ( rt_device_t  dev,
rt_off_t  pos,
void *  buffer,
rt_size_t  size 
)

从 hwtimer 获取定时器当前值

参数
[in]dev指向 hwtimer 设备结构体的指针
[in]poshwtimer 设备该项无效
[out]buffer指向 struct rt_hwtimerval 结构体的指针
[in]size缓冲区大小,表示希望读取的数据大小
返回值
>0返回实际读取的大小,最大值不超过 struct rt_hwtimerval 结构体的大小
0读取失败

◆ rt_device_write()

rt_ssize_t rt_device_write ( rt_device_t  dev,
rt_off_t  pos,
const void *  buffer,
rt_size_t  size 
)

设置 hwtimer 的超时值

参数
[in]dev指向 hwtimer 设备结构体的指针
[in]poshwtimer 设备该项无效
[in]buffer指向 struct rt_hwtimerval 结构体的指针
[in]size值恒定为 struct rt_hwtimerval 结构体的大小
返回值
size写入成功
0写入失败

◆ rt_device_set_rx_indicate()

rt_err_t rt_device_set_rx_indicate ( rt_device_t  dev,
rt_err_t(*)(rt_device_t dev, rt_size_t size)  rx_ind 
)

设置 hwtimer 定时器超时回调函数

当 hwtimer 超时之后,会调用传入的函数并附带一些信息

参数
[in]dev指向设备驱动结构体的指针
[in]rx_ind接收通知回调函数指针,其原型为:
函数传参 含义
rt_device_t 触发中断回调的 hwtimer 设备结构体的指针
rt_size_t 值恒定为 struct rt_hwtimerval 结构体大小
rt_err_t 回调函数是否执行成功
返回值
RT_EOK成功

◆ rt_device_control()

rt_err_t rt_device_control ( rt_device_t  dev,
int  cmd,
void *  arg 
)

对 hwtimer 设备执行控制操作

参数
[in]dev指向 hwtimer 设备结构体的指针
[in]cmd发送给 hwtimer 设备的命令标识
[in,out]arg命令的参数
标志位 含义 配合 cmd 的 arg 参数
HWTIMER_CTRL_STOP 停止计数 传入 RT_NULL
HWTIMER_CTRL_FREQ_SET 设置计数频率 (若未设置该项,默认为1Mhz 或 支持的最小计数频率) 传入 rt_uint32_t * 类型的指针
HWTIMER_CTRL_INFO_GET 获取定时器特性信息 传入指向 struct rt_hwtimer_info 结构体的指针
HWTIMER_CTRL_MODE_SET 设置定时模式 (若未设置,默认是 HWTIMER_MODE_ONESHOT传入指向 rt_hwtimer_mode_t 的指针,rt_hwtimer_mode_t 见下表
rt_hwtimer_mode_t 参数 含义
HWTIMER_MODE_ONESHOT 单次模式
HWTIMER_MODE_PERIOD 周期模式
返回值
RT_EOK成功
-RT_ENOSYS功能不支持
-RT_EEMPTY参数指针为空
-RT_EINVAL参数数值错误
-RT_ERROR参数不为 HWTIMER_MODE_ONESHOT 或者 HWTIMER_MODE_PERIOD

◆ rt_device_close()

rt_err_t rt_device_close ( rt_device_t  dev)

关闭 hwtimer 设备

本接口用于关闭一个 hwtimer 设备

参数
[in]dev指向 hwtimer 设备的指针
返回值
RT_EOK成功
-RT_ENOSYS功能不支持