0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【RTT大赛作品连载】AB32VG1评估板到货控制彩灯测试

磐石90 2021-11-07 19:39 次阅读

上次发布了一篇文章(【RTT大赛作品连载】AB32VG1评估板到货点灯测试-电子发烧友网 (elecfans.com)),解决很多爱好者从在RT-ThreadStudio新建项目到对应开发配置及下载等各部分环节的问题!得到了很多爱好者的认可!

poYBAGGHrWyASMyOAAYobxoiuxI615.png

哈哈,先晒点赞的!

pYYBAGGHrb-ACM6mAAX42sJaxqw946.png

重要的是帮好多爱好者解决了实际问题!

接下来看看在如何AB32VG1评估板控制彩灯!

在RT-ThreadStudio新建项目到对应开发配置及下载及验证测试!!!

还是详细点!!!用截图-》

新建项目!

poYBAGGHrseAOHNcAAFyO6pqkpc957.png


poYBAGGHr8KAILxwAAFBOz6cLlg570.png

点完成,新建就好了!

接下来是这次会用的软件包设置!!!

poYBAGGHsL2AUAC8AAHa1S9PV8Y803.png

设置好后点关闭,会提示保存设置选项,点保存即可!

接下来会用到这几IO!如图

pYYBAGGHsdWAOYclAA9a6ZVbpp4963.png

软件代码内容暂时直接写在main函数文件里!!!

如图

具体内容如下:

#include
#include "board.h"
#include
#define BUTTON_PIN_0 rt_pin_get("PF.0")//control timeDelay
#define BUTTON_PIN_1 rt_pin_get("PF.1")//control colorLed mode
uint32_t delayTime = 1;
uint32_t state = 0;
uint32_t cnt_0 = 1;
static struct button btn_0;
static struct button btn_1;

static uint8_t button_read_pin_0(void)
{
return rt_pin_read(BUTTON_PIN_0);
}
static uint8_t button_read_pin_1(void)
{
return rt_pin_read(BUTTON_PIN_1);
}

static void button_0_callback(void* btn)
{
uint32_t btn_event_val;
btn_event_val = get_button_event((struct button*)btn);
switch (btn_event_val)
{
case SINGLE_CLICK:
cnt_0++;
delayTime = cnt_0 * 200;
if (cnt_0 == 10)
{
cnt_0 = 1;
}
rt_kprintf("button 0 single click\ndelayTime=%d\n", delayTime);
break;
case DOUBLE_CLICK:
if (cnt_0 > 1)
{
cnt_0--;
}
delayTime = cnt_0 * 200;
rt_kprintf("button 0 double click\ndelayTime=%d\n", delayTime);
break;

case LONG_PRESS_START:
rt_kprintf("button 0 long press start\n");
break;
case LONG_PRESS_HOLD:
rt_kprintf("button 0 long press hold\n");
break;
}
}
static void button_1_callback(void* btn)
{
uint32_t btn_event_val;
btn_event_val = get_button_event((struct button*)btn);
switch (btn_event_val)
{
case SINGLE_CLICK:
state = !state;
if (state == 0) {
rt_kprintf("one color\n");
}
else {
rt_kprintf("more color\n");
}
rt_kprintf("button 1 single click\n");
break;
case DOUBLE_CLICK:
rt_kprintf("more color\n");
rt_kprintf("button 1 single click\n");
default:
break;
}
}
static void btn_thread_entry(void* p)
{
while (1)
{
/* 5ms */
rt_thread_delay(RT_TICK_PER_SECOND / 200);
button_ticks();
}
}
static int multi_button_test(void)
{
rt_thread_t thread = RT_NULL;
/* Create background ticks thread */
thread = rt_thread_create("btn", btn_thread_entry, RT_NULL, 1024, 10, 10);
if (thread == RT_NULL)
{
return RT_ERROR;
}
rt_thread_startup(thread);
/* low level drive */
rt_pin_mode(BUTTON_PIN_0, PIN_MODE_INPUT_PULLUP);
button_init(&btn_0, button_read_pin_0, PIN_LOW);
button_attach(&btn_0, SINGLE_CLICK, button_0_callback);
button_attach(&btn_0, DOUBLE_CLICK, button_0_callback);
button_attach(&btn_0, LONG_PRESS_START, button_0_callback);
button_attach(&btn_0, LONG_PRESS_HOLD, button_0_callback);
button_start(&btn_0);

rt_pin_mode(BUTTON_PIN_1, PIN_MODE_INPUT_PULLUP);
button_init(&btn_1, button_read_pin_1, PIN_LOW);
button_attach(&btn_1, SINGLE_CLICK, button_1_callback);
button_attach(&btn_1, DOUBLE_CLICK, button_1_callback);
button_attach(&btn_1, LONG_PRESS_START, button_1_callback);
button_attach(&btn_1, LONG_PRESS_HOLD, button_1_callback);
button_start(&btn_1);
return RT_EOK;
}
INIT_APP_EXPORT(multi_button_test);

