【实现功能】
使led1实现亮度的变化,实现呼吸灯的效果。
【简介】
RA6E1是通过GPT-Timer-PWM来实现pwm输出。
【实现步骤】
1、新建空白工程,添加一个gpt_pwm_pwm到工程里面。

2、配置属性如下:

3、生成工程后,打开hal_entry.c输入初始化gpt_timer,配置重载值,在主循环里编写修改占空比的值,这样就实现了pwm呼吸灯的效果:
/*******************************************************************************************************************//**
* main() is generated by the RA Configuration editor and is used to generate threads if an RTOS is used. This function
* is called by main() when no RTOS is used.
**********************************************************************************************************************/
void hal_entry(void)
{
/* TODO: add your own code here */
uint16_t cycleValue;
fsp_err_t err = FSP_SUCCESS;
err = R_GPT_Open(&g_timer_pwm_ctrl, &g_timer_pwm_cfg);
assert(FSP_SUCCESS == err);
err = R_GPT_Start(&g_timer_pwm_ctrl);
err = R_GPT_PeriodSet(&g_timer_pwm_ctrl, 5000);
assert(FSP_SUCCESS == err);
R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功
err = R_GPT_DutyCycleSet(&g_timer_pwm_ctrl, 1250, GPT_IO_PIN_GTIOCB);
assert(FSP_SUCCESS == err);
R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功
err = R_GPT_Reset(&g_timer_pwm_ctrl);
assert(FSP_SUCCESS == err);
R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功
while(1)
{
for(cycleValue=0; cycleValue<5000; cycleValue+=50)
{
R_GPT_DutyCycleSet(&g_timer_pwm_ctrl, cycleValue, GPT_IO_PIN_GTIOCB);
R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功
}
}
}