TIMER模块PWM功能
Overview
以 AC638N 为例,提供TIMER模块PWM功能的应用示例、工程配置、API 介绍和常见问题。
应用示例
TIMER模块PWM功能的具体源代码详见 sdk/bsp/AC638N/src/timer_pwm.c
timer_pwm.c
中参考示例如下:void timer_pwm_test(void) { log_info("*********** timer pwm test *************"); timer_pwm_init(JL_TIMER4, IO_PORTC_02, 1000, 5000); //1KHz 50% timer_pwm_init(JL_TIMER5, IO_PORTC_03, 10000, 7500);//10KHz 75% extern void wdt_clr(); while (1) { wdt_clr(); } }
工程配置
在 sdk/apps/main.c 中函数
user_main()
添加如下工程代码:int user_main() { extern void timer_pwm_test(void); timer_pwm_test(); }
编译下载后,PC2 和 PC3连接示波器,观察是否符合如下期望输出:
PC2
1KHz50%
PC3
10KHz75%
API参考
TIMER模块PWM功能常用相关 API 介绍,具体软件代码见 sdk/bsp/AC638N/src/timer_pwm.c
Functions
-
void timer_pwm_init(JL_TIMER_TypeDef *JL_TIMERx, u32 pwm_io, u32 fre, u32 duty)
timer_pwm初始化函数
- Parameters:
JL_TIMERx – JL_TIMER0/1/2/3/4/5
pwm_io – JL_PORTA_01, JL_PORTB_02,,,等等,支持任意普通IO
fre – 频率,单位Hz
duty – 初始占空比,0~10000对应0~100%
-
void set_timer_pwm_duty(JL_TIMER_TypeDef *JL_TIMERx, u32 duty)
timer_pwm改变占空比函数
- Parameters:
JL_TIMERx – JL_TIMER0/1/2/3/4/5
duty – 占空比,0~10000对应0~100%
-
void timer_pwm_test(void)
timer_pwm参考示例