Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<arduinoPlatform.h>
- #include<tasks.h>
- #include<interrupts.h>
- #include<stdio.h>
- #include<serial.h>
- #include <pwm.h>
- #include<data.h>
- extern serial Serial;
- #define SW1 2
- #define SW2 7
- int br = 0;
- typedef void prekidacka_funkcija(void);
- typedef struct{
- int pin;
- int oldState;
- prekidacka_funkcija* start_f; //koristim ga za uzlaznu ivicu
- prekidacka_funkcija* stop_f; //koristim ga za silaznu ivicu
- } prekidac_struct;
- void start_sw1(){
- br++;
- }
- void stop_sw1(){return;} //funkcije ne treba nista da rade ali su definisane da bih prosledio neku funckiju u strukturu po tekstu zadatka
- void start_sw2(){return;}
- void stop_sw2(){
- Serial.print("Trenutna vrednost globalnog brojaca 'br' iznosi: ");
- Serial.println(br);
- }
- void prekidac(int id, void* ptrt){
- prekidac_struct *ps = (prekidac_struct*)ptrt;
- int newState = digitalRead((*ps).pin);
- if((*ps).oldState < newState){
- ps->start_f();
- }else if((*ps).oldState > newState){
- ps->stop_f();
- }
- if((*ps).oldState != newState){
- (*ps).oldState = newState;
- }
- }
- prekidac_struct prekidaci[] = {
- {
- SW1,
- digitalRead(SW1),
- start_sw1,
- stop_sw1
- },
- {
- SW2,
- digitalRead(SW2),
- start_sw2,
- stop_sw2
- }
- };
- void setup()
- {
- Serial.begin(9600);
- createTask(prekidac, 50, TASK_ENABLE, &prekidaci[0]);
- createTask(prekidac, 50, TASK_ENABLE, &prekidaci[1]);
- }
- void loop()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment