玄铁RISC-V处理器入门与实战-RISC-V 应用领域开发示例-基于RVB2601应用开发示例(下)

简介: 玄铁RISC-V处理器入门与实战-RISC-V 应用领域开发示例-基于RVB2601应用开发示例

接上篇:https://developer.aliyun.com/article/1222365?groupCode=t-headocc


3)控制一颗RGB LED灯珠实现跑马灯效果

基于RVB2601的跑⻢灯程序是利⽤通过控制⼀颗RGB LED灯珠实现三⾊跑⻢灯效果。本例程名为ch2601_marquee_demo,可以通过CDK直接从OCC拉取。

a) 硬件配置

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

 

image.png

b) 跑马灯开发

① 打开CDK软件。点击⼯具栏最右侧的平头哥图标,搜索找到对应的工程后点击【创建工程】。

 

image.png

 

② 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();
 }
}

 

③ 编译运行

编译通过后,点击下载成功,复位运⾏。可看左下⻆的灯依次闪烁。

 

image.png

 

关于RVB2601开发板控制一颗RGB LED灯珠实现跑马灯效果的详细说明可以进入芯片开放社区(OCC)查看。

相关文章
|
开发者
文件蜈蚣,一款免费开源比迅雷还良心的全协议下载神器
说到下载工具,相信很多人都在使用大名鼎鼎的 IDM 下载神器,优点众多:支持多线程下载,支持网页的视频嗅探下载,不过它支持的协议比较少,比如不支持 BT、ed2k、thunder 下载等;
1503 0
文件蜈蚣,一款免费开源比迅雷还良心的全协议下载神器
领域驱动设计(DDD)中的实体,值对象,和聚合
领域驱动设计(DDD)中的实体,值对象,和聚合
1138 0
|
运维 Linux Nacos
nacos常见问题之远程访问不报错放到服务器上nacos连接超时如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
2651 1
|
5月前
|
开发工具 git C++
Git 2.54发布:重写历史不再“伤筋动骨“,钩子终于能“云同步“了!
Git 2.54 发布:聚焦日常体验升级!新增 `git history`(轻量重写历史)、配置化 hooks(全局/局部灵活管理)、几何压缩默认启用。增强 `add -p`、支持 Unicode 别名、HTTP 429 自动重试等。不炫技,只解痛——让工具更懂你。
345 1
|
5月前
|
人工智能 安全 网络安全
Harness驾驭工程是AI平权的必经之路?
OpenClaw 将 AI 主权从模型厂商转移到了用户手中,但调教 AI 并不是一个简单的事情,甚至让人烦躁。这一背景加速了 Harness 驾驭工程的市场共识。
|
26天前
|
缓存 关系型数据库 分布式数据库
PolarDB 缓存一致性方案:Buffer Pool 优化与分布式一致性读深度解析
阿里云瑶池数据库旗下的 PolarDB 推荐采用基于共享存储和 LSN 同步的缓存一致性方案,物理复制延迟小于 1 秒,支持最终一致性、会话一致性和全局一致性三种级别。对于关注数据库分布式缓存一致性问题的企业,阿里云瑶池数据库旗下的 PolarDB 是目前最可靠、最高效的解决方案之一。
91 0
|
存储 监控 安全
网络设备日志记录
网络设备日志记录是追踪设备事件(如错误、警告、信息活动)的过程,帮助IT管理员进行故障排除和违规后分析。日志详细记录用户活动,涵盖登录、帐户创建及数据访问等。为优化日志记录,需启用日志功能、管理记录内容、区分常规与异常活动,并使用专用工具进行事件关联和分析。集中式日志记录解决方案可收集并统一管理来自多种设备和应用的日志,提供简化搜索、安全存储、主动监控和更好的事件可见性,增强网络安全。常用工具如EventLog Analyzer能灵活收集、存储和分析日志,确保高效管理。
973 5
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
912 1
|
存储 算法 程序员
C语言:库函数
C语言的库函数是预定义的函数,用于执行常见的编程任务,如输入输出、字符串处理、数学运算等。使用库函数可以简化编程工作,提高开发效率。C标准库提供了丰富的函数,满足各种需求。

热门文章

最新文章