Ovim programom se upravlja rasvjetom.

Dependencies:   Light

main.cpp

Committer:
keepurhealth
Date:
21 months ago
Revision:
1:ac300d8e2d1e
Parent:
0:b41f2bc36513

File content as of revision 1:ac300d8e2d1e:

/* mbed Microcontroller Library
 * Copyright (c) 2019 ARM Limited
 * SPDX-License-Identifier: Apache-2.0
 *Author: Hrvoje Čudina
 */

#include "mbed.h"                      // Inicijalizacija mbed biblioteke
#include "platform/mbed_thread.h"      // Inicijalizacija mbed_thread biblioteke
#include "Light.h"                     // Inicijalizacija Light biblioteke

InterruptIn button(PA_4);              // Inicijalizacija hardverskog prekida
DigitalOut Yellow(PA_15);              // Inicijalizacija digitalnog izlaza Yellow
Timer debounce;                        // Inicijalizacija tajmera za debounce

void ON(void);                         // Inicijalizacija prototipa funkcije

void Turn_OFF(){                       // Funkcija za primjenu "Ticker" klase
    if (Yellow == 1){
        Yellow = 0;
        }
    }

int main()
{      
    Light LED1(PA_13);  // Inicijalizacija konstruktora klase Light
    Light LED2(PA_14);  // Inicijalizacija konstruktora klase Light
    
    Ticker OFF;         // Inicijalizacija konstruktora klase Ticker
    
    DigitalIn Sensor_1(PA_0); // Inicijalizacija digitalnog ulaza
    Sensor_1.mode(PullUp); // Inicijalizacija moda digitalnog ulaza
    
    DigitalIn Sensor_2(PA_1); // Inicijalizacija digitalnog ulaza
    Sensor_2.mode(PullUp); // Inicijalizacija moda digitalnog ulaza
    
    int n = 200; // Definiranje varijable n
    
    debounce.start(); // Početak odbrojavanja tajmera
    button.rise(&ON); // Dodjela funkcije vanjskom prekidu
    OFF.attach(&Turn_OFF, 5.0); // Dodjela funkcije Ticker konstruktoru

    while (true) {
        
        if (Sensor_1 == 1){         // Provjera stanja senzora_1
            LED1.Flash_control(n);
            }
        else {
            LED1.Flash_off();
            }
            
        if (Sensor_2 == 1){         // Provjera stanja senzora_2
            LED2.Flash_control(n);
            
            }
        else {
            LED2.Flash_off();
            }
            
        
    }
}

void ON(){                          // Definirana funkcija za vanjski prekid
    if(debounce.read_ms()>200){
        Yellow = 1;
        debounce.reset();
        }
    }