Rauthag

Random Led

Sep 24th, 2019
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. #include "mbed.h"
  2.  
  3. Serial pc( USBTX, USBRX );
  4.  
  5. int main()
  6. {
  7. pc.baud( 115200 );
  8. DigitalOut leds[] = {PTC0, PTC1, PTC2, PTC3, PTC4, PTC5, PTC7, PTC8};
  9. float brightness[] = {0, 0.25, 0.50, 1, 0.50, 0.25, 0, 0};
  10. float T = 15;
  11. DigitalIn btn_left( PTC9 );
  12. DigitalIn btn_right( PTC10 );
  13. DigitalIn speed_down( PTC11 );
  14. DigitalIn speed_up( PTC12 );
  15. bool speed_down_pressed = false;
  16. bool speed_up_pressed = false;
  17. int direction = 1;
  18. int speed = 25;
  19. long long counter = 0;
  20.  
  21. while(1) {
  22. for(float i = 0; i < T; i+=1) {
  23. for(int j = 0; j < 8; j++) {
  24. if(i < (T * brightness[j])) {
  25. leds[j] = true;
  26. } else {
  27. leds[j] = false;
  28. }
  29. }
  30. wait_ms(1);
  31. }
  32.  
  33. if(counter % speed == 0) {
  34. if(direction == -1) {
  35. float tmp = brightness[0];
  36. for(int i = 0; i < 7; i++) {
  37. brightness[i] = brightness[i + 1];
  38. }
  39. brightness[7] = tmp;
  40. } else if(direction == 1) {
  41. float tmp = brightness[7];
  42. for(int i = 7; i > 0; i--) {
  43. brightness[i] = brightness[i - 1];
  44. }
  45. brightness[0] = tmp;
  46. }
  47.  
  48. }
  49.  
  50. if(!btn_left) {
  51. direction = -1;
  52. }
  53. if(!btn_right) {
  54. direction = 1;
  55. }
  56. if(!speed_up) {
  57. speed_up_pressed = true;
  58. }
  59. if(!speed_down) {
  60. speed_down_pressed = true;
  61. }
  62.  
  63. if(counter % 20 == 0) {
  64. if(speed_up_pressed) {
  65. speed--;
  66. speed_up_pressed = false;
  67. }
  68. if(speed_down_pressed) {
  69. speed++;
  70. speed_down_pressed = false;
  71. }
  72. }
  73.  
  74. counter++;
  75. }
  76. }
Add Comment
Please, Sign In to add comment