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

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

GalaIO ( 楼主 ) 2015-9-27 13:44:03  只看该作者 倒序浏览
本帖最后由 GalaIO 于 2015-9-27 13:46 编辑 ! t0 N  N# P5 Z
. b. k- r  U; t* |# w; x1 X
     上次的帖子简单介绍了MICOKIT的调试环境和使用KEIL的基本开发流程以及简单开发框架,下载我们对MICO的编程框架有一定认识,值得一提是,在MICO发布的sdk中,有一个demo的文件夹,里面有好多的现成例子,可以知道我们使用MICO的外设资源。位置如下。) y& ]7 O8 R" P" g2 |
. M3 |4 l% g5 {7 I
下图是MICO给出的RGB_LED的原理图和简单时序: 7 m# b/ ^2 ]5 B6 B
如下是一个简单的使用rgb_led的例子。/ V+ I1 o' u: [4 A( N1 w

  1. % C; I8 n# @$ P* e4 L
#include "MICO.h"
#include "micokit_ext.h"

3 |. n) c1 D* c0 L8 G9 q
  • #define ext_rgb_led_log(M, ...) custom_log("EXT", M, ##__VA_ARGS__)
    , g- o" |( {/ H: l
  • 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);
      }
    }
  • 复制代码

    6 T$ E. ~+ L$ {) J
    . W! f) ~2 b0 w3 z8 s- @3 n$ K, h$ W- O% k* P5 K( X' v4 ~# I
    led初始化:9 ~5 h8 y  b- o' C9 p6 B- v% Q( k- v
    1. /*init RGB LED(P9813)*/
    复制代码
    led的RGB颜色配置:
    ) z% Y1 C$ z) J  T; D
    1. /*open red led,#FF0000*
    复制代码
    如上的函数,传入RGB颜色模型的三个值,对于RGB模型来说,RGB模型是由真实的人眼颜色匹配实验得出的模型,RGB分别表示那三个固定波长的光的份量。RGB是基于色光混合的原理设计的,是一种以硬件为导向的色彩模型,它描述了显示器的电子枪打在Red红、Green绿、Blue蓝三色发光极上的显色方式。当红绿蓝三色光的亮度均为最大值(255)的时候,屏幕上重现的颜色就是最亮的白色,都为0的时候,结果就是黑色。5 M2 V" T2 S! m" J9 G6 u6 q
    如果想要得出刚才提到的“海棠红”,我们就要把红光调到最亮,把绿光的亮度调到1/5左右,再把蓝光的亮度调到1/3左右,如下图:  D+ [; B# Q' O" I3 S4 N0 ]
    ; i( k: B/ w2 w( `: N4 o! |+ E
    这是我在互联网上找到的颜色,都比较常用,一共有200多种颜色。
    # C, x% K2 @% g $ `+ R+ x  l4 ?  ~( e; i; q% T9 K
    , J" F( F9 n, r* c
    然后把他们生成代码了。
    $ [5 e4 y! G# m) K4 r% u' ? 4 f* [9 [0 s( F; j) z( u# R/ u, a
      S9 j( m2 o" z. u. I

    $ N6 @* V  ~% N7 y( o! {+ u& F; Z4 ]) a  n0 d: C  D  k3 m

    ; P1 D/ R0 {* W现在我们就可以用他们来生成各种颜色了。9 c( J$ K$ X% D0 P8 D; |
    3 v# S8 R. U1 X7 r% e
    + e' [0 S: Z. G" [, {; q+ x; L- K
    最后,通过修改RGB的某一分量,然后通过渐变方式就获得呼吸灯了哦~~相当绚丽~~
    ( t& F- `& U1 |0 N6 J. q. O  W/ z/ M/ S
    + x, f1 \; L; E, a; G0 u

    9 M8 g$ N, b: v$ f# T5 q5 N

    0个回复

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

    本版积分规则


    关闭

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

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

    GMT+8, 2024-9-27 19:30 , Processed in 0.374998 second(s), Total 38, Slave 28 queries .

    Powered by 电子发烧友网

    © 2015 bbs.elecfans.com

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