1.2. GPTIMER

gptimer支持计数、延时、定时、PWM、捕获。捕获模式支持滤波,双边沿触发。

demo请参考 gptimer_demo.c 文件。

1.2.1. gptimer_init

gptimer模块资源初始化。

原型:

u32 gptimer_init(const timer_dev timerx, const struct gptimer_config *gt_cfg);

参数:

timerx

选择一个gptimer模块

gt_cfg

gptimer配置

返回值

tid

1.2.2. gptimer_deinit

gptimer资源释放。

原型:

u32 gptimer_deinit(u32 tid);

参数:

tid

init时返回的tid

返回值

0

1.2.3. gptimer_start

gptimer模块启动。

原型:

u32 gptimer_start(u32 tid);

参数:

tid

init时返回的tid

返回值

0

1.2.4. gptimer_pause

gptimer模块暂停。

原型:

u32 gptimer_pause(u32 tid);

参数:

tid

init时返回的tid

返回值

保留

1.2.5. gptimer_resume

gptimer模块恢复。

原型:

u32 gptimer_resume(u32 tid);

参数:

tid

init时返回的tid

返回值

保留

1.2.6. gptimer_set_timer_period

设置timer功能定时周期,单位us。

原型:

u32 gptimer_set_timer_period(u32 tid, u32 period_us);

参数:

tid

init时返回的tid

period_us

定时周期,单位:us

返回值

0

1.2.7. gptimer_get_timer_period

获取timer功能定时周期,单位us。

原型:

u32 gptimer_set_timer_period(u32 tid);

参数:

tid

init时返回的tid

返回值

定时周期,单位:us

1.2.8. gptimer_set_pwm_freq

设置pwm功能输出频率,单位Hz。

原型:

u32 gptimer_set_pwm_freq(u32 tid, u32 freq);

参数:

tid

init时返回的tid

freq

输出频率,单位:Hz

返回值

0

1.2.9. gptimer_get_pwm_freq

获取pwm功能输出频率,单位Hz。

原型:

u32 gptimer_get_pwm_freq(u32 tid);

参数:

tid

init时返回的tid

返回值

输出频率,单位:Hz

1.2.10. gptimer_set_pwm_duty

设置pwm功能输出占空比。

原型:

u32 gptimer_set_pwm_duty(u32 tid, u32 duty);

参数:

tid

init时返回的tid

duty

占空比,例:5123,占空比51.23%

返回值

0

1.2.11. gptimer_get_pwm_duty

获取pwm功能输出占空比。

原型:

u32 gptimer_get_pwm_duty(u32 tid);

参数:

tid

init时返回的tid

返回值

占空比,例:5123,占空比51.23%

1.2.12. gptimer_set_pwm_port

设置pwm输出IO。

原型:

u32 gptimer_set_pwm_port(u32 tid, enum gpio_port port, u32 pin);

参数:

tid

init时返回的tid

port

输出IO,例:输出A组口,PORTA

pin

输出IO,例如,输出第0引脚,BIT(0)

返回值

0

1.2.13. gptimer_pwm_flip

翻转pwm输出。

原型:

u32 gptimer_pwm_flip(u32 tid);

参数:

tid

init时返回的tid

返回值

0

1.2.14. gptimer_pwm_enable

pwm输出使能。

原型:

u32 gptimer_pwm_enable(u32 tid);

参数:

tid

init时返回的tid

返回值

0

1.2.15. gptimer_pwm_disable

pwm输出禁用。

原型:

u32 gptimer_pwm_disable(u32 tid);

参数:

tid

init时返回的tid

返回值

0

1.2.16. gptimer_set_capture_edge_type

设置capture功能捕获边沿,边沿类型:上升沿、下降沿、双边沿。

原型:

u32 gptimer_set_capture_edge_type(u32 tid, enum gptimer_mode edge_type);

参数:

tid

init时返回的tid

edge_type

边沿类型

返回值

0

1.2.17. gptimer_get_capture_edge_type

获取capture功能捕获边沿。

原型:

