2519|7

2549

帖子

0

TA的资源

五彩晶圆(初级)

楼主
 

【中科蓝讯AB32VG1 RISC-V板“碰上”RTT测评】二:按键控制led闪烁 [复制链接]

  本帖最后由 数码小叶 于 2021-4-7 21:28 编辑

对于基础的led、按键这些外设,可以用rt_thread抽象的pin设备,在I/O设备模型中,rt-thread已经处理好了不同硬件的底层部分,用户直接专注于上层应用。在pin设备中,rt-thread给出了六个设备管理接口函数来访问和操作 GPIO资源

 

对于目前的AB32VG1 RISC-V开发板,rt-thread的支持情况如下(ADC\RTC最新包已经支持)

 

但是实际测试,对于GPIO的中断操作,目前还是不支持的,所以按键还是只能用扫描的方式进行。

开发板连接了三个按键,S1、S2、S3,S1作为复位按键,实际用户可操作的就S2和S3了,S4没有焊接,焊接后可以使用。

 

首先,新建一个按键工程,工程实现效果是用S3点亮led,S2熄灭led

 

然后在工程中新建两个文件,key_led.h\key_led.c,再建一个线程,负责按键扫描处理。在key_led.c中编写线程入口函数和启动线程

void key_led_entry(void *parameter)
{
   while(1)
   {
        if(rt_pin_read(key_s3)==0)
        {
            rt_thread_mdelay(2);
            if(rt_pin_read(key_s3)==0)
            {
                led_state =1;
            }
        }

        if(rt_pin_read(key_s2)==0)
        {
            rt_thread_mdelay(2);
            if(rt_pin_read(key_s2)==0)
            {
                led_state =0;
            }
        }
        rt_thread_mdelay(20);
   }
}

 

void key_led(void)
{
    tid_key = rt_thread_create("key_led",
                                key_led_entry,
                                RT_NULL,
                                THREAD_STACK_SIZE,
                                THREAD_PRIORITY,
                                THREAD_TIMESLICE);

    if (tid_key != RT_NULL)
        rt_thread_startup(tid_key);
}

 

这里的THREAD_STACK_SIZE不知道设置多少,可以随便设置一个,最后根据实际占用的大小再来调整。

 

程序下载完成后,可以看到线程已经成功运行,并且可以看到线程栈的利用率

这里占用的73%是调整后的效果,算是比较合适的了

 

按键控制LED亮灭效果,按键没有抖动。虽然不是利用中断方式,但是是独立的线程,相比裸机程序,程序的执行效率要高很多,程序不存在死等的资源浪费。

 

 

实现了按键控制led开关,还可以很容易的实现按键控制闪烁频率,S3使闪烁变慢,S2使闪烁频变快

 

最新回复

谢谢分享!   详情 回复 发表于 2021-4-8 22:12
点赞 关注
 
 

回复
举报

9791

帖子

24

TA的资源

版主

沙发
 

新建工程用的是什么工具?

点评

已知的软件只有RT-Thread Studio一个支持这个芯片  详情 回复 发表于 2021-4-8 08:40
 
 
 

回复

6802

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 

现在这个GPIO的中断操作还不支持么

点评

因为这个片子还没完全适配完rt-thread  详情 回复 发表于 2021-4-8 08:42
 
 
 

回复

2549

帖子

0

TA的资源

五彩晶圆(初级)

4
 
littleshrimp 发表于 2021-4-7 22:14 新建工程用的是什么工具?

已知的软件只有RT-Thread Studio一个支持这个芯片

点评

RT-Thread Studio用着怎么样?看你的图片好像生成例程挺方便的。  详情 回复 发表于 2021-4-8 10:26
 
 
 

回复

2549

帖子

0

TA的资源

五彩晶圆(初级)

5
 
Jacktang 发表于 2021-4-7 22:20 现在这个GPIO的中断操作还不支持么

因为这个片子还没完全适配完rt-thread

 
 
 

回复

9791

帖子

24

TA的资源

版主

6
 
数码小叶 发表于 2021-4-8 08:40 已知的软件只有RT-Thread Studio一个支持这个芯片

RT-Thread Studio用着怎么样?看你的图片好像生成例程挺方便的。

点评

要是熟悉 eclipse,那这个软件分分钟就上手了。使用感受么。。。就是把以前rt-thread 的ENV、SCons集成到图形窗口了。省去了芯片级的移植,直接创建。但是还是习惯了keil的代码组织结构。  详情 回复 发表于 2021-4-8 10:40
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 
 

回复

2549

帖子

0

TA的资源

五彩晶圆(初级)

7
 
littleshrimp 发表于 2021-4-8 10:26 RT-Thread Studio用着怎么样?看你的图片好像生成例程挺方便的。

要是熟悉 eclipse,那这个软件分分钟就上手了。使用感受么。。。就是把以前rt-thread 的ENV、SCons集成到图形窗口了。省去了芯片级的移植,直接创建。但是还是习惯了keil的代码组织结构。

 
 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

8
 

谢谢分享!

个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表