SHARE
TWEET

Untitled

a guest Jun 18th, 2019 79 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /************************LED POI (Beta)*******************************/
  2. // Name: Led POI
  3. // Frequency: 8 MHz
  4. // Chip: ATMega 8
  5. // Author: Valentin Kornienko
  6. // Last review: 20.07.16
  7. //25.06.16 Ïðîñòûå ýôôåêòû, ïî÷òè ãîîòîâ ñêåëåò
  8. //20.07.16 Ïåðâàÿ ãðóïïà ýôôåêòîâ ñ çàëèâî÷íûì öâåòîì
  9. //21.07.16 ÍÀÏÈÑÀÒÜ Ýôôåêòû ðàçáèòû íà äâå ãðóïïû(âðåìåííî íà äâå), äîáàâëåíî ïåðåêëþ÷åíèå ìåæäó ãðóïïàìè.
  10. //25.07.16 ÍÀÏÈÑÀÒÜ Îáðàáîòêà òðåõ íàæàòèé è äåìî-ðåæèì ñ ïåðåõîäîì âñåõ ýôôåêòîâ ïîî÷åðåäíî.
  11. // 03-04.08.16 ÍÀÏÈÑÀÒÜ Äåìî-ðåæèì ñ ïåðåòåêàíèåì ýôôåêòîâ îò íà÷àëà è äî êîíöà
  12.  
  13. /*********************************************************************/
  14.  
  15. /***************************DEFINE************************************/
  16. #define RED   PORTC5_bit
  17. #define GREEN PORTC4_bit
  18. #define BLUE  PORTC3_bit
  19. #define DELAY_TIME  10
  20. /*********************************************************************/
  21.  
  22.  
  23.  
  24. /*****************************Declare variables***********************/
  25. unsigned char Red = 255,   Green = 0,     Blue = 100;       //Ïåðåìåííûå, äëÿ èçìåíåíèÿ ñêâàæíîñòè ØÈÌ â ïðîãðàììå
  26. unsigned char Red_buf,   Green_buf,   Blue_buf;     //Ïåðåìåííûå, äëÿ áóôåðèçàöèè çíà÷åíèé ñêâàæíîñòè ØÈÌ
  27. unsigned char Counter;                            //Ïåðåìåííàÿ- ñ÷åò÷èê âûçîâîâ îáðàáîò÷èêà ïðåðûâàíèé
  28. unsigned char RB_Counter;                           //Äëÿ ðàáîòû â ðàäóãå
  29. unsigned char Trigger_Test;
  30. unsigned char Number_Effect;                                       //Íîìåð ýôôåêòà
  31. unsigned char Group; //Íîìåð ãðóïïû ýôôåêòîâ
  32. int System_Time;//Âðåìÿ âíóòðè ïîèíêè, ñ÷èòàåò âòîðîé òàéìåð.
  33. unsigned char  Autoslide;
  34. unsigned char First_Enter;
  35.  
  36. /**********************************************************************/
  37.  
  38. /***********BUTTON************/
  39.  
  40.  
  41. #define BUTTON_PIN  PINB2_bit    //Ïèí êíîïêè
  42. #define BT_SCAN_TIME  50  // Âðåìÿ ñêàíèðîâàíèÿ êíîïêè.  Òåñòèðîâàëîñü íà 100, â ïðèíöèïå- íåïëîõî, ïåðåêëþ÷àåòñÿ ñ çàäåðæêîé.
  43.  
  44.  struct button{                     //Ñòðóêòóðà ñîñòîÿíèÿ êíîïîê
  45.     unsigned button_1_click : 1;
  46.     unsigned button_2_click : 1;
  47.     unsigned button_3_click : 1;
  48.     unsigned button_long_click : 1 ;
  49. } button_bits_field;
  50.  
  51.  
  52. unsigned Buttons_Click = 0;//Ñ÷èòàåì êëèêè êîðîòêèå
  53. unsigned Buttons_Click_long = 0;//Ñ÷èòàåì êëèêè äëèííûå
  54. int Long_Press_bt_time = 0; //À òóò ó íàñ âðåìÿ ôèêñàöèèè äëèííîãî íàæàòèÿ
  55.  
  56.   //Ñêîëüêî æå ìû íàæàëè?
  57. void Button_Deshifr(void){
  58.     switch(Buttons_Click){
  59.         case 1:{
  60.             button_bits_field.button_1_click = 1;      //Ïåðåìåííóþ- ñîñòÿîíèå êíîïêè ïîäíÿëè ââåðõ
  61.             Buttons_Click = 0;                         //Îáíóëèëè êëèêëè
  62.              break;
  63.         }
  64.         case 2:{
  65.             button_bits_field.button_2_click = 1;        //Ñîñòÿîíèå êíîïêè - ââåðõ
  66.             Buttons_Click = 0;                         //Îáíóëèëè êëèëè
  67.  
  68.             break;
  69.         }
  70.         case 3:{
  71.             button_bits_field.button_3_click = 1;        //Ñîñòÿîíèå êíîïêè - ââåðõ
  72.             Buttons_Click = 0;                         //Îáíóëèëè êëèëè
  73.  
  74.             break;
  75.         }
  76.         default :{
  77.  
  78.             if(Buttons_Click == 0){    //Åñëè íå íàêëèêàëè
  79.  
  80.             }
  81.         break;
  82.    //Òóò çàêîí÷èëñÿ îòëàäî÷íûé ìîäóëü. Âñå ÷òî âûøå ìîæíî ñïîêîéíî çàêêîììåíòèòü è áóäåò ðàáîòàòü.
  83.         }
  84.     }
  85.     switch (buttons_click_long){
  86.         case 1: {
  87.             button_bits_field.button_long_click = 1;
  88.             break;
  89.         }
  90.     }
  91.     buttons_click = 0;   //È ñáðàñûâàåì êîë-âî êëèêîâ
  92.     buttons_click_long = 0; //Ñáðàñûâàåì êîë-âî äëèííûõ êëèêîâ
  93.  
  94. }
  95.  
  96.  
  97. void button_scan(void){
  98. #define Up 0           //Ñîñòîÿíèÿ àâòîìàòà. Ïî äåôîëòó ñòîèò íîëü.
  99. #define Down 1
  100. #define long_press 3
  101.  
  102. static Button_Time = 0; //Ñþäà ïèøåì ñêîëüêî ðàç ïðîøåë ñêàí êíîïîê.
  103. static Button_State = 0;  //Ñîñòîÿíèå Àâòîìàòà
  104.  
  105. Button_Time ++;  //Âðåìÿ ñêàíà êíîïêè.
  106.     switch(Button_State){
  107.         case Up:{
  108.             if (BUTTON_PIN == 0){               // Îïà! Íàæàëè!
  109.              Button_State = 1;                // Àâòîìàò Ââåðõ
  110.  
  111.              }
  112.              break;
  113.          }
  114.         case Down:{
  115.             if(BUTTON_PIN == 0){           //Íàæàòî, îêåé ñìîòðèì äàëüøå.
  116.                 if(17> long_press_bt_time){     //Íàæàòî ìåíüøå ÷åì äëèííîå? Åäåì äàëüøå.
  117.                   long_press_bt_time++;
  118.  
  119.                  }
  120.                 else {                // Äëèííîé íàæàòèå , çàôèêñèðîâàëè åãî.
  121.                     Button_State = 3; //Àâòîìàò â ñîñòîÿíèå äëèííîãî íàæàòèÿ
  122.                     long_press_bt_time = 0;     //Îáíóëèëè âðåìÿ ïîäñ÷åòà
  123.                      //Îòëàäî÷íûå ñîîáùåíèÿ
  124.  
  125.                 }
  126.              }
  127.                 else{                      //Åñëè îòïóñòèëè è íå äîøëè äî äëèííîãî ïî âðåìåíè
  128.                  Button_State = 0;             //Îáíóëèëè àâòîìàò
  129.                  long_press_bt_time =0;        //Îáíóëèëè âðåìÿ çàìåðà
  130.                  buttons_click ++;             //Óâåëè÷èëè ÷èñëî êëèêîâ
  131.                 }
  132.             break;
  133.          }
  134.  
  135.         case long_press:{                                    //Îæèäàåì îòïóñêàíèå ïîñëå äëèííîãî íàæàòèÿ.
  136.             if(BUTTON_PIN == 1){
  137.               buttons_click_long = 1;          //Òåïåðü çàñ÷èòûâàåì äëèííîå íàæàòèå
  138.               Button_State = 0;                //Îáíóëÿåì àâòîìàò
  139.              }
  140.          }
  141.     }
  142.  
  143.     if(button_time == BT_SCAN_TIME ){          //Äîòèêàëè äî çíà÷åíèÿ BT_SCAN_TIME( â íà÷àëå â äåôàéíàõ åñòü.)
  144.         Button_Deshifr();               //Ïîãíàëè ñìîòðåòü ÷òî ïîíàæèìàëè
  145.         Button_Time =0;                  //Ñ÷åò÷èê âûçîâîâ â íîëü.
  146.     }
  147. }
  148.  
  149. void InitTimer2(){
  150.   SREG_I_bit = 1;
  151.   OCR2 = 230;
  152.   TCCR2 = 0x28;
  153.   TCCR2 |= 0x07;
  154.   OCIE2_bit = 1;
  155.  
  156. }
  157. void Timer2Overflow_ISR() org IVT_ADDR_TIMER2_COMP {
  158.   button_scan();                                               //Ïðîãîíÿåì, ÷òî íàêëèêàíî êíîïêîé, äåéñòâóåì.
  159.   System_Time ++;
  160.     if(button_bits_field.button_1_click == 1){
  161.       button_bits_field.button_1_click = 0;
  162.       //PORTD5_bit = 1;
  163.       Number_Effect++;
  164.     }
  165.    
  166.     if(button_bits_field.button_2_click == 1){
  167.         button_bits_field.button_2_click = 0;
  168.         //PORTD5_bit = 0;
  169.         Number_Effect--;
  170.     }
  171.     if( button_bits_field.button_long_click == 1){
  172.         button_bits_field.button_long_click = 0;
  173.         Group ++;
  174.         Number_Effect = 1;
  175.     }
  176.    
  177.     if( button_bits_field.button_3_click == 1){
  178.        button_bits_field.button_3_click = 0;
  179.            switch(First_Enter){
  180.                case 0:{ First_Enter = 1;  System_time = 0; Autoslide = 1; break;}
  181.                case 1:{ First_Enter = 0;  Autoslide = 0; break;}
  182.            }
  183.     }
  184.     if(Autoslide == 1){
  185.         if(Group == 4){ Group = 1;}
  186.         if(Number_Effect == 9){
  187.             Group++;
  188.             Number_effect = 1;
  189.         }
  190.     }
  191.     if((System_Time == 400)&(Autoslide == 1)){Number_effect++; System_Time = 0;}
  192.  
  193. }
  194. /***********ÒÓÒ ÂÑÅ ×ÒÎ ÊÀÑÀÅÒÑß ÊÍÎÏÊÈ******/
  195.  
  196. void Init_vars(void){
  197.     Counter = 0;          //Ñ÷åò÷èê ØÈÌà
  198.  
  199.     Number_Effect = 1;    //Ñòàâèì ïåðâûé ýôôåêò
  200.     RB_Counter = 1; // Â ðàäóãå- ñòàâèì ïåðâóþ ïîçèöèþ.
  201.     Group = 1;
  202.     Autoslide = 0;
  203.     First_Enter = 0;
  204.    
  205.  
  206. }
  207. void Init_ports(void){
  208.     PORTC=0xFF;                                     //Êîíôèãóðèðóåì ïîðòû
  209.     DDRC=0xFF;
  210.      /****************ÊÍÎÏÊÀ**********/
  211.     //HARDWARE
  212.  
  213.    PORTB2_bit = 1;
  214.      /****************ÊÍÎÏÊÀ**********/
  215. }
  216. void InitTimer1(){                               // Èíèöèàëèçàöèÿ òàéìåðà, 0,01 ìñ.
  217.    // Red = 0; Green = 0; Blue = 0;
  218.     SREG_I_bit = 1;
  219.     TCCR1A = 0x80;
  220.     TCCR1B = 0x09;
  221.     OCR1AH = 0x00;
  222.     OCR1AL = 0x4F;
  223.     OCIE1A_bit = 1;
  224.  
  225. }
  226. void Timer1Overflow_ISR() org IVT_ADDR_TIMER1_COMPA {
  227.     Counter++;
  228.      if (Counter == 0){                                //Åñëè ñ÷åò÷èê ïåðåïîëíèëñÿ è ïðèíÿë çíà÷åíèå 0
  229.  
  230.             Red_buf    = Red;                          //Ñîõðàíèåì çíà÷åíèÿ â áóôåð
  231.             Green_buf  = Green;
  232.             Blue_buf  = Blue;
  233.  
  234.             RED   = 1;                               //Âûñòàâëÿåì íîãè, îòâå÷àþùèå çà ØÈÌ â ëîãè÷åñêóþ 1
  235.             GREEN = 1;
  236.             BLUE  = 1;
  237.  
  238.       }
  239.  
  240.      if (Red_buf   == Counter) { RED   = 0;}             //Ïî äîñòèæåíèè çàäàííîé ñêâàæíîñòè âûâîäèì ëîãè÷åñêèé 0 â íîæêó ÌÊ
  241.      if (Green_buf == Counter) { GREEN = 0;}
  242.      if (Blue_buf  == Counter) { BLUE  = 0;}
  243. }
  244.  
  245.  
  246.  
  247. /*************************EFFECTS*******************************/
  248.  
  249. void Test_Colors_Chanel(void){
  250.  
  251.     Red = 255; Green = 0; Blue = 0;
  252.     delay_ms(100);
  253.     Red = 0; Green = 255; Blue = 0;
  254.     delay_ms(100);
  255.     Red = 0; Green = 0; Blue = 255;
  256.     delay_ms(100);
  257.     Red = 255; Green = 0; Blue = 0;
  258.  
  259. }
  260.  
  261.  
  262.  
  263. void Blink_Rainbow(void){
  264.     Red = 255; Green = 0; Blue = 0;
  265.     delay_ms(100);
  266.     Red = 255; Green = 50; Blue = 0;
  267.     delay_ms(100);
  268.     Red = 255; Green = 130; Blue = 0;
  269.     delay_ms(100);
  270.     Red = 0; Green = 255; Blue = 0;
  271.     delay_ms(100);
  272.     Red = 0; Green = 255; Blue = 100;
  273.     delay_ms(100);
  274.     Red = 0; Green = 0;   Blue = 255;
  275.     delay_ms(100);
  276.     Red = 255; Green = 0;   Blue = 100;
  277.     delay_ms(100);
  278. }
  279.  
  280. //***************Îäíîöâåòíûå ýôôôåêòû*************************//
  281. void Red_Fill(){
  282.     Red = 255; Green = 0; Blue = 0;
  283. }
  284.  
  285. void Orange_Fill(){
  286.     Red = 255; Green = 26; Blue = 0;
  287. }
  288.  
  289. void Yellow_Fill(){
  290.     Red = 255; Green = 70; Blue = 0;
  291. }
  292.  
  293. void Green_Fill(){
  294.     Red = 0; Green = 255; Blue = 0;
  295. }
  296.  
  297. void BrightBlue_Fill(){
  298.     Red = 0; Green = 200; Blue = 250;
  299. }
  300.  
  301. void Blue_Fill(){
  302.     Red = 0; Green = 0; Blue = 255;
  303. }
  304.  
  305. void Pink_Floyd_Fill(){
  306.     Red = 86; Green = 0; Blue = 255;
  307. }
  308. void SpecialPink_Floyd_Fill(){
  309.     Red = 190; Green = 0; Blue = 255;
  310. }
  311. void White_Fill(){
  312.     Red = 255; Green = 255; Blue = 255;
  313. }
  314.  
  315. /****************Âòîðàÿ ãðóïà ýôôåêòîâ**************************/
  316.  
  317. void Shift_Colors(){
  318.     Red = 0; Green = 200; Blue = 250;    // BrightBlue
  319.     delay_ms(10);
  320.     Red = 0; Green = 0; Blue = 255;     //  Blue
  321.     delay_ms(10);
  322.     Red = 86; Green = 0; Blue = 255;    //Pink_Floyd
  323.     delay_ms(10);
  324.     Red = 190; Green = 0; Blue = 255;   // SpecialPink_Floyd
  325.     delay_ms(10);
  326.     Red = 255; Green = 0; Blue = 0;     //Red
  327.     delay_ms(10);
  328.     Red = 255; Green = 26; Blue = 0;   //Orange
  329.     delay_ms(10);
  330.     Red = 255; Green = 70; Blue = 0;   //Yellow
  331.     delay_ms(10);
  332.     Red = 0; Green = 255; Blue = 0;    //Green
  333.     delay_ms(10);
  334.  
  335. }
  336.  
  337. void Long_Blink_Shift_Colors(){
  338.     Red = 0; Green = 200; Blue = 250;    // BrightBlue
  339.     delay_ms(25);
  340.     Red = 0; Green = 0; Blue = 0;      //Null
  341.     delay_ms(10);
  342.     Red = 0; Green = 0; Blue = 255;     //  Blue
  343.     delay_ms(25);
  344.     Red = 0; Green = 0; Blue = 0;      //Null
  345.     delay_ms(10);
  346.     Red = 86; Green = 0; Blue = 255;    //Pink_Floyd
  347.     delay_ms(25);
  348.     Red = 0; Green = 0; Blue = 0;      //Null
  349.     delay_ms(10);
  350.     Red = 190; Green = 0; Blue = 255;   // SpecialPink_Floyd
  351.     delay_ms(25);
  352.     Red = 0; Green = 0; Blue = 0;      //Null
  353.     delay_ms(10);
  354.     Red = 255; Green = 0; Blue = 0;     //Red
  355.     delay_ms(25);
  356.     Red = 0; Green = 0; Blue = 0;      //Null
  357.     delay_ms(10);
  358.     Red = 255; Green = 26; Blue = 0;   //Orange
  359.     delay_ms(25);
  360.     Red = 0; Green = 0; Blue = 0;      //Null
  361.     delay_ms(10);
  362.     Red = 255; Green = 70; Blue = 0;   //Yellow
  363.     delay_ms(25);
  364.     Red = 0; Green = 0; Blue = 0;      //Null
  365.     delay_ms(10);
  366.     Red = 0; Green = 255; Blue = 0;    //Green
  367.     delay_ms(25);
  368.     Red = 0; Green = 0; Blue = 0;      //Null
  369.     delay_ms(10);
  370. }
  371.  
  372. void Blink_Shift_Colors(){
  373.     Red = 0; Green = 200; Blue = 250;    // BrightBlue
  374.     delay_ms(DELAY_TIME);
  375.     Red = 0; Green = 0; Blue = 0;      //Null
  376.     delay_ms(DELAY_TIME);
  377.     Red = 0; Green = 0; Blue = 255;     //  Blue
  378.     delay_ms(DELAY_TIME);
  379.     Red = 0; Green = 0; Blue = 0;      //Null
  380.     delay_ms(DELAY_TIME);
  381.     Red = 86; Green = 0; Blue = 255;    //Pink_Floyd
  382.     delay_ms(DELAY_TIME);
  383.     Red = 0; Green = 0; Blue = 0;      //Null
  384.     delay_ms(DELAY_TIME);
  385.     Red = 190; Green = 0; Blue = 255;   // SpecialPink_Floyd
  386.     delay_ms(DELAY_TIME);
  387.     Red = 0; Green = 0; Blue = 0;      //Null
  388.     delay_ms(DELAY_TIME);
  389.     Red = 255; Green = 0; Blue = 0;     //Red
  390.     delay_ms(DELAY_TIME);
  391.     Red = 0; Green = 0; Blue = 0;      //Null
  392.     delay_ms(DELAY_TIME);
  393.     Red = 255; Green = 26; Blue = 0;   //Orange
  394.     delay_ms(DELAY_TIME);
  395.     Red = 0; Green = 0; Blue = 0;      //Null
  396.     delay_ms(DELAY_TIME);
  397.     Red = 255; Green = 70; Blue = 0;   //Yellow
  398.     delay_ms(DELAY_TIME);
  399.     Red = 0; Green = 0; Blue = 0;      //Null
  400.     delay_ms(DELAY_TIME);
  401.     Red = 0; Green = 255; Blue = 0;    //Green
  402.     delay_ms(DELAY_TIME);
  403.     Red = 0; Green = 0; Blue = 0;      //Null
  404.     delay_ms(DELAY_TIME);
  405. }
  406.  
  407. void  Decaying_Rainbow(){
  408.     if (RB_Counter == 1) {if (Green < 255) { Green ++;  delay_us(20);} else RB_Counter = 2;}
  409.     if (RB_Counter == 2) {if (Red   >   0) {  Red  --;  delay_us(20);} else RB_Counter = 3;}
  410.     if (RB_Counter == 3) {if (Blue  < 255) {  Blue++;   delay_us(20);} else RB_Counter = 4;}
  411.     if (RB_Counter == 4) {if (Green >   0) {  Green-- ; delay_us(20);} else RB_Counter = 5;}
  412.     if (RB_Counter == 5) {if (Red   < 255) {  Red++;    delay_us(20);} else RB_Counter = 6;}
  413.     if (RB_Counter == 6) {if (Blue  >   0) {  Blue --;  delay_us(20);} else { Red = 0; Green = 0; Blue = 0; delay_ms(30); RB_Counter = 1;}}
  414. }
  415.  
  416. void  Beautiful_Rainbow(){
  417.     if (RB_Counter == 1) {if (Green < 255) { Green ++;  delay_ms(2);/*delay_us(20);*/} else RB_Counter = 2;}
  418.     if (RB_Counter == 2) {if (Red   >   0) {  Red  --;   delay_ms(2);/*delay_us(20);*/} else RB_Counter = 3;}
  419.     if (RB_Counter == 3) {if (Blue  < 255) {  Blue++;    delay_ms(2);/*delay_us(20);*/} else RB_Counter = 4;}
  420.     if (RB_Counter == 4) {if (Green >   0) {  Green-- ; delay_ms(2);/*delay_us(20);*/} else RB_Counter = 5;}
  421.     if (RB_Counter == 5) {if (Red   < 255) {  Red++;     delay_ms(2);/*delay_us(20);*/} else RB_Counter = 6;}
  422.     if (RB_Counter == 6) {if (Blue  >   0) {  Blue --;   delay_ms(2);/*delay_us(20);*/} else RB_Counter = 1;}
  423. }
  424.  
  425. void Fade_Green_to_Blue(){
  426.     if(Trigger_Test == 0){
  427.        Red = 0; Green = 0; Blue = 255;
  428.        Trigger_Test  = 1;
  429.        }
  430.     if(Trigger_Test == 1){
  431.         Green++;
  432.         delay_ms(1);
  433.             if(Green == 255)Trigger_Test = 2;
  434.      }
  435.      
  436.  
  437.      if(Trigger_Test == 2){
  438.         Blue --;
  439.         delay_ms(1);
  440.             if(Blue == 0)Trigger_Test = 3;
  441.      }
  442.      if(Trigger_Test == 3){
  443.         Blue++;
  444.         delay_ms(1);
  445.             if(Blue == 255)Trigger_Test = 4;
  446.      }
  447.      if(Trigger_Test == 4){
  448.         Green--;
  449.         delay_ms(1);
  450.             if(Green == 0){Trigger_Test = 1;}
  451.      }
  452.  
  453.  
  454. }
  455. void White_Blink(){
  456.     Red = 255; Green= 255; Blue = 255;
  457.     delay_ms(20);
  458.     Red = 0;   Green = 0;  Blue = 0;
  459.     delay_ms(10);
  460. }
  461.  
  462. void Pink_Floyd_Blink(){
  463.     Red = 86;  Green = 0;  Blue = 255;
  464.     delay_ms(20);
  465.     Red = 0;   Green = 0;  Blue = 0;
  466.     delay_ms(10);
  467. }
  468.  
  469. void SpecialPink_Floyd_Blink(){
  470.     Red = 190; Green = 0;  Blue = 255;
  471.     delay_ms(20);
  472.     Red = 0;   Green = 0;  Blue = 0;
  473.     delay_ms(10);
  474. }
  475. /*******************Òðåòüÿ ãðóïïà ýôôåêòîâ**********************/
  476. void Blue_Yellow(){
  477.     Red = 0; Green = 0; Blue = 255;
  478.     delay_ms(10);
  479.     Red = 255; Green = 70; Blue = 0;
  480.     delay_ms(10);
  481.     Red = 0; Green = 0; Blue = 0;
  482.     delay_ms(5);
  483. }
  484. void Rotate_Red2colors(){
  485.     Red = 255 ; Green = 0 ; Blue = 0;
  486.     delay_ms(9);
  487.     Red = 0 ; Green = 255 ; Blue = 0;
  488.     delay_ms(9);
  489.     Red = 255 ; Green = 0 ; Blue = 0;
  490.     delay_ms(9);
  491.     Red = 86; Green = 0; Blue = 255;
  492.     delay_ms(9);
  493. }
  494.  
  495. void Rotate_Green2colors(){
  496.     Red = 0 ; Green = 255 ; Blue = 0;
  497.     delay_ms(9);
  498.     Red = 255; Green = 26; Blue = 0;
  499.     delay_ms(9);
  500.     Red = 0 ; Green = 255 ; Blue = 0;
  501.     delay_ms(9);
  502.     Red = 0; Green = 0; Blue = 255;
  503.     delay_ms(9);
  504. }
  505.  
  506. void Orange_3_Blue(){
  507.     Red = 255; Green = 26; Blue = 0;
  508.     delay_ms(6);   //22    //åñëè 2 îáîðîòà â ñåêóíäó , òî 1 îáîðîò â ïîë ñåêóíäû, 1îá=500ìñ, 1/4 îáîðîòà =  125 ìñ
  509.     Red = 0; Green = 0; Blue = 0;
  510.     delay_ms(2);     //6
  511.    
  512.     Red = 0; Green = 200; Blue = 250;    //X1
  513.     delay_ms(2);
  514.     Red = 0; Green = 0; Blue = 0;
  515.     delay_ms(2);
  516.    
  517.     Red = 0; Green = 200; Blue = 250;  //X2
  518.     delay_ms(2);
  519.     Red = 0; Green = 0; Blue = 0;
  520.     delay_ms(2);
  521.  
  522.     Red = 0; Green = 200; Blue = 250; //X3
  523.     delay_ms(2);
  524.     Red = 0; Green = 0; Blue = 0;
  525.     delay_ms(2);
  526.    
  527.     Red = 255; Green = 26; Blue = 0;
  528.     delay_ms(7);
  529.  
  530. }
  531.  
  532. void Red_Blue(){
  533.     Red = 255; Green = 0; Blue = 0;
  534.     delay_ms(8);
  535.     Red = 0; Green = 0; Blue = 0;
  536.     delay_ms(3);
  537.    
  538.     Red = 0; Green = 0; Blue = 255;
  539.     delay_ms(8);
  540.     Red = 0; Green = 0; Blue = 0;
  541.     delay_ms(3);
  542.    
  543.     Red = 255; Green = 0; Blue = 0;
  544.     delay_ms(8);
  545.     Red = 0; Green = 0; Blue = 0;
  546.     delay_ms(3);
  547.  
  548. }
  549.  
  550. void Red_White(){
  551.     Red = 255; Green = 0; Blue = 0;
  552.     delay_ms(8);
  553.     Red = 0; Green = 0; Blue = 0;
  554.     delay_ms(3);
  555.  
  556.     Red = 255; Green = 255; Blue = 255;
  557.     delay_ms(8);
  558.     Red = 0; Green = 0; Blue = 0;
  559.     delay_ms(3);
  560.     /*
  561.    Red = 255; Green = 0; Blue = 0;
  562.    delay_ms(8);
  563.    Red = 0; Green = 0; Blue = 0;
  564.    delay_ms(3);   */
  565.  
  566. }
  567.  
  568. void Orange_BrightBlue(){
  569.     Red = 0; Green = 200; Blue = 250;
  570.     delay_ms(8);
  571.     Red = 0; Green = 0; Blue = 0;
  572.     delay_ms(3);
  573.  
  574.     Red = 255; Green = 26; Blue = 0;
  575.     delay_ms(8);
  576.     Red = 0; Green = 0; Blue = 0;
  577.     delay_ms(3);
  578.  
  579.     Red = 0; Green = 200; Blue = 250;
  580.     delay_ms(8);
  581.     Red = 0; Green = 0; Blue = 0;
  582.     delay_ms(3);
  583.  
  584. }
  585. void SpecialPink_Floyd_3_White(){
  586.     Red = 190; Green = 0; Blue = 255;
  587.     delay_ms(6);   //22    //åñëè 2 îáîðîòà â ñåêóíäó , òî 1 îáîðîò â ïîë ñåêóíäû, 1îá=500ìñ, 1/4 îáîðîòà =  125 ìñ
  588.     Red = 0; Green = 0; Blue = 0;
  589.     delay_ms(2);     //6
  590.  
  591.     Red = 255; Green = 255; Blue = 255;    //X1
  592.     delay_ms(2);
  593.     Red = 0; Green = 0; Blue = 0;
  594.     delay_ms(2);
  595.  
  596.     Red = 255; Green = 255; Blue = 255;  //X2
  597.     delay_ms(2);
  598.     Red = 0; Green = 0; Blue = 0;
  599.     delay_ms(2);
  600.  
  601.     Red = 255; Green = 255; Blue = 255; //X3
  602.     delay_ms(2);
  603.     Red = 0; Green = 0; Blue = 0;
  604.     delay_ms(2);
  605.  
  606.     Red = 190; Green = 0; Blue = 255;
  607.     delay_ms(7);
  608.  
  609. }
  610. void Red_White_Wheel(){
  611.     Red = 255; Green = 0; Blue = 0;
  612.     delay_ms(3);
  613.     Red = 255; Green = 255; Blue = 255;
  614.     delay_ms(5);
  615. }
  616. /*************************EFFECTS*******************************/
  617.  
  618. void main() {
  619.   delay_ms(10);
  620.   Init_ports();
  621.   Init_vars();
  622.   InitTimer1();
  623.   InitTimer2();
  624.  
  625.     while(1){
  626.         /*****ÒÓÒ ÂÑÅ ×ÒÎ ÊÀÑÀÅÒÑß ÊÍÎÏÊÈ*****/
  627.          if((Number_Effect >9)||(Number_Effect == 0)){Number_Effect = 1;}
  628.          if (Group > 3) {Group  = 1;}
  629.         /**** ÒÓÒ ÂÑÅ ×ÒÎ ÊÀÑÀÅÒÑß ÊÍÎÏÊÈ*****/
  630.        
  631.         switch(Group){
  632.             case 1:{
  633.                 switch(Number_effect){
  634.                     case 1:{ Red_Fill();                break; }
  635.                     case 2:{ Orange_Fill();             break; }
  636.                     case 3:{ Yellow_Fill();             break; }
  637.                     case 4:{ Green_Fill();              break; }
  638.                     case 5:{ BrightBlue_Fill();         break; }
  639.                     case 6:{ Blue_Fill();               break; }
  640.                     case 7:{ Pink_Floyd_Fill();         break; }
  641.                     case 8:{ SpecialPink_Floyd_Fill();  break; }
  642.                     case 9:{ White_Fill();              break; }
  643.            
  644.                 }
  645.                 break;
  646.             }
  647.  
  648.             case 2:{
  649.                 switch(Number_effect){
  650.                     case 1:{ Shift_Colors();            break; }
  651.                     case 2:{ Blink_Shift_Colors();      break; }
  652.                     case 3:{ Long_Blink_Shift_Colors(); break; }
  653.                     case 4:{ Decaying_Rainbow();        break; }
  654.                     case 5:{ Beautiful_Rainbow(); Trigger_Test = 0;      break; }
  655.                     case 6:{ Fade_Green_to_Blue();      break; }
  656.                     case 7:{ White_Blink();       Trigger_Test = 0;      break; }
  657.                     case 8:{ Pink_Floyd_Blink();        break; }
  658.                     case 9:{ SpecialPink_Floyd_Blink(); break; }
  659.                 }
  660.                 break;
  661.             }
  662.             case 3:{
  663.                 switch(Number_effect){
  664.                     case 1:{ Blue_Yellow();             break; }
  665.                     case 2:{ Rotate_Red2colors();       break; }
  666.                     case 3:{ Rotate_Green2colors();     break; }
  667.                     case 4:{ Orange_3_Blue();           break; }
  668.                     case 5:{ SpecialPink_Floyd_3_White();      break; }
  669.                     case 6:{ Red_Blue();                break; }
  670.                     case 7:{ Red_White();               break; }
  671.                     case 8:{ Orange_BrightBlue();       break; }
  672.                     case 9:{ Red_White_Wheel();         break; }
  673.                 }
  674.             }
  675.             break;
  676.         }
  677.     }
  678. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top