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;
- const int btn[] = {4, 34, 36, 37};
- int fun1(){
- int counter = 0;
- for(int i = 0; i < 4; ++i){
- if(digitalRead(btn[i])){
- ++counter;
- }
- }
- return counter;
- }
- const int SW1 = 2;
- int sw1_old_state;
- void task1(int id, void* ptrt){
- if(sw1_old_state < digitalRead(SW1)){
- int max_led = fun1();
- for(int i = 26; i <= 29; ++i){
- digitalWrite(i, LOW); //gasimo sve ako se desi da ima manje dugmadi upaljeno
- }
- for(int i = 26; i < max_led; ++i){
- digitalWrite(i, HIGH);
- }
- sw1_old_state = digitalRead(SW1);
- }else if(sw1_old_state > digitalRead(SW1)){
- for(int i = 26; i <= 29; ++i){
- digitalWrite(i, LOW); //gasimo sve ako se desi da ima manje dugmadi upaljeno
- }
- sw1_old_state = digitalRead(SW1);
- }
- }
- int task1_id;
- const int SW4 = 35;
- int sw4_old_state;
- typedef void interruptFunction();
- interruptFunction *sw4_rising_edge = NULL,
- *sw4_falling_edge = NULL;
- void sw4_attach_interrupt(short mode, interruptFunction* func){
- if(mode == RISING){
- sw4_rising_edge = func;
- }else if(mode == FALLING){
- sw4_falling_edge = func;
- }
- }
- void interruptOn(){
- setTaskState(task1_id, TASK_ENABLE);
- }
- void interruptOff(){
- setTaskState(task1_id, TASK_DISABLE);
- }
- void sw4_check(int id, void* ptrt){
- if(sw4_old_state < digitalRead(SW4)){
- if(sw4_rising_edge != NULL){
- sw4_rising_edge();
- }
- sw4_old_state = digitalRead(SW4);
- }else if(sw4_old_state > digitalRead(SW4)){
- if(sw4_falling_edge != NULL){
- sw4_falling_edge();
- }
- sw4_old_state = digitalRead(SW4);
- }
- }
- void task2(int id, void* ptrt){
- if(Serial.available()){
- Serial.readString();
- for(int i = 30; i <= 33; ++i){
- digitalWrite(i, HIGH);
- }
- }else{
- for(int i = 30; i <= 33; ++i){
- digitalWrite(i, LOW);
- }
- }
- }
- void setup()
- {
- Serial.begin(9600);
- for(int i = 26; i <= 33; ++i){
- pinMode(i, OUTPUT);
- digitalWrite(i, LOW);
- }
- Serial.println("Martin Muharemovic PR130/2021");
- sw1_old_state = digitalRead(SW1);
- task1_id = createTask(task1, 25, TASK_ENABLE, NULL);
- sw4_old_state = digitalRead(SW4);
- sw4_attach_interrupt(RISING, interruptOn);
- sw4_attach_interrupt(FALLING, interruptOff);
- createTask(sw4_check, 50, TASK_ENABLE, NULL);
- createTask(task2, 3000, TASK_ENABLE, NULL);
- }
- void loop()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment