【MiCOKit试用体验】MICOKIT的呼吸三色LED - 问答 - 电子威廉希尔官方网站 论坛 - 最好最受欢迎电子论坛!

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

GalaIO ( 楼主 ) 2015-9-27 13:44:03  只看该作者 倒序浏览
本帖最后由 GalaIO 于 2015-9-27 13:46 编辑 3 T, O+ y: X( m% s
+ @/ V1 a4 `; m/ }8 }
     上次的帖子简单介绍了MICOKIT的调试环境和使用KEIL的基本开发流程以及简单开发框架,下载我们对MICO的编程框架有一定认识,值得一提是,在MICO发布的sdk中,有一个demo的文件夹,里面有好多的现成例子,可以知道我们使用MICO的外设资源。位置如下。+ \! V, b$ _  B3 j9 U. x
% G3 u: a9 h4 Z+ y" C9 v( Y0 D  M
下图是MICO给出的RGB_LED的原理图和简单时序: : f: C! ]) r9 i; J, @
如下是一个简单的使用rgb_led的例子。, ]/ }  t2 S% m' J9 G+ j- M
  1. " \3 m/ ^3 H% n5 T
#include "MICO.h"
#include "micokit_ext.h"

- j7 r$ O( ^! z0 @( K8 c: Q" P% f
  • #define ext_rgb_led_log(M, ...) custom_log("EXT", M, ##__VA_ARGS__)

    $ ^5 {; r2 {; \3 d
  • 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);
      }
    }
  • 复制代码

    5 b6 ^  X. n$ _6 [
    8 \; r( K6 S9 c
    ) b7 v0 q  Q' t; G! q4 ?led初始化:# T0 X# l; y, h; g+ J0 t1 u
    1. /*init RGB LED(P9813)*/
    复制代码
    led的RGB颜色配置:  r* h/ U% x, R" `7 o+ j! b
    1. /*open red led,#FF0000*
    复制代码
    如上的函数,传入RGB颜色模型的三个值,对于RGB模型来说,RGB模型是由真实的人眼颜色匹配实验得出的模型,RGB分别表示那三个固定波长的光的份量。RGB是基于色光混合的原理设计的,是一种以硬件为导向的色彩模型,它描述了显示器的电子枪打在Red红、Green绿、Blue蓝三色发光极上的显色方式。当红绿蓝三色光的亮度均为最大值(255)的时候,屏幕上重现的颜色就是最亮的白色,都为0的时候,结果就是黑色。
    0 d* c6 o5 u- @6 k如果想要得出刚才提到的“海棠红”,我们就要把红光调到最亮,把绿光的亮度调到1/5左右,再把蓝光的亮度调到1/3左右,如下图:* d2 x8 ?5 Z9 L3 s' a

    8 t2 O4 [/ C) U1 ~- ~这是我在互联网上找到的颜色,都比较常用,一共有200多种颜色。( ]' N$ |' S7 G) O% L+ {- H+ q
    , _: D% g! o- ?7 G; J* V! f% J2 {
    ( d" w% c( i: A; ~
    然后把他们生成代码了。
    . m8 j3 q  n' V/ @" ^/ c! M3 E* B" }& N
    4 X! R# c, Z* P! z/ T# _3 g5 ?% R3 n
    ( h3 j. e0 D/ p% d

      c4 B- Z% s* O( N
    % J% N8 c9 M: l: `; C2 C现在我们就可以用他们来生成各种颜色了。- p* r+ |6 N+ |" u% W
    5 D/ ^/ D' u& G9 H
    / i- O5 w' P1 O6 |# M
    最后,通过修改RGB的某一分量,然后通过渐变方式就获得呼吸灯了哦~~相当绚丽~~3 F; t* d" @$ \# Q$ Y; k; f
    2 A6 R5 v: W. [$ u, K6 E4 K
    6 G$ x- K! w1 ~  @' a5 ?
    ' p1 Y8 j3 f$ }7 _3 h. C

    0个回复

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

    本版积分规则


    关闭

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

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

    GMT+8, 2025-2-13 22:08 , Processed in 0.472251 second(s), Total 52, Slave 36 queries .

    Powered by 电子发烧友网

    © 2015 bbs.elecfans.com

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