|
【瑞萨RA4系列开发板体验】呼吸灯
作者:lugl
PWM可以驱动LED灯、舵机、电机等外设。今天学习使用pwm驱劝的呼吸灯。
1、新建工程PWM:
2、进入配置界面配置PWM,我这里选用板载的LED1->P415作为pwm输出。
3、按下图指示,添加PWM
4、按下图,显示属性窗口
5、在属性窗口,按如下设置:
6、在pins下面按如下设置:
7、最后点击Generate project content生成代码(注意这里一定要点,我前面没有点这个,半天不成,生手注意是)
8、查看代码是否生成,打开项目资源管理器ra_gen文件夹下的pin_data.c查看是否按下面配置出代码:
9、查看ra_gen文件夹下的hal_data.c是否配置了代码:
10、如果上面都有了的话,打开src下的hal_enty.c书写如下代码:
- uint32_t duty;
- duty = 0;
- uint8_t state;
- state = 0;
- /* TODO: add your own code here /
- fsp_err_t err = FSP_SUCCESS;
- err = R_GPT_Open(&g_timer0_ctrl, &g_timer0_cfg);
- / Handle any errors. This function should be defined by the user. */
- assert(FSP_SUCCESS == err);
- (void) R_GPT_Start(&g_timer0_ctrl);
- // err = R_GPT_PeriodSet(&g_timer0_ctrl, 5000);//频率
- // assert(FSP_SUCCESS == err);
- R_BSP_SoftwareDelay (20, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功
- while(1)
- {
- if(state == 0)
- {
- duty = duty + 2000;
- if(duty >= 100000){
- duty = 100000;
- state=1;
- }
- }
- else{
- duty = duty - 2000;
- if(duty <= 0){
- duty = 0;
- state = 0;
- }
- }
- err = R_GPT_DutyCycleSet(&g_timer0_ctrl, duty, GPT_IO_PIN_GTIOCA);//占空比
- assert(FSP_SUCCESS == err);
- R_BSP_SoftwareDelay (50, BSP_DELAY_UNITS_MILLISECONDS);//不加延时可能会设置不成功
- }
复制代码
11、编译生成hex文件:
12、下载到开发板:
重启后就可以看到LED1的呼吸灯效果。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|