Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.84 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement