Rangel Alvarado
/
RGB_LED_7_Colors
RGB LED in FRDM-K64F
main.cpp@0:6927d79044c2, 2014-09-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |