Jebeni energy iz interšpara.
Dependencies: mbed
Revision 0:da2489b55d16, committed 2016-11-18
- Comitter:
- JosipLupinski
- Date:
- Fri Nov 18 04:50:14 2016 +0000
- Commit message:
- Beta.
Changed in this revision
diff -r 000000000000 -r da2489b55d16 1prvi.cpp --- /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
diff -r 000000000000 -r da2489b55d16 2drugi.cpp --- /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
diff -r 000000000000 -r da2489b55d16 3treci.cpp --- /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
diff -r 000000000000 -r da2489b55d16 4cetvrti_master.cpp --- /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
diff -r 000000000000 -r da2489b55d16 5cetvrti_slave.cpp --- /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
diff -r 000000000000 -r da2489b55d16 6cetvrti_teorija.cpp --- /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
diff -r 000000000000 -r da2489b55d16 mbed.bld --- /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