Program uključuje svjetlosne efekte ovisno o modu rada koji je izabran. Program ima 4 moda rada. U 4. modu rada, sve ledice su isključene. Mod rada se izabire pomoću integriranog tipkala na razvojnoj pločici. Vanjsko tipkalo služi za povrat u 4. mod. Ledica na razvojnoj pločici služi kao indikator ispravnosti rada.

Dependencies:   flasher

Revision:
0:da85fd0e990d
diff -r 000000000000 -r da85fd0e990d main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Sep 01 09:26:20 2022 +0000
@@ -0,0 +1,86 @@
+//REFERENCE/Korišteni dijelovi koda:
+//https://os.mbed.com/handbook/Ticker
+//https://os.mbed.com/handbook/InterruptIn
+//https://os.mbed.com/questions/5979/mbed-1768-Button-input/
+//https://os.mbed.com/users/4180_1/notebook/pushbuttons/
+//https://os.mbed.com/cookbook/Writing-a-Library
+
+#include "mbed.h"
+#include "flasher.h" //library
+
+InterruptIn myButton(USER_BUTTON);
+Flasher led1(D5);
+Flasher led2(D4);
+Flasher led3(D3);
+DigitalOut myled(LED1);
+Ticker blink1;
+InterruptIn button(D6);
+ 
+Flasher::Flasher(PinName pin) : _pin(pin) {
+    _pin = 0;
+}
+ 
+void Flasher::flash(int n) {
+    for(int i=0; i<n*2; i++) {
+        _pin = !_pin;
+        wait(0.2);
+    }
+}
+ 
+volatile bool buttonPressed; //zastavica da je tipkalo pritisnuto
+ 
+void onButtonPush() {
+  if (myButton == 1) {  //potvrda da nije bouncing
+    buttonPressed = true;
+  }
+}
+
+void RADI() //potvrda da program radi ok
+{
+    myled = !myled;
+}
+
+void OFF() //funkcija sve ledice na nulu
+{
+    NVIC_SystemReset();
+}
+
+
+int main () {
+ 
+ blink1.attach(&RADI, 2.0); //ticker
+ 
+ button.mode(PullUp);
+ button.rise(&OFF); //hw interrupt
+
+ int count=0;
+ 
+ myButton.rise(&onButtonPush); // kada pin prelazi in "0" i "1" pozovi funkciju
+ 
+  while (1) {
+ 
+    if (buttonPressed) { //tipkalo pritisnuto
+      count++;
+      buttonPressed = false; //tipkalo reset
+    }
+    //wait_ms(10); 
+    if (count==1)
+        led1.flash(2);
+    else if (count==2){
+        led3.flash(1);
+        led1.flash(1);
+        }
+    else if (count==3){
+        led3.flash(3);
+        led2.flash(2);
+        led1.flash(1);
+        }
+    else if (count==4){
+        led3.flash(0);
+        led2.flash(0);
+        led1.flash(0);
+        count=0;
+        }
+  }
+ 
+}
\ No newline at end of file