Matija Vučina Juraj Meštrović
Dependencies: mbed
Revision 1:f16f1d69b376, committed 2015-06-12
- Comitter:
- mvucina
- Date:
- Fri Jun 12 17:26:12 2015 +0000
- Parent:
- 0:61f6dae447a3
- Commit message:
- Zadatak 1
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 61f6dae447a3 -r f16f1d69b376 main.cpp --- a/main.cpp Fri Jun 12 16:53:09 2015 +0000 +++ b/main.cpp Fri Jun 12 17:26:12 2015 +0000 @@ -1,31 +1,32 @@ +/* +Zadatak 1 Vu metar sa 20 LED elemenata. +2 LED stripa svaki s 10 LED. 2 funkcije: pojedinačna LED, Rastuci niz LED +Matija Vučina & Juraj Meštrović +*/ #include "mbed.h" BusOut LedStrip(p14,p13,p12,p11,p10,p9,p8,p7,p6,p5); -//BusOut LedStrip(p5,p6,p7,p8,p9,p10,p11,p12,p13,p14); DigitalOut Strip1(p21); DigitalOut Strip2(p22); DigitalIn Din(p28); -AnalogIn Ain(p20); // float +AnalogIn Ain(p20); // analogni ulaz izmedu 0.0 i 1.0 void VuRastuci (float analog); void VuPojedinacno (float analog); -int main(){ - +int main() +{ Din.mode(PullUp); Strip1=0; Strip2=0; while(1) { - - while(Din==1) { - //pojedinacno - VuPojedinacno(Ain); + while(Din==1) { + VuPojedinacno(Ain); //pojedinacno } - while (Din==0) { - //rastuce - VuRastuci(Ain); + while (Din==0) { + VuRastuci(Ain); //rastuce } } } @@ -33,73 +34,46 @@ void VuRastuci (float analog) { - Strip1=0; Strip2=0; - LedStrip = 0x0; //???? - - int x = (analog*100)/5; // provjerit ovo analog je float a x int - // ako bude problema probat ovako int x = (int)(analog*100)/5; - LedStrip = ~(0x3FF<<x); //upali odgovarajuce izlaze - Strip1=1; //upali prvu traku - Strip2=0; - wait(0.01); - - Strip1=0; //ugasi trake i reset izlaza - Strip2=0; LedStrip = 0x0; - if(x>10){ - x=x-10; - // netreba if (x<0) x==0; - LedStrip = ~(0x3FF<<x); //isti postupak samo za drugu traku - Strip1=0; - Strip2=1; + int x = (analog*20); + LedStrip = ~(0x3FF<<x); //upali odgovarajuce izlaze + Strip1=1; //upali prvu strip wait(0.01); - } + + Strip1=0; //ugasi prvi strip + LedStrip = 0x0; //reset izlaza + if(x>10) { + x=x-10; + LedStrip = ~(0x3FF<<x); //isti postupak samo za drugi strip + Strip2=1; + wait(0.01); + } } - void VuPojedinacno (float analog) { - // uzme analogni ulaz koji je izmedu 0.0 i 1.0 pomnozi s 100 da se dobe postoci - // podjelit s 5 da se dobije koja ledica treba gorit - int x = (analog*100)/5; - // ako je izmedu 0 i 10 to je prvi led strip - if(x>0 && x<=10) { - - // upali prvi bit i pomakni ga na odgovarajuce mjesto - LedStrip = 0x1<<(x-1); - //upali prvu traku - Strip1=1; - Strip2=0; - wait(0.01); - //ugasi trake - Strip1=0; - Strip2=0; - + + Strip1=0; + Strip2=0; + + int x = (analog*20); + + if(x>0 && x<=10) { // ako je izmedu 0 i 10 to je prvi led strip + LedStrip = 0x1<<(x-1); // upali prvi bit i pomakni ga na odgovarajuce mjesto + Strip1=1; //upali strip 1 + wait(0.01); + Strip1=0; //ugasi strip 1 } else if(x>10 && x<=20) { - - LedStrip = 0x1<<(x-11); - //upali drugu traku - Strip1=0; - Strip2=1; - wait(0.01); - //ugasi trake - Strip1=0; - Strip2=0; - + LedStrip = 0x1<<(x-11); + Strip2=1; //upali strip 2 + wait(0.01); + Strip2=0; //ugasi strip 2 } else { Strip1=0; Strip2=0; } - -} - -//~ invertira bitove - -/* -20 ledica, analogni ulaz od 0-100% -svaka ledica je 5% -*/ \ No newline at end of file +} \ No newline at end of file