int main(void)
{
uint32_t cnt = 0;
rt_kprintf("Hello, world11\n");
uint8_t pin = rt_pin_get("PE.1");
rt_pin_mode(pin, PIN_MODE_OUTPUT);
uint8_t pin1 = rt_pin_get("PE.4");
rt_pin_mode(pin1, PIN_MODE_OUTPUT);
uint8_t pin2 = rt_pin_get("PA.1");
rt_pin_mode(pin2, PIN_MODE_OUTPUT);
while (1)
{
if (cnt % 8 == 0)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_HIGH);
}
if (cnt % 8 == 1)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_HIGH);
}
if (cnt % 8 == 2)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 3)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_HIGH);
}
if (cnt % 8 == 4)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 5)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 6)
{
rt_pin_write(pin, PIN_LOW);
rt_pin_write(pin1, PIN_LOW);
rt_pin_write(pin2, PIN_LOW);
}
if (cnt % 8 == 7)
{
rt_pin_write(pin, PIN_HIGH);
rt_pin_write(pin1, PIN_HIGH);
rt_pin_write(pin2, PIN_HIGH);
}
if (state == 1)
cnt++;
rt_thread_mdelay(delayTime);
}
}

编译好,下载验证如下!

poYBAGGHs9CAVGLXAAC80dTZHUo405.png

验证OK!

其实还可以在此基础上,让ColorLed'更好玩,喜欢的爱好者可以试试让它更炫酷!!!

最后,看到上一篇阅读量破2100了(【RTT大赛作品连载】AB32VG1评估板到货点灯测试-电子发烧友网 (elecfans.com))

很高兴!!!大家一起加油!!!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22351

    浏览量

    645542
  • RTOS
    +关注

    关注

    20

    文章

    765

    浏览量

    118678
  • 开发板
    +关注

    关注

    25

    文章

    4370

    浏览量

    93434
  • RT-Thread
    +关注

    关注

    31

    文章

    1131

    浏览量

    38817
  • 中科蓝讯
    +关注

    关注

    8

    文章

    46

    浏览量

    9616
