MartinSRB

[НРС] Вежбе 13 - Задатак 1 - начин #2

Apr 7th, 2023
736
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 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 LD1 26
  12. #define SW1 2
  13. #define SW2 7
  14.  
  15. int lastState_sw1,
  16.     lastState_sw2,
  17.     blink_task1_id;
  18.  
  19. void blink_task1(int id, void* ptrt){
  20.     digitalWrite(LD1, !digitalRead(LD1));
  21. }
  22.  
  23. void prekidac1(int id, void* ptrt){
  24.     int newState = digitalRead(SW1);
  25.     if(lastState_sw1 < newState){
  26.         setTaskState(blink_task1_id, TASK_ENABLE);
  27.     }else if(lastState_sw1 > newState){
  28.         setTaskState(blink_task1_id, TASK_DISABLE);
  29.         if(digitalRead(LD1)){ //proveravamo da li je ostala upaljena led dioda kad smo ugasili task (desilo mi se da jeste)
  30.             digitalWrite(LD1, LOW);
  31.         }
  32.     }
  33.     if(lastState_sw1 != newState){
  34.         lastState_sw1 = newState;
  35.     }
  36. }
  37.  
  38. void prekidac2(int id, void* ptrt){
  39.     int newState = digitalRead(SW2);
  40.     if(lastState_sw2 < newState){
  41.         setTaskPeriod(blink_task1_id, 1000);
  42.     }else if(lastState_sw2 > newState){
  43.         setTaskPeriod(blink_task1_id, 100);
  44.     }
  45.     if(lastState_sw2 != newState){
  46.         lastState_sw2 = newState;
  47.     }
  48. }
  49.  
  50. void setup()
  51. {
  52.     lastState_sw1  = digitalRead(SW1);
  53.     lastState_sw2  = digitalRead(SW2);
  54.     blink_task1_id = createTask(blink_task1, 100, TASK_DISABLE, NULL);
  55.     createTask(prekidac1, 50, TASK_ENABLE, NULL);
  56.     createTask(prekidac2, 50, TASK_ENABLE, NULL);
  57. }
  58.  
  59. void loop()
  60. {
  61.  
  62. }
  63.  
Advertisement
Add Comment
Please, Sign In to add comment