essai de commande RGB

Dependencies:   mbed-src

Fork of PwmOut_HelloWorld_WIZwiki-W7500 by WIZnet

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }