MartinSRB

[НРС] Вежбе 12 - Задатак 4

Apr 6th, 2023
558
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.49 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. //LED pins
  12. #define LED_1 26
  13. #define LED_2 27
  14. #define LED_3 28
  15. #define LED_4 29
  16.  
  17. //SWITCH pins
  18. #define SW_1 2
  19. #define SW_2 7
  20. #define SW_3 8
  21. #define SW_4 35
  22.  
  23. int blink_task1,
  24.     led_array[]    = {LED_1, LED_2, LED_3, LED_4},
  25.     switch_array[] = {SW_1, SW_2, SW_3, SW_4};
  26.  
  27.  
  28. typedef struct{
  29.     short led_pin;
  30.     short switch_pin;
  31. } input_pairs;
  32.  
  33. void init_input(input_pairs input[]){
  34.     for(int i = 0; i < 4; i++){
  35.         input[i].led_pin    = led_array[i];
  36.         input[i].switch_pin = switch_array[i];
  37.     }
  38. }
  39.  
  40. void check_SWs(int id, void* ptrt){
  41.     input_pairs *input = (input_pairs*)ptrt;
  42.     for(int i = 0; i < 4; i++){
  43.         if(digitalRead(input[i].switch_pin) && !digitalRead(input[i].led_pin)){
  44.             digitalWrite(input[i].led_pin, HIGH);
  45.         }else if(!digitalRead(input[i].switch_pin) && digitalRead(input[i].led_pin)){
  46.             digitalWrite(input[i].led_pin, LOW);
  47.         }
  48.     }
  49. }
  50.  
  51. void setup()
  52. {
  53.     input_pairs input[5];
  54.     //morao sam da definisem 5 clanova iako samo koristim 4, jer kad ih ima samo 4
  55.     //onda nekako task krene da mi dodaje u switch_pin na poslednjem clanu svaki put
  56.     //broj milisekundi koji je sacekao (bude uvek +50, 51, ili 52
  57.     init_input(input);
  58.     blink_task1 = createTask(check_SWs, 50, TASK_ENABLE, input);
  59. }
  60.  
  61. void loop()
  62. {
  63.  
  64. }
  65.  
Advertisement
Add Comment
Please, Sign In to add comment