RGB LED in FRDM-K64F

Dependencies:   mbed

Committer:
issaiass
Date:
Fri Sep 05 22:32:00 2014 +0000
Revision:
0:6927d79044c2
RGB Led Application, starter for freescale FRDM-K64F

Who changed what in which revision?

UserRevisionLine numberNew contents of line
issaiass 0:6927d79044c2 1 /*
issaiass 0:6927d79044c2 2 *******************************************************************************
issaiass 0:6927d79044c2 3 * HTTP://WWW.CERESCONTROLS.COM
issaiass 0:6927d79044c2 4 * PANAMÁ, REPÚBLICA DE PANAMÁ
issaiass 0:6927d79044c2 5 *
issaiass 0:6927d79044c2 6 * File : main.cpp
issaiass 0:6927d79044c2 7 * Programer(s) : Rangel Alvarado
issaiass 0:6927d79044c2 8 * Language : C/C++
issaiass 0:6927d79044c2 9 * Description : RGB Led Blinking using GPIO
issaiass 0:6927d79044c2 10 *
issaiass 0:6927d79044c2 11 * Notas : Using standard mbed classes to start in mbed and blink a RGB
issaiass 0:6927d79044c2 12 * led detailed on the manual below.
issaiass 0:6927d79044c2 13 * http://cache.freescale.com/files/32bit/doc/user_guide/FRDMK64FUG.pdf
issaiass 0:6927d79044c2 14 *
issaiass 0:6927d79044c2 15 *******************************************************************************
issaiass 0:6927d79044c2 16 */
issaiass 0:6927d79044c2 17
issaiass 0:6927d79044c2 18 #include "mbed.h" // mbed supported libraries
issaiass 0:6927d79044c2 19
issaiass 0:6927d79044c2 20 DigitalOut R(PTB22); // PTB22 = Red pin
issaiass 0:6927d79044c2 21 DigitalOut G(PTE26); // PTE26 = Green pin
issaiass 0:6927d79044c2 22 DigitalOut B(PTB21); // PTB21 = Blue pin
issaiass 0:6927d79044c2 23
issaiass 0:6927d79044c2 24 typedef unsigned char INT8U; // typedef of unsigned char
issaiass 0:6927d79044c2 25
issaiass 0:6927d79044c2 26 typedef union { // union for easy access of RGBLed
issaiass 0:6927d79044c2 27 INT8U RGB;
issaiass 0:6927d79044c2 28 struct {
issaiass 0:6927d79044c2 29 INT8U r :1;
issaiass 0:6927d79044c2 30 INT8U g :1;
issaiass 0:6927d79044c2 31 INT8U b :1;
issaiass 0:6927d79044c2 32 INT8U :1;
issaiass 0:6927d79044c2 33 INT8U :1;
issaiass 0:6927d79044c2 34 INT8U :1;
issaiass 0:6927d79044c2 35 INT8U :1;
issaiass 0:6927d79044c2 36 INT8U :1;
issaiass 0:6927d79044c2 37 } Bits;
issaiass 0:6927d79044c2 38 struct {
issaiass 0:6927d79044c2 39 INT8U RGB :3;
issaiass 0:6927d79044c2 40 INT8U :5;
issaiass 0:6927d79044c2 41 } MergedBits;
issaiass 0:6927d79044c2 42 } RGBLED;
issaiass 0:6927d79044c2 43
issaiass 0:6927d79044c2 44 // Main application
issaiass 0:6927d79044c2 45 int main(void)
issaiass 0:6927d79044c2 46 {
issaiass 0:6927d79044c2 47 char colors; // variable for color
issaiass 0:6927d79044c2 48 RGBLED RGBled; // structure for led
issaiass 0:6927d79044c2 49
issaiass 0:6927d79044c2 50
issaiass 0:6927d79044c2 51 RGBled.RGB = 0x00; // clean outputs
issaiass 0:6927d79044c2 52 while(1) {
issaiass 0:6927d79044c2 53 for(colors = 0x00; colors < 0x08; RGBled.RGB = colors++) {
issaiass 0:6927d79044c2 54 R = RGBled.Bits.r; // set red
issaiass 0:6927d79044c2 55 G = RGBled.Bits.g; // set green
issaiass 0:6927d79044c2 56 B = RGBled.Bits.b; // set blue
issaiass 0:6927d79044c2 57 wait(0.5); // software delay 0.5s
issaiass 0:6927d79044c2 58 }
issaiass 0:6927d79044c2 59 }
issaiass 0:6927d79044c2 60 return 0; // never pass here!!!
issaiass 0:6927d79044c2 61 }