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

简介: 技术解码栏目:是面向开发者详细解读芯片开放社区(OCC)上关于处理器、芯片、基础软件平台、集成开发环境及应用开发平台的相关技术,方便开发者学习及快速上手,提升开发效率。

编辑语:

技术解码栏目:是面向开发者详细解读芯片开放社区(OCC)上关于处理器、芯片、基础软件平台、集成开发环境及应用开发平台的相关技术,方便开发者学习及快速上手,提升开发效率。

RVB2601是基于平头哥RISC-V生态芯片的开发套件,开发者基于RVB2601可进行端云一体的物联网应用开发及音频方案开发。上周向大家推荐了RVB2601应用开发实战系列一: Helloworld最小系统,本周我们将继续推荐RVB2601应用开发实战系列。今天为大家介绍如何基于RVB2601实现跑马灯例程。

一. 前言  

基于RVB2601的跑马灯程序是利用通过控制一颗RGB LED灯珠实现三色跑马灯效果。议在在看本文之前,先详细看下新手必看 | RVB2601开发板快速上手指南本例程名为ch2601_marquee_demo,可以通过集成开发环境剑池CDK下载获取相应资源。

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

image.png


三. 跑马灯开发

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通道以及占空比时间。

1. void led_pinmux_init()
2. {
3. csi_pin_set_mux(PA7, PA7_PWM_CH7);
4. csi_pin_set_mux(PA25, PA25_PWM_CH2);
5. csi_pin_set_mux(PA4, PA4_PWM_CH4);
6. ...
7. }
c
  • led_refresh

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

1. void led_refresh()
2. {
3. if (g_ctr == 3) {
4. g_ctr = 0;
5. }
6. if (g_ctr == 0)
7. {
8. csi_pwm_out_start(&r, 7 / 2);
9. csi_pwm_out_stop(&r, 2 / 2);
10. csi_pwm_out_stop(&r, 4 / 2);
11. 
12. }
13. else if (g_ctr == 1)
14. {
15. csi_pwm_out_start(&r, 2 / 2);
16. csi_pwm_out_stop(&r, 7 / 2);
17. csi_pwm_out_stop(&r, 4 / 2);
18. 
19. }
20. else //2
21. {
22. csi_pwm_out_start(&r, 4 / 2);
23. csi_pwm_out_stop(&r, 7 / 2);
24. csi_pwm_out_stop(&r, 2 / 2);
25. 
26. }
27. }
c
  • demo_task

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

1. static void demo_task(void *arg)
2. {
3. lv_init();
4. oled_init();
5. lable_test();
6. led_pinmux_init();
7. 
8. while (1)
9. {
10. lv_task_handler();
11. udelay(1000 * 1000);
12. lv_tick_inc(1);
13. led_refresh();
14. }
15. }
c

3.3. 编译运行

编译通过后,点击下载成功,复位运行。可看右下角的灯依次闪烁。参见如下视频演示

image.png


4. 总结

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


相关文章
|
5月前
|
前端开发 图形学
技术经验解读:【Unity3d游戏开发】UGUI插件入门之游戏菜单
技术经验解读:【Unity3d游戏开发】UGUI插件入门之游戏菜单
28 0
|
小程序 JavaScript 前端开发
微信小程序 | 酷炫时钟样式整理【附源码】
微信小程序 | 酷炫时钟样式整理【附源码】
506 0
微信小程序 | 酷炫时钟样式整理【附源码】
|
编解码 C语言 开发者
应用实战精解系列(十五):基于RVB2601移植U8g2图形库
应用实战精解系列(十五):基于RVB2601移植U8g2图形库
854 0
应用实战精解系列(十五):基于RVB2601移植U8g2图形库
HarmonyOS实战—实现跑马灯效果
HarmonyOS实战—实现跑马灯效果
280 0
HarmonyOS实战—实现跑马灯效果
RVB2601应用开发实战系列二: 跑马灯
基于RVB2601的跑马灯程序是利用通过控制一颗RGB LED灯珠实现三色跑马灯效果。 建议在在看本文之前,先详细看下RVB2601资源。本例程名为ch2601_marquee_demo,可以通过CDK直接从OCC拉取。
RVB2601应用开发实战系列二: 跑马灯
|
前端开发 图形学 atlas
Unity 优化之UGUI (2017年版【一】)
首先感谢UWA的公开课讲解,本文中的内容主要采集于UWA2017的公开课公开课中的优化点对于项目的帮助是不容小觑的~ 在去年观看uwa在直播公开课的时候,发现了多在自己使用ugui中使用不正确的地方,但是碍于项目工期比较紧张,并没有进行系统的整理,时...
1744 0
|
前端开发 图形学
Unity 之大屏幕多点触控插件 TouchScript 9.0 入门指南(上)
在端游上大家应该多数都使用过的EasyTouch插件,在EasyTouch 5.0.17 最新版本扩展方法中我有过简单的介绍,今天说一下另一款触摸插件,它非常适合做展示类大屏幕的多点触控TouchScript,在Unity上的AssetStore也是五...
3383 0
|
存储 人工智能 Windows
UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频
原文:UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频 从2017年11月开始,我们开始规划和开发全新的来画Pro,在12月23日的短视频峰会上推出了预览版供参会者体验,得到了很高的评价和关注度。
1375 0