【MiCOKit试用体验】MICOKIT的呼吸三色LED - 问答 - 电子技术论坛 - 最好最受欢迎电子论坛!

【MiCOKit试用体验】MICOKIT的呼吸三色LED

GalaIO ( 楼主 ) 2015-9-27 13:44:03  只看该作者 倒序浏览
本帖最后由 GalaIO 于 2015-9-27 13:46 编辑
" X+ J. I( Z% B) M
) K% W& O# m0 e' t. R, o     上次的帖子简单介绍了MICOKIT的调试环境和使用KEIL的基本开发流程以及简单开发框架,下载我们对MICO的编程框架有一定认识,值得一提是,在MICO发布的sdk中,有一个demo的文件夹,里面有好多的现成例子,可以知道我们使用MICO的外设资源。位置如下。
- B) @# b$ ^9 w2 K0 y/ T7 {( x, } 8 V& e7 D4 t$ @1 c
下图是MICO给出的RGB_LED的原理图和简单时序:
( A$ Y8 {" I3 m/ I2 e如下是一个简单的使用rgb_led的例子。
& ^7 d, W0 k# I) ]
  1. - W3 Z8 t, `# W7 Z7 k* }% k& b7 v
#include "MICO.h"
#include "micokit_ext.h"
. @( k! G% _6 y$ e
  • #define ext_rgb_led_log(M, ...) custom_log("EXT", M, ##__VA_ARGS__)
    6 @; t' I8 f0 Z% f8 k! f$ I& D% D5 {
  • int application_start( void )
    {
      ext_rgb_led_log("rgb led conrtol demo(RGB_MODE)");
      /*init RGB LED(P9813)*/
      rgb_led_init();
      while(1)
      {
        /*open red led,#FF0000*/
        rgb_led_open(255, 0, 0);
        mico_thread_sleep(1);
        /*open green led #00FF00*/
        rgb_led_open(0, 255, 0);
        mico_thread_sleep(1);
        /*open blue led,#0000FF*/
        rgb_led_open(0, 0, 255);
        mico_thread_sleep(1);
      }
    }
  • 复制代码

    , d) u: s7 L1 O0 F: b
    ' N0 n; e; t$ b, R9 m! y4 y; ?- Q' ^3 Q
    led初始化:$ k1 Z$ d7 s" V# S& T
    1. /*init RGB LED(P9813)*/
    复制代码
    led的RGB颜色配置:6 `4 P9 o9 d& S7 C5 c
    1. /*open red led,#FF0000*
    复制代码
    如上的函数,传入RGB颜色模型的三个值,对于RGB模型来说,RGB模型是由真实的人眼颜色匹配实验得出的模型,RGB分别表示那三个固定波长的光的份量。RGB是基于色光混合的原理设计的,是一种以硬件为导向的色彩模型,它描述了显示器的电子枪打在Red红、Green绿、Blue蓝三色发光极上的显色方式。当红绿蓝三色光的亮度均为最大值(255)的时候,屏幕上重现的颜色就是最亮的白色,都为0的时候,结果就是黑色。# ~& j) W' Y- V/ V2 l* d
    如果想要得出刚才提到的“海棠红”,我们就要把红光调到最亮,把绿光的亮度调到1/5左右,再把蓝光的亮度调到1/3左右,如下图:9 n. m  S' l6 n7 v7 s% i" ]

    5 c& j9 K1 `0 s# R& }1 v这是我在互联网上找到的颜色,都比较常用,一共有200多种颜色。, u# Z4 t$ {6 A0 ~
    ! ~. F+ b; j: @8 E5 c7 l

    7 [3 e" I+ p+ ^) i8 N8 `; x然后把他们生成代码了。9 s2 D2 x- N' B* l/ L

    4 }# Z) {( O( @+ W4 Y0 Y" B
    " p& o, [& g6 Z+ g' Z) O. B5 m+ H% a5 b- l8 Z% a! e8 z) I- f  q
    5 k+ Y' _6 }2 Q9 {' e# z

    " U2 g; f( t" M6 l8 q现在我们就可以用他们来生成各种颜色了。
    ) {  t: f7 B9 [4 Y8 ?
    6 b; B, q5 l! i0 {- \) Z4 t% v
    " x5 P4 \1 d  |) f/ v# W最后,通过修改RGB的某一分量,然后通过渐变方式就获得呼吸灯了哦~~相当绚丽~~' E# H& {$ d2 }+ A

    : J& G( E4 j! R) B
    7 a: N: I' R: d* h3 t2 V
    $ Z4 j3 l9 {6 N# J5 C

    0个回复

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

    本版积分规则


    关闭

    站长推荐上一条 /6 下一条

    小黑屋|手机版|Archiver|电子发烧友 ( 湘ICP备2023018690号 )

    GMT+8, 2024-11-21 01:35 , Processed in 0.562535 second(s), Total 55, Slave 38 queries .

    Powered by 电子发烧友网

    © 2015 bbs.elecfans.com

    微信扫描
    快速回复 返回顶部 返回列表