MartinSRB

[НРС] Вежбе 11 - Задатак 3

Apr 6th, 2023 (edited)
439
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | Source Code | 0 0
  1. #include<arduinoPlatform.h>
  2. #include<tasks.h>
  3. #include<interrupts.h>
  4. #include<stdio.h>
  5. #include<serial.h>
  6. #include <pwm.h>
  7. #include<data.h>
  8.  
  9. extern serial Serial;
  10.  
  11. #define SW 7
  12. #define SPEED_SLOW 150
  13. #define SPEED_FAST 50
  14.  
  15. int rotationSpeed = SPEED_SLOW,
  16.     i             = 26,
  17.     j             = 33;
  18. bool reversed     = false;
  19.  
  20. void setup()
  21. {
  22.     for(int i = 26; i <= 33; i++){
  23.         pinMode(i, OUTPUT);
  24.     }
  25.     pinMode(SW, INPUT);
  26. }
  27. /*
  28. -- Ovakvom realizacijom loop funkcije postizem prividnu sinhronizaciju:
  29. -- odziv i izvrsenje akcije definisane za SWITCH je spalo na 0-150 [ms],
  30. -- a inicijalno je bilo u rasponu 0-600 [ms]
  31. */
  32. void loop()
  33. {
  34.     if(digitalRead(SW)){
  35.         rotationSpeed = SPEED_FAST;
  36.     }else{
  37.         rotationSpeed = SPEED_SLOW;
  38.     }
  39.     if(i < j && !reversed){
  40.         if(i != 26 && j != 33){
  41.             digitalWrite(i - 1, LOW);
  42.             digitalWrite(j + 1, LOW);
  43.         }
  44.         digitalWrite(i++, HIGH);
  45.         digitalWrite(j--, HIGH);
  46.         delay(rotationSpeed);
  47.     }else{
  48.         if(!reversed){
  49.             reversed = true;
  50.             i = 29;
  51.             j = 30;
  52.         }
  53.         if(i == 26 && j == 33){
  54.             reversed = false;
  55.         }
  56.         if(i == 26){
  57.             digitalWrite(i, LOW);
  58.         }
  59.         if(i > 26)
  60.         digitalWrite(i, LOW);
  61.         digitalWrite(j, LOW);
  62.         digitalWrite(--i, HIGH);
  63.         digitalWrite(++j, HIGH);
  64.         delay(rotationSpeed);
  65.     }
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment