Jebeni energy iz interšpara.

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
JosipLupinski
Date:
Fri Nov 18 04:50:14 2016 +0000
Commit message:
Beta.

Changed in this revision

1prvi.cpp Show annotated file Show diff for this revision Revisions of this file
2drugi.cpp Show annotated file Show diff for this revision Revisions of this file
3treci.cpp Show annotated file Show diff for this revision Revisions of this file
4cetvrti_master.cpp Show annotated file Show diff for this revision Revisions of this file
5cetvrti_slave.cpp Show annotated file Show diff for this revision Revisions of this file
6cetvrti_teorija.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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/1prvi.cpp	Fri Nov 18 04:50:14 2016 +0000
@@ -0,0 +1,47 @@
+#include "mbed.h"
+
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+DigitalIn switchInput(p8);
+
+int main (){
+    
+    int switchState;
+    
+    while(true){
+        
+       switchInput.mode(PullUp);
+       switchState = switchInput;
+       
+       if(switchState==0){
+            
+            led1=1;
+            
+            wait_ms(250);
+            led1=0;
+            led2=1;
+            
+            wait_ms(250);
+            led2=0;
+            led3=1;
+            
+            wait_ms(250);
+            led3=0;
+            led4=1;
+            
+            wait_ms(250);
+            led4=0;
+            led3=1;
+            
+            wait_ms(250);
+            led3=0;
+            led2=1;
+            
+            wait_ms(250);
+            led2=0; 
+            
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/2drugi.cpp	Fri Nov 18 04:50:14 2016 +0000
@@ -0,0 +1,43 @@
+#include "mbed.h"
+
+/*
+
+    BusOut je naredba kojom se definira stanje pina ili u našem slučaju ledica,
+    te se također može očitati stanje tih pinova ili ledica.
+    BusOut se može koristiti na bilo kojem pinu označen plavom bojom ali i 
+    na mbedu, poput ledica.
+    
+    Vrijednosti ledica su 1 2 4 8 počevši od LED1 do LED4, obrnuto od binarnog.
+    Najznačajniji bit je bit LED4, a najmanje značajan LED1.
+    
+    Stanje pina/ledica se definira na dva načina:
+    sabirnica.write(broj) ili sabirnica = broj
+
+*/
+BusOut sabirnica(LED1, LED2, LED3, LED4);   //inicijalizacija kao polje
+
+int main() {
+ 
+    while(true) {
+        
+        sabirnica.write(1);   //vrijednost LED1 je 1, pa će se upaliti skroz lijeva ledica, binarno 0001
+        
+        wait(1); 
+        sabirnica = 2;   //pali se i druga ledica, binarno 0010
+        
+        wait(1);
+        sabirnica = sabirnica.read() + 1;   //sabirnica = .read(2)+1=3, pale se LED1 i LED2, binarno 0011
+        
+        wait(1);
+        int sab = sabirnica;   //sab = 3
+        sabirnica = sab + 3;   //sabirnica = 3 + 3, pale se LED2 i LED3, binarno 0110
+        
+        wait(1);
+        sabirnica = 0b1111;   //0b = binarni zapis, imamo binarno 1111, odnosno broj 15, pale se sve ledice
+         
+        wait(1);
+        sabirnica[0] = 0;   //polje[0] = 0, gasi se LED1, binarno 1110
+        
+        wait(1);
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/3treci.cpp	Fri Nov 18 04:50:14 2016 +0000
@@ -0,0 +1,45 @@
+#include "mbed.h"
+
+BusOut ledice(LED1, LED2, LED3, LED4);
+DigitalIn kontrola(p8);
+
+int main() {
+ 
+    kontrola.mode(PullUp);  //zašto pullup?
+ 
+    while(true) {
+        
+        if (kontrola){
+            ledice = 0b0000;
+        }
+        
+        //upisivanje binarnih brojeva na ledice LED1 do LED4
+        if (!kontrola) {
+            
+            ledice = 0b0001;
+            
+            wait(0.25);
+            ledice = 0b0010;
+            
+            wait(0.25);
+            ledice = 0b0100;
+            
+            wait(0.25);
+            ledice = 0b1000;
+            
+            wait(0.25);
+            ledice = 0b0100;
+            
+            wait(0.25);
+            ledice = 0b0010;
+            
+            wait(0.25);
+            
+            if (kontrola){
+               
+               ledice = 0b0000;
+               
+            }
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/4cetvrti_master.cpp	Fri Nov 18 04:50:14 2016 +0000
@@ -0,0 +1,55 @@
+#include "mbed.h"
+
+BusOut dataout(p21,p22,p23,p24);
+BusOut ledice(LED4,LED3,LED2,LED1);
+DigitalOut strobe(p25);
+DigitalIn busy(p26);
+BusIn datain(p20,p19,p18,p17);
+
+int main() {
+    
+    datain.mode(PullUp);
+    strobe = 1; //inicijaliziraj strobe liniju
+    wait(2);
+    
+    while(true) {
+        ledice = datain;
+        dataout = datain;
+        wait(0.1);
+        strobe = 0;
+        wait(0.1);
+        strobe = 1;
+        wait(4); //cekaj novi ciklus, nepoznato vrijeme obrade slavea
+    }
+}
+
+//master redefinirani kod
+#include "mbed.h"
+
+BusInOut dataout(p21,p22,p23,p24);
+BusInOut ledice(LED4,LED3,LED2,LED1);
+DigitalOut strobe(p25);
+DigitalIn busy(p26);
+BusInOut datain(p20,p19,p18,p17);
+
+int main() {
+ 
+    dataout.output();
+    ledice.output();
+    datain.input();
+    datain.mode(PullUp);
+    strobe = 1; //inicijaliziraj strobe liniju
+    wait(2);
+    
+    while(1) {
+        if(busy==0){
+            ledice = datain;
+            dataout = datain;
+            //wait_ms(100);
+            strobe = 0;
+            wait_ms(100);
+            strobe = 1;
+            //wait(4); //cekaj novi ciklus, nepoznato vrijeme obrade slavea
+        }
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/5cetvrti_slave.cpp	Fri Nov 18 04:50:14 2016 +0000
@@ -0,0 +1,60 @@
+#include "mbed.h"
+
+BusOut ledice(LED4,LED3,LED2,LED1);
+DigitalIn strobe(p16);
+DigitalOut busy(p15);
+BusIn datain(p20,p19,p18,p17);
+
+int main() {
+ 
+    int strobe_prev = 0;   
+    
+    //inicijalizacija
+    busy = 1; //zauzet za prihvat podataka radi inicijalizacije, nije u mogućnosti prihvatiti podatke i onda mu pošalje 1
+    strobe_prev = strobe;
+    wait(1);
+    busy = 0;
+    //inicijalizacija gotova
+
+    while(1) {
+        
+        if (strobe_prev == 1 && strobe == 0){
+            busy = 1;
+            ledice = datain;
+            wait(1); //vrijeme obrade
+            busy = 0;
+        }
+        strobe_prev = strobe;
+        wait(0.05);
+    }
+}
+
+//slave redefinirani kod
+#include "mbed.h"
+
+BusOut ledice(LED4,LED3,LED2,LED1);
+DigitalIn strobe(p16);
+DigitalOut busy(p15);
+BusIn datain(p20,p19,p18,p17);
+int main() {
+    int strobe_prev = 0; 
+
+    //inicijalizacija
+    busy = 1; //zauzet za prihvat podataka radi inicijalizacije, nije u mogućnosti prihvatiti podatke i onda mu pošalje 1
+    strobe_prev = strobe;
+    wait_ms(100);    
+    busy = 0;
+    //inicijalizacija gotova
+
+    while(1) {
+        if (strobe_prev == 1 && strobe == 0){ //if(true) onda slave čita što je master poslao
+            busy = 1;   //nije u mogucnosti vec prihvatiti podatke
+            ledice = datain;   //čitanje poslane informacije, komunikacija između 2 mbed-a
+            wait_ms(100);   //vrijeme obrade
+            busy = 0;   //ponovna mogućnost primanja podataka
+        }
+        strobe_prev = strobe;   //služi kao "reset" za if funkciju, ako je if(true)
+        wait_ms(50);   //cekanje
+ 
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/6cetvrti_teorija.cpp	Fri Nov 18 04:50:14 2016 +0000
@@ -0,0 +1,20 @@
+/*1.  Koja je uloga strobe_prev varijable ? */
+
+    Pogledamo graf strobe linije. U kodu imamo:
+    if (strobe_prev == 1 && strobe == 0)
+
+    Mi želimo započeti obradu na padajući brid strobe linije, 
+    s toga strobe je prije trebala biti u 1, a sad je u 0. WHAT???
+    
+
+/*2.  Razmislite s koliko najviše uređaja može jedan mbed komunicirati preko 
+    paralelne komunikacije kakvu smo implementirali u ovom zadatku? 
+    Koliki bi bio broj uređaja da je širina podatkovne linije 8-bita? */
+
+    Imamo 26 pina na raspolaganju za korištenje. 
+    Preko 4-bitne komunikacije možemo komunicirati sa 3 slave mbeda.
+    Za svaki slave mbed nam je potrebno 2 DigitalIn, 2 DigitalOut i 4 podatkovna (Bus),
+    što je ukupno 8 pinova, pa možemo samo komunicirati sa 3 slave mbeda. ???
+
+    Za 8-bitnu komunikaciju možemo imati samo 2 slave mbeda, jer imamo 2 DigitalIn,
+    2 DigitalOut i 8 podatkovna (Bus), što je ukupno 12 pinova. ???
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Nov 18 04:50:14 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/0ab6a29f35bf
\ No newline at end of file