2554|12

297

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

【平头哥RVB2601创意应用开发】 三、RVB2601之RGB三色呼吸灯 [复制链接]

 
  本帖最后由 kit7828 于 2022-3-10 14:00 编辑

平头哥的例程中有个ch2601_rgb_marquee_demo,是实现RGB LED灯珠三色跑马灯效果的demo。解压后,直接打开project文件(找不到在CDK中直接打开project文件的选项,不知道是不是要先打开workspace才会有这个功能?)

 CDK中打开后依然有错误显示

 依然在sdk_chip_ch2601上面右键download相关组件

然后就能自动下载了

 下载后需要等待一会,安装的项目有点多

 安装完成后就可以编译和下载了

 下载完成后

 需要按下开发板右边的RST按钮才会运行

如果开启串口的话,可以看到串口有调试信息出现

 整体的效果如下

 

代码中分别采用了GPIO和PWM两种方式控制这个三色RGB灯。

为进一步测试PWM效果,想把例程改成三色呼吸灯的效果

于是,首先在app_config.h中启用PWM方式

 然后在led.c中修改void led_refresh()

void led_refresh()
{
	csi_error_t ret;
	uint32_t g_lux = 0;
	
	//udelay(10);
    
	g_dly ++;
	if(g_dly == 60) {
		g_dly = 0;
		
		g_ctr++;
		if (g_ctr == 3) g_ctr = 0;
		if (g_ctr == 0)
		{
			csi_pwm_out_stop(&r, 2 / 2);
			csi_pwm_out_stop(&r, 4 / 2);

		}
		else if (g_ctr == 1)
		{ 
			csi_pwm_out_stop(&r, 7 / 2);
			csi_pwm_out_stop(&r, 4 / 2);
		}
		else //2
		{
			csi_pwm_out_stop(&r, 7 / 2);
			csi_pwm_out_stop(&r, 2 / 2);
		}
	}
	
	if(g_dly <= 30) g_lux = g_dly;
	else g_lux = 60 - g_dly;
		
    if (g_ctr == 0)
    {
		ret = csi_pwm_out_config(&r, 7 / 2, 30, g_lux, PWM_POLARITY_LOW);
		if (ret != CSI_OK) {
				printf("===%s, %d\n", __FUNCTION__, __LINE__);
				return ;
		}
        csi_pwm_out_start(&r, 7 / 2);
        //csi_pwm_out_stop(&r, 2 / 2);
        //csi_pwm_out_stop(&r, 4 / 2);

    }
    else if (g_ctr == 1)
    {        
		ret = csi_pwm_out_config(&r, 2 / 2, 30, g_lux, PWM_POLARITY_LOW);
		if (ret != CSI_OK) {
				printf("===%s, %d\n", __FUNCTION__, __LINE__);
				return ;
		}
        csi_pwm_out_start(&r, 2 / 2);
        //csi_pwm_out_stop(&r, 7 / 2);
        //csi_pwm_out_stop(&r, 4 / 2);

    }
    else //2
    {
		ret = csi_pwm_out_config(&r, 4 / 2, 30, g_lux, PWM_POLARITY_LOW);
		if (ret != CSI_OK) {
				printf("===%s, %d\n", __FUNCTION__, __LINE__);
				return ;
		}
        csi_pwm_out_start(&r, 4 / 2);
        //csi_pwm_out_stop(&r, 7 / 2);
        //csi_pwm_out_stop(&r, 2 / 2);

    }
	
}

其中的g_dly为全局变量

这样发现呼吸效果很差,检查后发现主循环中的延时时间太长

 把延时参数减小10倍,就差不多能看到呼吸效果了

完成的效果如下

 

PWM方式实现三色灯呼吸的效果实现了,由于对平头哥芯片的PWM控制方式不是很熟悉,目前是通过不断调整配置函数csi_pwm_out_config实现的,而不是直接修改寄存器方式实现的,所以整体效果不完美,希望后续能进一步了解这款芯片,实现更完美的控制。

最新回复

csi_pwm_out_stop(&r,7/2),请问7/2通道是小数是怎么回事呢?   详情 回复 发表于 2022-3-19 23:36
点赞 关注
 
 

回复
举报

6614

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

RVB2601的RGB调节包括其他颜色的设置,在app_config.h文件中,切换宏定义,配置LED引脚的功能为CONFIG_PWM_MODE

