3199|5

1455

帖子

1

TA的资源

五彩晶圆(初级)

楼主
 

【AB32VG1开发板测评】RGB_LED的色彩变换显示 [复制链接]

 

AB32VG1开发板载有一个RGB_LED,其原理图见图1所示。

 

 

图1 RGB_LED电路连接

按照色彩叠加的原理,可以组合出黄色、亮蓝、粉色及白色。

实现色彩变换效果的程序如下:

int main(void)
{
    uint32_t cnt = 0;
    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);
    rt_pin_write(pin, PIN_HIGH);
    rt_pin_write(pin1, PIN_HIGH);
    rt_pin_write(pin2, PIN_HIGH);
    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);
        }
        cnt++;
        rt_thread_mdelay(1000);
    }
    return 0;
}

 

 

 

 

 

 

 

 

图2 演示效果图

最新回复

为啥pin脚不放三个相邻的好控制呀   详情 回复 发表于 2021-8-12 17:15
点赞 关注
 
 

回复
举报

1万

帖子

25

TA的资源

版主

沙发
 

效果不错,感觉程序可以优化一下,不用写8个if,根据cnt每个二进制位就可以设置LED状态,这样只需要3个if语句。

点评

有道理,回头试一下。  详情 回复 发表于 2021-8-12 14:28
有道理!  详情 回复 发表于 2021-8-12 11:50
 
 
 

回复

1412

帖子

3

TA的资源

版主

板凳
 
效果不错,感觉程序可以优化一下,不用写8个if,根据cnt每个二进制位就可以设置LED状态,这样只需要3个if语句。

有道理!
 
 
 

回复

1455

帖子

1

TA的资源

五彩晶圆(初级)

4
 
dcexpert 发表于 2021-8-12 09:37 效果不错,感觉程序可以优化一下,不用写8个if,根据cnt每个二进制位就可以设置LED状态,这样只需要3个if语 ...

有道理,回头试一下。

 
 
 

回复

7452

帖子

2

TA的资源

五彩晶圆(高级)

5
 

为啥pin脚不放三个相邻的好控制呀

点评

这个还真说不好,我想可能与Arduino接口的设计有关,PE1和PE4都在芯片的同侧,却与CLK和SDA相邻被分开了,而PA1可能是按Arduino接口分配好引脚后,为保持这3个引脚均是PWM引脚而选择的结果。我分析有这样的因素,不  详情 回复 发表于 2021-8-12 18:21
个人签名

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

 
 
 

回复

1455

帖子

1

TA的资源

五彩晶圆(初级)

6
 
freebsder 发表于 2021-8-12 17:15 为啥pin脚不放三个相邻的好控制呀

这个还真说不好,我想可能与Arduino接口的设计有关,PE1和PE4都在芯片的同侧,却与CLK和SDA相邻被分开了,而PA1可能是按Arduino接口分配好引脚后,为保持这3个引脚均是PWM引脚而选择的结果。我分析有这样的因素,不一定准确。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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