enum gptimer_mode gptimer_get_capture_edge_type(u32 tid);

参数:

tid

init时返回的tid

返回值

边沿类型:上升沿、下降沿、双边沿

1.2.18. gptimer_set_irq_callback

设置中断回调函数。

原型:

u32 gptimer_set_irq_callback(u32 tid, void (*irq_cb)(u32 tid, void *private_data));

参数:

tid

init时返回的tid

irq_cb

回调函数

返回值

0

1.2.19. gptimer_set_work_mode

设置工作模式。

原型:

u32 gptimer_set_work_mode(u32 tid, enum gptimer_mode type);

参数:

1.2.20. gptimer_get_work_mode

获取当前工作模式。

原型:

enum gptimer_mode gptimer_get_work_mode(u32 tid);

参数:

tid

init时返回的tid

返回值

gptimer_mode 工作模式

1.2.21. gptimer_set_capture_filter

设置capture功能滤波参数。

原型:

u32 gptimer_set_capture_filter(u32 tid, u32 filter);

参数:

1.2.22. gptimer_get_capture_filter

获取capture功能滤波参数。

原型:

u32 gptimer_get_capture_filter(u32 tid);

参数:

tid

init时返回的tid

返回值

滤波参数,单位:us。

1.2.23. gptimer_set_capture_count

设置capture功能count计数器的原始值。

原型:

u32 gptimer_set_capture_count(u32 tid, u32 cnt);

参数:

tid

init时返回的tid

cnt

设置的cnt值

返回值

0

1.2.24. gptimer_get_capture_count

获取capture功能count计数器的原始值。

原型:

u32 gptimer_get_capture_count(u32 tid);

参数:

tid

init时返回的tid

返回值

count计数器原始值

1.2.25. gptimer_get_capture_cnt2us

获取capture功能捕获时间,单位us,捕获发生时调用有效。

原型:

u32 gptimer_get_capture_cnt2us(u32 tid);

参数:

tid

init时返回的tid

返回值

捕获时间,单位:us

1.2.26. gptimer_set_count

设置count计数器的原始值。

原型:

u32 gptimer_set_count(u32 tid, u32 cnt);

参数:

tid

init时返回的tid

cnt

设置的cnt值

返回值

0

1.2.27. gptimer_get_count

获取count计数器的原始值。

原型:

u32 gptimer_get_count(u32 tid);

参数:

tid

init时返回的tid

返回值

count计数器原始值

1.2.28. gptimer_set_prd

获取prd寄存器的原始值。

原型:

u32 gptimer_set_prd(u32 tid, prd);

参数:

tid

init时返回的tid

prd

设置的prd值

返回值

0

1.2.29. gptimer_get_prd

获取prd寄存器的原始值。

原型:

u32 gptimer_get_prd(u32 tid);

参数:

tid

init时返回的tid

返回值

prd寄存器原始值

1.2.30. gptimer_get_private_data

获取私有参数首地址。

原型:

void *gptimer_get_private_data(u32 tid);

参数:

tid

init时返回的tid

返回值

私有参数首地址

1.2.31. gptimer_set_private_data

设置私有参数。

原型:

void *gptimer_set_private_data(u32 tid, void *private_data);

参数:

1.2.32. gptimer_measure_time_init

“测时间”功能初始化。

原型:

u32 gptimer_measure_time_init(const timer_dev timerx, u32 max_time_us); //比实际时间少约40us

参数:

1.2.33. gptimer_measure_time_start

“测时间”功能启动。

原型:

u32 gptimer_measure_time_start(u32 tid);

参数:

tid

init时返回的tid

返回值

0

1.2.34. gptimer_measure_time_end

“测时间”功能停止,返回值为从 “启动” 到 “停止” 的时间间隔,单位us。

原型:

u32 gptimer_measure_time_end(u32 tid);

参数:

tid

init时返回的tid

返回值

“启动”到“停止”的时间间隔,单位:us

1.2.35. gptimer_dump

打印当前所有gptimer寄存器信息。

原型:

u32 gptimer_dump();

参数:

返回值