配置占空比bright_ctr,改变明暗程度。

点评

好的,谢谢  详情 回复 发表于 2022-3-8 13:13
 
 
 

回复

7473

帖子

18

TA的资源

五彩晶圆(高级)

板凳
 

是的,太快了看不出什么效果,频率的改变一闪而过。

点评

就没有呼吸的效果了  详情 回复 发表于 2022-3-8 13:14
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

297

帖子

0

TA的资源

纯净的硅(初级)

4
 
Jacktang 发表于 2022-3-7 21:02 RVB2601的RGB调节包括其他颜色的设置,在app_config.h文件中,切换宏定义,配置LED引脚的功能为CONFIG_PWM_ ...

好的,谢谢

 
 
 

回复

297

帖子

0

TA的资源

纯净的硅(初级)

5
 
freebsder 发表于 2022-3-7 22:31 是的,太快了看不出什么效果,频率的改变一闪而过。

就没有呼吸的效果了

点评

是的,这个频率还不太好调,我也是上个月才第一次搞呼吸灯。快了没效果,满了明显有停顿感,要真实的模拟呼吸频率,还得费点事情。  详情 回复 发表于 2022-3-8 22:59
 
 
 

回复

7473

帖子

18

TA的资源

五彩晶圆(高级)

6
 
kit7828 发表于 2022-3-8 13:14 就没有呼吸的效果了

是的,这个频率还不太好调,我也是上个月才第一次搞呼吸灯。快了没效果,满了明显有停顿感,要真实的模拟呼吸频率,还得费点事情。

点评

我这个评测比较偷懒,直接用线性方式调整的PWM,其实改成数组方式,非线性的话,效果要好很多    详情 回复 发表于 2022-3-9 12:41
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复

297

帖子

0

TA的资源

纯净的硅(初级)

7
 
freebsder 发表于 2022-3-8 22:59 是的,这个频率还不太好调,我也是上个月才第一次搞呼吸灯。快了没效果,满了明显有停顿感,要真实的模拟 ...

我这个评测比较偷懒,直接用线性方式调整的PWM,其实改成数组方式,非线性的话,效果要好很多

 

 
 
 

回复

149

帖子

0

TA的资源

一粒金砂(中级)

8
 

CDK如何查看函数内部情况呢?

 

点评

昨天看到群里的问题汇总中有提到,首先要在CDK的Project菜单中parse all  projects 然后就可以  点击右键 goto declaration  详情 回复 发表于 2022-3-16 13:33
 
 
 

回复

149

帖子

0

TA的资源

一粒金砂(中级)

9
 

 接连两个csi_pwm_out_stop是起什么作用呢

点评

三色灯,所以关闭了其他两色的PWM通道,只亮一个颜色  详情 回复 发表于 2022-3-16 13:34
 
 
 

回复

297

帖子

0

TA的资源

纯净的硅(初级)

10
 
梦溪开物 发表于 2022-3-15 15:49 CDK如何查看函数内部情况呢?  

昨天看到群里的问题汇总中有提到,首先要在CDK的Project菜单中parse all  projects

然后就可以  点击右键 goto declaration

点评

谢谢你  详情 回复 发表于 2022-3-17 09:46
 
 
 

回复

297

帖子

0

TA的资源

纯净的硅(初级)

11
 
梦溪开物 发表于 2022-3-16 09:43  接连两个csi_pwm_out_stop是起什么作用呢

三色灯,所以关闭了其他两色的PWM通道,只亮一个颜色

点评

csi_pwm_out_stop(&r,7/2),请问7/2通道是小数是怎么回事呢?  详情 回复 发表于 2022-3-19 23:36
 
 
 

回复

149

帖子

0

TA的资源

一粒金砂(中级)

12
 
kit7828 发表于 2022-3-16 13:33 昨天看到群里的问题汇总中有提到,首先要在CDK的Project菜单中parse all  projects 然后就 ...

谢谢你

 
 
 

回复

149

帖子

0

TA的资源

一粒金砂(中级)

13
 
kit7828 发表于 2022-3-16 13:34 三色灯,所以关闭了其他两色的PWM通道,只亮一个颜色

csi_pwm_out_stop(&r,7/2),请问7/2通道是小数是怎么回事呢?

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表