US, Vjezba 5 Stol 3, Amer Surkovic, Almir Hamza Zadatak 1

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
2016US_AmerSurkovic
Date:
Fri Apr 01 13:12:35 2016 +0000
Commit message:
US, Vjezba 5 Stol 3, Amer Surkovic, Almir Hamza Zadatak 1

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r ef0f3fd77065 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Apr 01 13:12:35 2016 +0000
@@ -0,0 +1,170 @@
+#include "mbed.h"
+#define dp23 P0_0
+ 
+DigitalOut enable(dp14);
+
+DigitalOut D2(dp23); // 7 segmentni displej
+DigitalOut D3(dp24);
+DigitalOut D4(dp25);
+DigitalOut A(dp26);
+DigitalOut B(dp27);
+DigitalOut C(dp5);
+DigitalOut D(dp6);
+DigitalOut E(dp28);
+DigitalOut F(dp4);
+DigitalOut G(dp18);
+DigitalOut DP(dp17);
+
+InterruptIn taster1(dp1);
+InterruptIn taster2(dp2);
+
+Ticker tiker;
+Timer tajmer;
+Timer debounce1; // reakcije na vanjske asinhrone dogadjaje (titranje kontakta tastera)
+Timer debounce2;
+
+int aktivno = 0;
+int zastoj = 0;
+
+void ispisiCifru(int cifra1, int druga)
+{        
+    if(cifra1==0)
+    {
+        A=B=C=D=E=F=0;
+        G=1;
+        if(druga==1) DP=0;
+    }
+    else if(cifra1==1)
+    {
+        B=C=0;
+        A=E=D=F=G=1;
+        if(druga==1) DP=0;
+    }
+    else if(cifra1==2)
+    {
+        F=C=1;
+        G=E=D=B=A=0;
+        if(druga==1) DP=0;
+    }
+    else if(cifra1==3)
+    {
+        F=E=1;
+        G=D=C=B=A=0;
+        if(druga==1) DP=0;
+    }
+    else if(cifra1==4)
+    {
+        E=D=A=1;
+        G=F=C=B=0;
+        if(druga==1) DP=0;
+    }
+    else if(cifra1==5)
+    {
+        E=B=1;
+        G=F=D=C=A=0;
+        if(druga==1) DP=0;
+    }
+    else if(cifra1==6)
+    {
+        B = 1;
+        G=F=E=D=C=A=0;
+        if(druga==1) DP=0;
+    }
+    else if(cifra1==7)
+    {
+        G=F=E=D=1;
+        C=B=A=0;  
+        if(druga==1) DP=0;
+    }
+    else if(cifra1==8)
+    {
+        G=F=E=D=C=B=A=0;
+        if(druga==1) DP=0;
+    }
+    else if(cifra1==9)
+    {
+        E=1;
+        G=F=D=C=B=A=0;
+        if(druga==1) DP=0;
+    }
+}
+
+int osvjezavanje = 0;
+
+void ispisiBroj()
+{
+        int broj = tajmer.read() * 10;
+        
+        int cifra1 = broj%10;
+        broj /= 10;
+        int cifra2 = broj%10;
+        broj /= 10;
+        int cifra3 = broj%10;
+        D4=D2=D3=1;
+            
+        if(osvjezavanje==0){
+            A=B=C=D=E=F=G=DP=1;
+            D4=0;
+            ispisiCifru(cifra1,0);
+            osvjezavanje++;
+        }
+        else if(osvjezavanje==1){
+            A=B=C=D=E=F=G=DP=1;
+            D3=0;
+            ispisiCifru(cifra2,1);
+            osvjezavanje++;
+        }
+        else if(osvjezavanje==2){
+            A=B=C=D=E=F=G=DP=1;
+            D2=0;
+            ispisiCifru(cifra3,0);
+            osvjezavanje=0;
+        }
+ 
+}
+
+void stopaj()
+{   
+    if(debounce1.read_ms()>100)
+    {
+        if(aktivno && !zastoj){
+            aktivno = 0;
+            zastoj = 1;
+            tajmer.stop();
+        }
+        else if(!aktivno && !zastoj){
+            aktivno = 1;
+            tajmer.start();          
+        }
+        else{
+            aktivno = 0;
+            zastoj = 0;
+            tajmer.start();
+        }
+        debounce1.reset();
+    }
+   
+}
+
+void reset(){
+    if(debounce2.read_ms()>100){
+        tajmer.reset();
+        debounce2.reset();
+    }
+}
+
+int main() {
+    enable = 1;
+    
+    tiker.attach(&ispisiBroj,0.001); // Prosljedujemo adresu interapt rutine i T
+    
+    debounce1.start();
+    debounce2.start();
+    taster1.rise(&stopaj);
+    taster2.rise(&reset);
+
+    while(1)
+    {
+       
+    }
+}
diff -r 000000000000 -r ef0f3fd77065 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Apr 01 13:12:35 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/99a22ba036c9
\ No newline at end of file