收藏 人收藏

    评论

    相关推荐

    大功率二极管晶闸管知识连载——控制特性

    大功率二极管晶闸管知识连载——控制特性
    的头像 发表于 12-14 17:09 261次阅读
    大功率二极管晶闸管知识<b class='flag-5'>连载</b>——<b class='flag-5'>控制</b>特性

    【每周一练】盘古1K开发 练习二:按键控制彩灯实验

    实验目的 1 设计 8 种彩灯效果, 可通过按键切换。 2 选择一个按键作为控制输入, 按下一次换一种显示效果, 在 8 种效果中循环。 实验要求 1、 实验平台: MES2KG 开发
    发表于 12-09 14:55

    【每周一练】+盘古1K开发+键盘控制彩灯+硬件约束改变按键

    感谢发烧友爱好者和小眼睛科技公司提供的FPGA测试机会。在上一次的测试中实现了开发环境建立和8个LED的流水灯效果,今天来完成第2个测试。这次的目的是设计 8 种彩灯效果,选择一个按键
    发表于 11-29 21:01

    彩灯控制电路的设计与制作

    让自己学号的后2位编码后点亮相应的灯,能实现循环左、右移,按键控制,同时按键控制彩灯亮灭速度。
    的头像 发表于 08-25 17:16 1670次阅读
    <b class='flag-5'>彩灯</b><b class='flag-5'>控制</b>电路的设计与制作

    【社区工程师专题系列第七期】嵌入式工程师离不开技术创新——张海良

    应用设计大赛一个桌面智能坞小工具 项目简介 很荣幸能申请到AB32VG1开发参加这次RTT的创新大赛,这个芯片的功能很强大。我基于这个开发
    发表于 08-11 15:32

    【资料分享】NXP i.MX 8M Mini评估测试手册(1

    本帖最后由 Tronlong创龙科技 于 2023-6-15 14:33 编辑 目录1 评估快速测试1.1系统启动测试1.2文件传送
    发表于 06-15 14:32

    【资料分享】全志科技A40i评估测试手册(1

    本帖最后由 Tronlong创龙科技 于 2023-6-14 15:57 编辑 目 录1 评估快速测试1.1系统启动测试1.2文件传
    发表于 06-14 15:49

    恩智浦NXP i.MX 6ULL评估测试手册(中)

    软件。本文主要提供评估的硬件资源测试方法。无特殊说明情况下,默认使用USB TO UART1作为调试串口,使用Linux系统启动卡(SD启动模式)启动系统,通过路由器与PC机进行网络
    发表于 06-14 14:25

    恩智浦NXP i.MX 6ULL评估测试手册(上)

    串口调试终端、VMware虚拟机等相关软件。本文主要提供评估的硬件资源测试方法。无特殊说明情况下,默认使用USB TO UART1作为调试串口,使用Linux系统启动卡(SD启动模式
    发表于 06-14 09:45

    【社区工程师专题系列第二期】电子工程师需要在参赛中历练成长——林宏华

    开发的语音播放功能; 3、基于Node-Red的串口功能与AB32VG1通讯; 4、连接腾讯云的Explorer平台; 5、腾讯连连公众号接收云平报警信息; 6、门窗检测开关。 硬件说明 因为官方提供了
    发表于 06-13 15:26

    报名开启!开放原子开源大赛OpenHarmony创新赛来啦!

    流程 4月19日:OpenHarmony开发者大会上大赛发布,启动报名 4月19日至9月30日:参赛者在此期间内提交作品提案,通过后完成作品开发,按照提交规则提交作品。 10月
    发表于 05-17 16:52

    嵌入式工业开发基础测试手册——基于NXP iMX6ULL开发1

    LED2灭Target# echo 1 &gt; /sys/class/leds/user-led1/brightness //控制LED2亮 图 22按键测试用户输入按键
    发表于 05-03 22:41

    使用S32K3X4EVB-T172评估进行测试,请问该评估支持多少个UART外设?

    你好!我们正在考虑使用 S32K3X4EVB-T172 评估进行测试,以开发定制汽车控制器。该评估
    发表于 04-06 06:29

    基于AB32vg1板子创建的工程加载DMA驱动后编译报错怎么办?

    基于AB32vg1板子创建的工程加载DMA驱动后编译报错unknown type name 'DMA_HandleTypeDef'../libraries/hal_drivers
    发表于 04-03 16:02

    彩灯控制电路的设计与制作

    1 整机设计 1.1 设计要求 (1)设置外部操作开关,它具有控制彩灯亮点的右移、左移、全亮及全灭等功能; (2)彩灯亮点移动时间间隔取1秒; (3)彩灯
    发表于 04-03 09:28 4次下载