Advertisement
Guest User

AA

a guest
Oct 17th, 2019
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. **************************************************************************
  2. //
  3. // Demo program for labs
  4. //
  5. // Subject: Computer Architectures and Parallel systems
  6. // Author: Petr Olivka, petr.olivka@vsb.cz, 09/2019
  7. // Organization: Department of Computer Science, FEECS,
  8. // VSB-Technical University of Ostrava, CZ
  9. //
  10. // File: Demo program
  11. //
  12. // **************************************************************************
  13.  
  14. #include "mbed.h"
  15.  
  16. //void demo_leds();
  17. //void demo_lcd();
  18. //void demo_i2c();
  19.  
  20. // DO NOT REMOVE OR RENAME FOLLOWING GLOBAL VARIABLES!!
  21.  
  22. // Serial line for printf output
  23. Serial g_pc(USBTX, USBRX);
  24.  
  25. // LEDs on K64F-KIT - instances of class DigitalOut
  26. /*DigitalOut g_led1(PTA1);
  27. DigitalOut g_led2(PTA2);
  28.  
  29. // Buttons on K64F-KIT - instances of class DigitalIn
  30. DigitalIn g_but9(PTC9);
  31. DigitalIn g_but10(PTC10);
  32. DigitalIn g_but11(PTC11);
  33. DigitalIn g_but12(PTC12);*/
  34.  
  35. //Inicialization of leds
  36. DigitalOut l_b(PTB2);
  37. DigitalOut l_g(PTB3);
  38. DigitalOut l_r(PTB9);
  39. DigitalOut r_b(PTB11);
  40. DigitalOut r_g(PTB18);
  41. DigitalOut r_r(PTB19);
  42.  
  43. //Inicialization of buttons
  44. DigitalIn g_swi1(PTC9);
  45. DigitalIn g_swi2(PTC10);
  46. DigitalIn g_swi3(PTC11);
  47. DigitalIn g_swi4(PTC12);
  48. unsigned int c = 0;
  49. //unsigned int changed[8] ={0, 0, 0, 0, 0, 0, 0, 0};
  50. //unsigned int choosen_led = 0;
  51. unsigned int switch_pressed = 0;
  52. unsigned int b[3] = { 100, 100,100 };
  53. unsigned int choosen_colour = 0;
  54.  
  55.  
  56.  
  57.  
  58.  
  59. void count()
  60. {
  61. c++;
  62. }
  63.  
  64. void bright(DigitalOut led_l, DigitalOut led_r, unsigned int i)
  65. {
  66. if ((c % 100)<b[i])
  67. led_l = 1;
  68. else
  69. led_l = 0;
  70. if ((c % 100)<(100 - b[i]))
  71. led_r = 1;
  72. else
  73. led_r = 0;
  74. }
  75.  
  76.  
  77.  
  78. void swi()
  79. {
  80. if (g_swi1 == 0 && g_swi2 == 1)
  81. {
  82. choosen_colour = 0; //blue
  83. switch_pressed = c;
  84. }
  85. else if (g_swi2 == 0 && g_swi1 == 1)
  86. {
  87. choosen_colour = 1; //green
  88. switch_pressed = c;
  89.  
  90. }
  91. else if (g_swi2 == 0 && g_swi1 == 0)
  92. {
  93. choosen_colour = 2; //red
  94. switch_pressed = c;
  95.  
  96. }
  97. else if (g_swi3 == 0 && b[choosen_colour]>0)
  98. {
  99. b[choosen_colour] = b[choosen_colour] - 10; // lower brightness on left led
  100. switch_pressed = c;
  101.  
  102. }
  103. else if (g_swi4 == 0 && b[choosen_colour]<100)
  104. {
  105. b[choosen_colour] = b[choosen_colour] + 10; // raise brightness on left led
  106. switch_pressed = c;
  107.  
  108. }
  109.  
  110.  
  111.  
  112. }
  113. void bright2(unsigned int perc, DigitalOut led)
  114. {
  115. if ((c % 100)<perc)
  116. led = 1;
  117. else
  118. led = 0;
  119.  
  120. }
  121.  
  122. void Orange(DigitalOut R, DigitalOut G, DigitalOut B)
  123. {
  124.  
  125. R = bright2(100, R);
  126. G = bright2(27, G);
  127. B = bright2(0, B);
  128.  
  129.  
  130. }
  131.  
  132. int main()
  133. {
  134.  
  135.  
  136. Ticker t1;
  137.  
  138.  
  139. DigitalOut l[3] = { l_b, l_g, l_r };
  140. DigitalOut r[3] = { r_b, r_g, r_r };
  141.  
  142.  
  143. t1.attach_us(callback(count), 100);
  144.  
  145.  
  146. while (1)
  147. {
  148.  
  149.  
  150.  
  151. //for (int i = 0; i <3; i++)
  152. //{
  153. Orange(l[2], l[1], l[0]);
  154. Orange(r[2], r[1], r[0]);
  155.  
  156.  
  157. //}
  158.  
  159.  
  160. if ((switch_pressed + 1000) < c)
  161. swi();
  162.  
  163.  
  164. }
  165.  
  166.  
  167. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement