essai de commande RGB
Fork of PwmOut_HelloWorld_WIZwiki-W7500 by
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #if defined(TARGET_WIZwiki_W7500) 00003 Serial pc(USBTX, USBRX); // tx, rx 00004 /* W7500 00005 LED1 = LED_RED = LEDR = PC_8 00006 LED2 = LED_GREEN = LEDG = PC_9 00007 LED3 = LED_BLUE = LEDB = PC_5 00008 LED4 = LED_BLUE 00009 */ 00010 DigitalOut red(LED_RED); 00011 DigitalOut green(LED_GREEN); 00012 DigitalOut blue(LED_BLUE); 00013 #endif 00014 00015 #define LED_ON 0 00016 #define LED_OFF 1 00017 00018 #define _WHITE_ 0xFFFFFF //9 00019 #define _PURPLE_ 0xFF00FF //7 00020 #define _BLUE_ 0x0000FF //6 00021 #define _CYAN_ 0x00FFFF //55 00022 #define _GREEN_ 0x00FF00 //5 00023 #define _YELLOW_ 0xFFFF00 //4 00024 #define _ORANGE_ 0x10FF00 //3 00025 #define _RED_ 0xFF0000 //2 00026 #define _BLACK_ 0x000000 //0 00027 00028 Ticker RGB_led_ticker; 00029 00030 int j_color = 0; 00031 int r_value = 0; 00032 int g_value = 0; 00033 int b_value = 0; 00034 00035 void RGB_led() 00036 { 00037 ++j_color; 00038 if(j_color >= 256) j_color = 0; 00039 00040 if(r_value <= j_color) red = LED_ON; 00041 else red = LED_OFF; 00042 00043 if(g_value <= j_color) green = LED_ON; 00044 else green = LED_OFF; 00045 00046 if(b_value <= j_color) blue = LED_ON; 00047 else blue = LED_OFF; 00048 } 00049 00050 void RGB_COLOR(int r, int g, int b) 00051 { 00052 r_value = 255 - r; 00053 g_value = 255 - g; 00054 b_value = 255 - b; 00055 /* 00056 if(r_value<0) r = 0; 00057 if(r_value>255) r = 255; 00058 00059 if(g_value<0) g = 0; 00060 if(g_value>255) g = 255; 00061 00062 if(b_value<0) b = 0; 00063 if(b_value>255) b = 255; 00064 */ 00065 } 00066 00067 void init_rgb_color(void) 00068 { 00069 RGB_led_ticker.attach(&RGB_led, 0.01); 00070 } 00071 00072 void COLOR(int c) 00073 { 00074 switch(c) 00075 { 00076 case _WHITE_: 00077 //red = LED_ON, green = LED_ON, blue = LED_ON; 00078 RGB_COLOR(255, 255, 255); 00079 break; 00080 00081 case _PURPLE_: 00082 //red = LED_ON, green = LED_OFF, blue = LED_ON; 00083 RGB_COLOR(255, 0, 255); 00084 break; 00085 00086 case _BLUE_: 00087 //red = LED_OFF, green = LED_OFF, blue = LED_ON; 00088 RGB_COLOR(0, 0, 255); 00089 break; 00090 00091 case _CYAN_: 00092 //red = LED_OFF, green = LED_ON, blue = LED_ON; 00093 RGB_COLOR(0, 255, 255); 00094 break; 00095 00096 case _GREEN_: 00097 //red = LED_OFF, green = LED_ON, blue = LED_OFF; 00098 RGB_COLOR(0, 255, 0); 00099 break; 00100 00101 case _YELLOW_: 00102 //red = LED_ON, green = LED_ON, blue = LED_OFF; 00103 RGB_COLOR(255, 255, 0); 00104 break; 00105 /* 00106 case _ORANGE_: 00107 RGB_COLOR(80, 80, 0); 00108 break; 00109 */ 00110 case _RED_: 00111 //red = LED_ON, green = LED_OFF, blue = LED_OFF; 00112 RGB_COLOR(255, 0, 0); 00113 break; 00114 00115 case _BLACK_: 00116 default: 00117 //red = LED_OFF, green = LED_OFF, blue = LED_OFF; 00118 RGB_COLOR(0, 0, 0); 00119 } 00120 } 00121 00122 int i; 00123 00124 int main() 00125 { 00126 // Serial port configuration (valeurs par defaut) : 9600 baud, 8-bit data, no parity, stop bit 00127 pc.baud(9600); 00128 pc.format(8, SerialBase::None, 1); 00129 00130 pc.printf("\n\rHello World!\n\r"); 00131 init_rgb_color(); 00132 /* 00133 while(1000) 00134 { 00135 for (i=1; i<7; i++) 00136 { 00137 red = i & 1; 00138 blue = i & 2; 00139 green = i & 4; 00140 wait(0.2); 00141 } 00142 } 00143 */ 00144 COLOR(_BLACK_); 00145 pc.printf("\n\r_BLACK_\n\r"); 00146 wait(5.0); 00147 COLOR(_RED_); 00148 pc.printf("\n\r_RED_\n\r"); 00149 wait(5.0); 00150 /*COLOR(_ORANGE_); 00151 pc.printf("\n\r_ORANGE_\n\r");*/ 00152 wait(5.0); 00153 COLOR(_YELLOW_); 00154 pc.printf("\n\r_YELLOW_\n\r"); 00155 wait(5.0); 00156 COLOR(_GREEN_); 00157 pc.printf("\n\r_GREEN_\n\r"); 00158 wait(5.0); 00159 COLOR(_CYAN_); 00160 pc.printf("\n\r_CYAN_\n\r"); 00161 wait(5.0); 00162 COLOR(_BLUE_); 00163 pc.printf("\n\r_BLUE_\n\r"); 00164 wait(5.0); 00165 COLOR(_PURPLE_); 00166 pc.printf("\n\rH_PURPLE_\n\r"); 00167 wait(5.0); 00168 COLOR(_WHITE_); 00169 pc.printf("\n\r_WHITE_\n\r"); 00170 wait(5.0); 00171 }
Generated on Tue Jul 12 2022 18:09:57 by 1.7.2