MartinSRB

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

Apr 7th, 2023 (edited)
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.51 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 SW1 2
  12. #define SW2 7
  13.  
  14. int br = 0;
  15.  
  16. typedef void prekidacka_funkcija(void);
  17.  
  18. typedef struct{
  19.     int pin;
  20.     int oldState;
  21.     prekidacka_funkcija* start_f; //koristim ga za uzlaznu ivicu
  22.     prekidacka_funkcija* stop_f;  //koristim ga za silaznu ivicu
  23. } prekidac_struct;
  24.  
  25. void start_sw1(){
  26.     br++;
  27. }
  28.  
  29. void stop_sw1(){return;} //funkcije ne treba nista da rade ali su definisane da bih prosledio neku funckiju u strukturu po tekstu zadatka
  30. void start_sw2(){return;}
  31.  
  32. void stop_sw2(){
  33.     Serial.print("Trenutna vrednost globalnog brojaca 'br' iznosi: ");
  34.     Serial.println(br);
  35. }
  36.  
  37. void prekidac(int id, void* ptrt){
  38.     prekidac_struct *ps = (prekidac_struct*)ptrt;
  39.     int newState = digitalRead((*ps).pin);
  40.     if((*ps).oldState < newState){
  41.         ps->start_f();
  42.     }else if((*ps).oldState > newState){
  43.         ps->stop_f();
  44.     }
  45.     if((*ps).oldState != newState){
  46.         (*ps).oldState = newState;
  47.     }
  48. }
  49.  
  50. prekidac_struct prekidaci[] = {
  51.     {
  52.         SW1,
  53.         digitalRead(SW1),
  54.         start_sw1,
  55.         stop_sw1
  56.     },
  57.     {
  58.         SW2,
  59.         digitalRead(SW2),
  60.         start_sw2,
  61.         stop_sw2
  62.     }
  63. };
  64.  
  65. void setup()
  66. {
  67.     Serial.begin(9600);
  68.     createTask(prekidac, 50, TASK_ENABLE, &prekidaci[0]);
  69.     createTask(prekidac, 50, TASK_ENABLE, &prekidaci[1]);
  70. }
  71.  
  72. void loop()
  73. {
  74.  
  75. }
  76.  
Advertisement
Add Comment
Please, Sign In to add comment