【平头哥RVB2601开发板试用体验】 GRB呼吸灯
本帖最后由 梦溪开物 于 2022-3-23 13:54 编辑<p>提前下载好剑池CDK软件,就可以体验平头哥RVB2601开发板了。RVB2601开发板上有一个RGB灯,如图1-1所示。在CDK主界面最右边HOME里面搜索ch2601_marquee_demo并下载(具体界面如图1-2所示),打开该工程后,就会发现该工程下实际包含“两个小项目”:“#define CONFIG_PWM_MODE”和“#define CONFIG_GPIO_MODE”,#define CONFIG_PWM_MODE”是用PWM实现RGB三色闪烁模式,而#define CONFIG_GPIO_MODE是用GPIO实现RGB三色闪烁模式。要实现哪一个模式,就注释另一种模式,比如要实现PWM模式,就注释GPIO模式://#define CONFIG_GPIO_MODE。刚开始看程序有点困难。</p>
<p> </p>
<p>因为不知道如何查看程序,后来从其它帖子了解到要右击工程,选择Parse all project,这样就可以查看具体函数内容了,不过还是不能查看某些具体结构体的内容,只能从在线YOC文档进行查询了:https://yoc.docs.t-head.cn/yocbook/Chapter3-AliOS/CSI%E8%AE%BE%E5%A4%87%E9%A9%B1%E5%8A%A8%E6%8E%A5%E5%8F%A3/CSI2/PWM.html#csipwmt。本次要体验一下呼吸灯的感觉。</p>
<p> 图1-1 </p>
<p> </p>
<p> 图 1-2</p>
<p> </p>
<p>那么,要实现呼吸灯程序,就得自己改一下这个例程。首先注释GPIO模式://#define CONFIG_GPIO_MODE,主改动的函有两个,分别为void led_pinmux_init()和void led_refresh()。其中,void led_pinmux_init()为RGB驱动的初始化程序,主要选择GPIO口,设置PWM波的频率、通道、有效脉冲宽度和有效脉冲电平;void led_refresh()为RGB呼吸灯非线性调光程序,csi_pwm_out_stop(&r, pwm_IO / 2)为开启PWM,pwm_IO为对应的具体通道。这里感觉YOC文档关于csi_pwm_out_config这个函数注解不对,pulse_width_us应该是:有效电平时间=period_us-pulse_width_us(单位us)。改动的两个函数的具体内容如下所示:</p>
<p> </p>
<pre>
<code>void led_pinmux_init()
{
//7是红色,2是绿色,1是蓝色
//csi_error_t csi_pwm_out_config(csi_pwm_t *pwm,uint32_t channel,
//uint32_t period_us,uint32_t pulse_width_us,csi_pwm_polarity_t polarity)
//pwm: 设备句柄。
//channel:通道号(范围0~5)。
//period_us:信号周期时间(单位us)。
//pulse_width_us:有效电平时间=period_us-pulse_width_us(单位us)。
//polarity:有效电平极性。
csi_pwm_out_config(&r, 7 / 2, 300, 100, PWM_POLARITY_HIGH);
csi_error_t ret;
csi_pin_set_mux(PA7, PA7_PWM_CH7);
csi_pin_set_mux(PA25, PA25_PWM_CH2);
csi_pin_set_mux(PA4, PA4_PWM_CH4);
csi_pwm_init(&r, 0);
}</code></pre>
<pre>
<code>void led_refresh()
{
if (g_ctr == 0)
{
while(g_ctr<300)
{
csi_pwm_out_config(&r, 4/ 2, 600-g_ctr, g_ctr++, PWM_POLARITY_HIGH);
csi_pwm_out_stop(&r, 7 / 2);
csi_pwm_out_stop(&r, 2 / 2);
csi_pwm_out_start(&r, 4 / 2);
udelay(1000 * 5);
}
}
csi_pwm_out_stop(&r, 4 / 2);
udelay(1000 * 200);
if (g_ctr==300)
{
while(g_ctr>0)
{
csi_pwm_out_config(&r, 4 / 2, 600-g_ctr, g_ctr--, PWM_POLARITY_HIGH);
csi_pwm_out_stop(&r, 7 / 2);
csi_pwm_out_stop(&r, 2 / 2);
csi_pwm_out_start(&r, 4 / 2);
udelay(1000 * 5);
}
}
}</code></pre>
<p> </p>
<p>呼吸灯的演示结果如下所示:</p>
<p><iframe allowfullscreen="true" frameborder="0" height="450" src="//player.bilibili.com/player.html?bvid=1G3411p7D9&page=1" style="background:#eee;margin-bottom:10px;" width="700"></iframe><br />
</p>
<p>好详细的文章,匆匆浏览一遍,还要仔细读一读。</p>
我想问一下你们在平头哥那边怎么发贴,我还没发成功过。 lugl4313820 发表于 2022-3-23 16:53
我想问一下你们在平头哥那边怎么发贴,我还没发成功过。
<p>你是说平头哥RISC-V RVB2601活动专区吗?</p>
梦溪开物 发表于 2022-3-23 22:08
你是说平头哥RISC-V RVB2601活动专区吗?
<p>对呀,不知道怎么交作业了。感觉这次评测要炸了,要被退货的节奏。</p>
本帖最后由 梦溪开物 于 2022-3-24 08:47 编辑
<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&goto=findpost&pid=3130238&ptid=1197541" target="_blank"><font color="#999999">lugl4313820 发表于 2022-3-23 22:10</font></a></font> 对呀,不知道怎么交作业了。感觉这次评测要炸了,要被退货的节奏。</blockquote>
</div>
<p>最后交作业是写一个总的项目技术报告</p>
<p> </p>
lugl4313820 发表于 2022-3-23 22:10
对呀,不知道怎么交作业了。感觉这次评测要炸了,要被退货的节奏。
<p>基本上就是在咱们这里发布后,再同步到平头哥社区一份,<a href="https://bbs.eeworld.com.cn/thread-1197314-1-1.html" target="_blank">>>点此查看如何同步</a></p>
<p> </p>
<p>有问题找我,这次不是测评,是DIY活动,最终作品可参与评奖。</p>
页:
[1]