我们继续熟悉e2studio的工具配置生成代码,本部分介绍,通过芯片的SAU单元部分,使能PWM功能,来输出可变的占空比,来控制LED的亮案。
首先我们查看原理图
我们使用的P112这个引脚控制led,对应手册查看20脚的信息。
所以,我们稍后对软件的配置,就要使能这个TO03这个功能。硬件不需要我们实际连接,上电连接jlink即可。
软件部分:
e2studio工具配置流程,我们在stacks中新建new stack,选择如下几项,
这个slave部分,系统要求,必须至少添加一个。
然后进入属性配置,主要是设置PWM输出,周期,计数值,引脚。
配置如下:
然后我们生成工程文件。
呼吸灯的亮暗,实际就是间断性的改变占空比的数值,使得方波从0-100%的连续变化,输出电压从0-3.3V的变化,那么,我们可以根据系统提供的PWM相关函数可以找到改变占空比的函数,尝试引用。
我们引用上面两个函数到hal_entry中
status = R_TAU_PWM_Open(&g_timer0_ctrl, &g_timer0_cfg);
R_BSP_SoftwareDelay(20, BSP_DELAY_UNITS_MILLISECONDS);
status = R_TAU_PWM_Start(&g_timer0_ctrl);
//status = R_TAU_PWM_PeriodSet(&g_timer0_ctrl, 3200);
while(1)
{
if(light == 1){
for(j = 0; j < 100 ; j++){
//g_timer0_ctrl.p_cfg->duty_cycle_counts = j * 100;
status = R_TAU_PWM_DutyCycleSet(&g_timer0_ctrl, j * 400, TAU_PWM_IO_PIN_CHANNEL_3);
R_BSP_SoftwareDelay(10, BSP_DELAY_UNITS_MILLISECONDS);
if(j == 99){
light = 0;
}
}
}else{
for(j = 100; j >0; j--){
status = R_TAU_PWM_DutyCycleSet(&g_timer0_ctrl, j * 400, TAU_PWM_IO_PIN_CHANNEL_3);
R_BSP_SoftwareDelay(10, BSP_DELAY_UNITS_MILLISECONDS);
if(j == 1){
light = 1;
}
}
这样,我们就连续的改变占空比的值,可以实现led的亮暗变化。
更多回帖