RVB2601应用开发实战系列二: 跑马灯

简介: 基于RVB2601的跑马灯程序是利用通过控制一颗RGB LED灯珠实现三色跑马灯效果。建议在在看本文之前,先详细看下RVB2601资源。本例程名为ch2601_marquee_demo,可以通过CDK直接从OCC拉取。
  1. 前言

基于RVB2601的跑马灯程序是利用通过控制一颗RGB LED灯珠实现三色跑马灯效果。

建议在在看本文之前,先详细看下RVB2601资源。本例程名为ch2601_marquee_demo,可以通过CDK直接从OCC拉取。

  1. 硬件配置

三色LED通过PIN引脚 PA7、PA25、PA4与CH2601主芯片GPIO控制器连通,主控可以通过对PA7、PA25和PA4的GPIO PIN的操作,可以实现三色LED不同颜色的闪烁。LED硬件原理图如下:
image.png

  1. 跑马灯开发

3.1 例程下载
打开CDK,点击HOME图标,查找ch2601_marquee_demo后,打开工程可以看到以下目录image.png

3.2 LED配置
led_pinmux_init
该功能函数位于app/src/led.c, 用于初始化三色LED灯的IO管脚。配置三色灯的PA7、PA25和PA4为IO模式,为每个IO管脚配置PWM通道以及占空比时间。

void led_pinmux_init()
{

    //7
csi_pin_set_mux(PA7, PA7_PWM_CH7);
csi_pin_set_mux(PA25, PA25_PWM_CH2);
csi_pin_set_mux(PA4, PA4_PWM_CH4);
ret = csi_pwm_init(&r, 0);
ret = csi_pwm_out_config(&r, 7 / 2, 300, 100, PWM_POLARITY_HIGH);
ret = csi_pwm_out_start(&r, 7 / 2);
    //25
ret = csi_pwm_out_config(&r, 2 / 2, 300, 100, PWM_POLARITY_HIGH);
ret = csi_pwm_out_start(&r, 2 / 2);
    //4
ret = csi_pwm_out_config(&r, 4 / 2, 300, 100, PWM_POLARITY_HIGH);
ret = csi_pwm_out_start(&r, 4 / 2);

led_refresh

该功能函数位于app/src/led.c, 用于依次闪烁LED。利用g_ctr计数器来判断闪烁LED灯。通过操作三根IO管脚来确定显示指定颜色的灯。

void led_refresh()
{

g_ctr++;
if (g_ctr == 3) {
        g_ctr = 0;
}
if (g_ctr == 0)
{
    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)
{        
    csi_pwm_out_start(&r, 2 / 2);
    csi_pwm_out_stop(&r, 7 / 2);
    csi_pwm_out_stop(&r, 4 / 2);
}
else //2
{
    csi_pwm_out_start(&r, 4 / 2);
    csi_pwm_out_stop(&r, 7 / 2);
    csi_pwm_out_stop(&r, 2 / 2);
}

}

demo_task
该功能函数位于app/src/main.c, 用于周期性点亮LED灯,在主函数里调用。

static void demo_task(void *arg)
{

lv_init();
oled_init();
lable_test();
led_pinmux_init();
while (1)
{
    lv_task_handler();
    udelay(1000 * 1000);
    lv_tick_inc(1);
    led_refresh();
}

}

3.3. 编译运行
编译通过后,点击下载成功,复位运行。可看左下角的灯依次闪烁。image.png

  1. 总结

本例程介绍了如何通过CSI接口配置IO管脚来控制LED灯,从而实现依次闪烁,达到跑马灯的效果。后续还有更多的开发例程,敬请期待!

相关文章
|
IDE 物联网 开发工具
【史上最全面esp32教程】点灯大师篇
【史上最全面esp32教程】点灯大师篇
942 0
|
4月前
|
vr&ar 图形学
PICO4开发实战一:节奏光剑(VR)(需求文档)
这篇文章是PICO4开发实战指南,详细介绍了开发一款名为“节奏光剑”的VR游戏的需求文档,包括从基础功能开发到交互体验优化、场景体验优化、UI设计、游戏关卡设计等多个开发阶段的详细规划和说明。
PICO4开发实战一:节奏光剑(VR)(需求文档)
|
编解码 芯片
实战贴:开源GUI STemWin在小熊派上的移植(显示很漂亮、很细腻,棒!)
实战贴:开源GUI STemWin在小熊派上的移植(显示很漂亮、很细腻,棒!)
425 2
|
存储 编解码 芯片
聊聊身边的嵌入式,靓丽的LED广告屏
聊聊身边的嵌入式,靓丽的LED广告屏
|
存储 人工智能 JavaScript
RISC-V大赛开发套件详解(五):D1哪吒开发板Haas-UI视频播放
RISC-V大赛开发套件详解(五):D1哪吒开发板Haas-UI视频播放
546 1
RISC-V大赛开发套件详解(五):D1哪吒开发板Haas-UI视频播放
|
传感器 网络协议 物联网
应用实战精解系列(二十):RVB2601之YoC系统
应用实战精解系列(二十):RVB2601之YoC系统
510 0
|
编解码 C语言 开发者
应用实战精解系列(十五):基于RVB2601移植U8g2图形库
应用实战精解系列(十五):基于RVB2601移植U8g2图形库
873 0
应用实战精解系列(十五):基于RVB2601移植U8g2图形库
|
程序员 iOS开发
LED 闪字小风扇,告白神器? | 酷玩精选
这是一个便携小风扇,产自深圳。 它的特点是可以在扇页上显示文字,可以显示多个中文汉字。
197 0
LED 闪字小风扇,告白神器? | 酷玩精选
|
物联网 芯片 开发者
RVB2601应用开发实战系列二: 跑马灯实例教程
技术解码栏目:是面向开发者详细解读芯片开放社区(OCC)上关于处理器、芯片、基础软件平台、集成开发环境及应用开发平台的相关技术,方便开发者学习及快速上手,提升开发效率。
158 0
RVB2601应用开发实战系列二: 跑马灯实例教程
|
物联网 开发工具 芯片
直播预告 | 玄铁开源E906 RVB2601开发板应用与实战
12月1日,锁定OCC直播间,与平头哥技术专家一起玩转RISC-V生态开发板
495 0
直播预告 | 玄铁开源E906 RVB2601开发板应用与实战

热门文章

最新文章