梦溪开物 发表于 2022-3-23 13:29

【平头哥RVB2601开发板试用体验】 GRB呼吸灯

本帖最后由 梦溪开物 于 2022-3-23 13:54 编辑

<p>提前下载好剑池CDK软件,就可以体验平头哥RVB2601开发板了。RVB2601开发板上有一个RGB灯,如图1-1所示。在CDK主界面最右边HOME里面搜索ch2601_marquee_demo并下载(具体界面如图1-2所示),打开该工程后,就会发现该工程下实际包含&ldquo;两个小项目&rdquo;:&ldquo;#define CONFIG_PWM_MODE&rdquo;和&ldquo;#define CONFIG_GPIO_MODE&rdquo;,#define CONFIG_PWM_MODE&rdquo;是用PWM实现RGB三色闪烁模式,而#define CONFIG_GPIO_MODE是用GPIO实现RGB三色闪烁模式。要实现哪一个模式,就注释另一种模式,比如要实现PWM模式,就注释GPIO模式://#define CONFIG_GPIO_MODE。刚开始看程序有点困难。</p>

<p>&nbsp;</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>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 图1-1 &nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 图 1-2</p>

<p>&nbsp;</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(&amp;r, pwm_IO / 2)为开启PWM,pwm_IO为对应的具体通道。这里感觉YOC文档关于csi_pwm_out_config这个函数注解不对,pulse_width_us应该是:有效电平时间=period_us-pulse_width_us(单位us)。改动的两个函数的具体内容如下所示:</p>

<p>&nbsp;</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(&amp;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(&amp;r, 0);
}</code></pre>

<pre>
<code>void led_refresh()
{
    if (g_ctr == 0)
        {
                while(g_ctr&lt;300)

                {
                csi_pwm_out_config(&amp;r, 4/ 2, 600-g_ctr, g_ctr++, PWM_POLARITY_HIGH);
                  csi_pwm_out_stop(&amp;r, 7 / 2);
                  csi_pwm_out_stop(&amp;r, 2 / 2);
                  csi_pwm_out_start(&amp;r, 4 / 2);
                        udelay(1000 * 5);
                }
        }
    csi_pwm_out_stop(&amp;r, 4 / 2);
        udelay(1000 * 200);       
       
        if (g_ctr==300)
        {
                while(g_ctr&gt;0)
                {
                  csi_pwm_out_config(&amp;r, 4 / 2, 600-g_ctr, g_ctr--, PWM_POLARITY_HIGH);
                        csi_pwm_out_stop(&amp;r, 7 / 2);
                        csi_pwm_out_stop(&amp;r, 2 / 2);
                        csi_pwm_out_start(&amp;r, 4 / 2);
                        udelay(1000 * 5);
                }
                       
        }
}</code></pre>

<p>&nbsp;</p>

<p>呼吸灯的演示结果如下所示:</p>

<p><iframe allowfullscreen="true" frameborder="0" height="450" src="//player.bilibili.com/player.html?bvid=1G3411p7D9&amp;page=1" style="background:#eee;margin-bottom:10px;" width="700"></iframe><br />
&nbsp;</p>

lvrc01 发表于 2022-3-23 16:36

<p>好详细的文章,匆匆浏览一遍,还要仔细读一读。</p>

lugl4313820 发表于 2022-3-23 16:53

我想问一下你们在平头哥那边怎么发贴,我还没发成功过。

梦溪开物 发表于 2022-3-23 22:08

lugl4313820 发表于 2022-3-23 16:53
我想问一下你们在平头哥那边怎么发贴,我还没发成功过。

<p>你是说平头哥RISC-V RVB2601活动专区吗?</p>

lugl4313820 发表于 2022-3-23 22:10

梦溪开物 发表于 2022-3-23 22:08
你是说平头哥RISC-V RVB2601活动专区吗?

<p>对呀,不知道怎么交作业了。感觉这次评测要炸了,要被退货的节奏。</p>

梦溪开物 发表于 2022-3-24 08:45

本帖最后由 梦溪开物 于 2022-3-24 08:47 编辑

<div class="quote">
<blockquote><font size="2"><a href="forum.php?mod=redirect&amp;goto=findpost&amp;pid=3130238&amp;ptid=1197541" target="_blank"><font color="#999999">lugl4313820 发表于 2022-3-23 22:10</font></a></font> 对呀,不知道怎么交作业了。感觉这次评测要炸了,要被退货的节奏。</blockquote>
</div>

<p>最后交作业是写一个总的项目技术报告</p>

<p> &nbsp;</p>

nmg 发表于 2022-3-24 09:54

lugl4313820 发表于 2022-3-23 22:10
对呀,不知道怎么交作业了。感觉这次评测要炸了,要被退货的节奏。

<p>基本上就是在咱们这里发布后,再同步到平头哥社区一份,<a href="https://bbs.eeworld.com.cn/thread-1197314-1-1.html" target="_blank">&gt;&gt;点此查看如何同步</a></p>

<p>&nbsp;</p>

<p>有问题找我,这次不是测评,是DIY活动,最终作品可参与评奖。</p>
页: [1]
查看完整版本: 【平头哥RVB2601开发板试用体验】 GRB呼吸灯