Miroljub Micic 514/2018

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
miroljubmicic
Date:
Sat Nov 13 09:09:28 2021 +0000
Commit message:
Miroljub Micic 514/2018

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 2a2e6c8ba676 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Nov 13 09:09:28 2021 +0000
@@ -0,0 +1,316 @@
+//Bonus 3: Prikazana vrednost na displeju odgovara glasnoci koju mozemo cuti, ali ne odgovara frekvenciji. Frekvencija se podesava sa POT2.
+
+//Sekcija za uvoz biblioteka
+#include "mbed.h"
+
+//Definisanje direktiva
+#define ukljucen 0
+#define iskljucen 1
+
+//Glavne promenljive
+AnalogIn POT1 (PA_0); //potenciometar jacina zvuka
+AnalogIn POT2 (PA_1); //potenciometar frekvencija zvuka
+InterruptIn SW1 (PC_9); //taster
+PwmOut zujalica (PA_11); //zujalica
+DigitalOut SEL1 (PB_6); //levi displej
+DigitalOut SEL2 (PC_7); //desni displej
+DigitalOut a (PA_10);
+DigitalOut b (PA_9);
+DigitalOut c (PA_8);
+DigitalOut d (PB_10);
+DigitalOut e (PB_5);
+DigitalOut f (PB_4);
+DigitalOut g (PB_3);
+
+void ISR_SW1(void);
+
+//Glavna funkcija
+int main()
+{
+    SW1.fall(&ISR_SW1);
+    while (true)
+    {
+        zujalica.period_us((POT2.read()*5000)); //Okretanjem POT2 frekvencija (50 - 5000 us) (20kHz - 200Hz)
+        zujalica.write(1-POT1.read()); //Okretanjem POT1 jacina zvuka
+        SEL1.write(iskljucen);
+        SEL2.write(iskljucen);
+        //Na pritisak tastera ispisuje se trenutna vrednost POT1
+        if (!SW1)
+        {
+            if (POT1.read()==0)
+            {
+                //Ispisi 0
+                SEL1.write(iskljucen); //iskljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej 
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0) && (POT1.read()<=0.1))
+            {
+                //Ispisi 10
+                //Ispis 1 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(iskljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(iskljucen);
+                e.write(iskljucen);
+                f.write(iskljucen);
+                g.write(iskljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0.1) && (POT1.read()<=0.2))
+            {
+                //Ispisi 20
+                //Ispis 2 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(iskljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(iskljucen);
+                g.write(ukljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0.2) && (POT1.read()<=0.3))
+            {
+                //Ispisi 30
+                //Ispis 3 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(iskljucen);
+                f.write(iskljucen);
+                g.write(ukljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0.3) && (POT1.read()<=0.4))
+            {
+                //Ispisi 40
+                //Ispis 4 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(iskljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(iskljucen);
+                e.write(iskljucen);
+                f.write(ukljucen);
+                g.write(ukljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0.4) && (POT1.read()<=0.5))
+            {
+                //Ispisi 50
+                //Ispis 5 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(ukljucen);
+                b.write(iskljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(iskljucen);
+                f.write(ukljucen);
+                g.write(ukljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0.5) && (POT1.read()<=0.6))
+            {
+                //Ispisi 60
+                //Ispis 6 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(ukljucen);
+                b.write(iskljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(ukljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0.6) && (POT1.read()<=0.7))
+            {
+                //Ispisi 70
+                //Ispis 7 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(iskljucen);
+                e.write(iskljucen);
+                f.write(iskljucen);
+                g.write(iskljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0.7) && (POT1.read()<=0.8))
+            {
+                //Ispisi 80
+                //Ispis 8 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(ukljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0.8) && (POT1.read()<=0.9))
+            {
+                //Ispisi 90
+                //Ispis 9 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(iskljucen);
+                f.write(ukljucen);
+                g.write(ukljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 0 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(ukljucen);
+                f.write(ukljucen);
+                g.write(iskljucen);  
+            }
+            if ((POT1.read()>0.9) && (POT1.read()<=1))
+            {
+                //Ispisi 99
+                //Ispis 9 na levom ekranu
+                SEL1.write(ukljucen); //ukljucen prvi displej
+                SEL2.write(iskljucen); //iskljucen drugi displej
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(iskljucen);
+                f.write(ukljucen);
+                g.write(ukljucen);   
+                wait_ms(10);
+                SEL1.write(iskljucen); //iskljucen prvi displej 
+                SEL2.write(ukljucen); //ukljucen drugi displej
+                //Ispis 9 na desnom ekranu
+                a.write(ukljucen);
+                b.write(ukljucen);
+                c.write(ukljucen);
+                d.write(ukljucen);
+                e.write(iskljucen);
+                f.write(ukljucen);
+                g.write(ukljucen); 
+            }
+        }
+        wait_ms(10);    
+    }
+}
+
+//Korisnicke funkcije
+void ISR_SW1()
+{
+    
+}
diff -r 000000000000 -r 2a2e6c8ba676 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sat Nov 13 09:09:28 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file