Applied engineering Team / Mbed 2 deprecated Zadatak1

Dependencies:   mbed

Committer:
mvucina
Date:
Fri Jun 12 16:53:09 2015 +0000
Revision:
0:61f6dae447a3
Child:
1:f16f1d69b376
zadatak 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mvucina 0:61f6dae447a3 1 #include "mbed.h"
mvucina 0:61f6dae447a3 2
mvucina 0:61f6dae447a3 3 BusOut LedStrip(p14,p13,p12,p11,p10,p9,p8,p7,p6,p5);
mvucina 0:61f6dae447a3 4 //BusOut LedStrip(p5,p6,p7,p8,p9,p10,p11,p12,p13,p14);
mvucina 0:61f6dae447a3 5 DigitalOut Strip1(p21);
mvucina 0:61f6dae447a3 6 DigitalOut Strip2(p22);
mvucina 0:61f6dae447a3 7 DigitalIn Din(p28);
mvucina 0:61f6dae447a3 8 AnalogIn Ain(p20); // float
mvucina 0:61f6dae447a3 9
mvucina 0:61f6dae447a3 10 void VuRastuci (float analog);
mvucina 0:61f6dae447a3 11 void VuPojedinacno (float analog);
mvucina 0:61f6dae447a3 12
mvucina 0:61f6dae447a3 13 int main(){
mvucina 0:61f6dae447a3 14
mvucina 0:61f6dae447a3 15 Din.mode(PullUp);
mvucina 0:61f6dae447a3 16 Strip1=0;
mvucina 0:61f6dae447a3 17 Strip2=0;
mvucina 0:61f6dae447a3 18
mvucina 0:61f6dae447a3 19 while(1) {
mvucina 0:61f6dae447a3 20
mvucina 0:61f6dae447a3 21 while(Din==1) {
mvucina 0:61f6dae447a3 22 //pojedinacno
mvucina 0:61f6dae447a3 23 VuPojedinacno(Ain);
mvucina 0:61f6dae447a3 24 }
mvucina 0:61f6dae447a3 25
mvucina 0:61f6dae447a3 26 while (Din==0) {
mvucina 0:61f6dae447a3 27 //rastuce
mvucina 0:61f6dae447a3 28 VuRastuci(Ain);
mvucina 0:61f6dae447a3 29 }
mvucina 0:61f6dae447a3 30 }
mvucina 0:61f6dae447a3 31 }
mvucina 0:61f6dae447a3 32
mvucina 0:61f6dae447a3 33
mvucina 0:61f6dae447a3 34 void VuRastuci (float analog)
mvucina 0:61f6dae447a3 35 {
mvucina 0:61f6dae447a3 36
mvucina 0:61f6dae447a3 37 Strip1=0;
mvucina 0:61f6dae447a3 38 Strip2=0;
mvucina 0:61f6dae447a3 39 LedStrip = 0x0; //????
mvucina 0:61f6dae447a3 40
mvucina 0:61f6dae447a3 41 int x = (analog*100)/5; // provjerit ovo analog je float a x int
mvucina 0:61f6dae447a3 42 // ako bude problema probat ovako int x = (int)(analog*100)/5;
mvucina 0:61f6dae447a3 43 LedStrip = ~(0x3FF<<x); //upali odgovarajuce izlaze
mvucina 0:61f6dae447a3 44 Strip1=1; //upali prvu traku
mvucina 0:61f6dae447a3 45 Strip2=0;
mvucina 0:61f6dae447a3 46 wait(0.01);
mvucina 0:61f6dae447a3 47
mvucina 0:61f6dae447a3 48 Strip1=0; //ugasi trake i reset izlaza
mvucina 0:61f6dae447a3 49 Strip2=0;
mvucina 0:61f6dae447a3 50 LedStrip = 0x0;
mvucina 0:61f6dae447a3 51
mvucina 0:61f6dae447a3 52 if(x>10){
mvucina 0:61f6dae447a3 53 x=x-10;
mvucina 0:61f6dae447a3 54 // netreba if (x<0) x==0;
mvucina 0:61f6dae447a3 55 LedStrip = ~(0x3FF<<x); //isti postupak samo za drugu traku
mvucina 0:61f6dae447a3 56 Strip1=0;
mvucina 0:61f6dae447a3 57 Strip2=1;
mvucina 0:61f6dae447a3 58 wait(0.01);
mvucina 0:61f6dae447a3 59 }
mvucina 0:61f6dae447a3 60
mvucina 0:61f6dae447a3 61 }
mvucina 0:61f6dae447a3 62
mvucina 0:61f6dae447a3 63
mvucina 0:61f6dae447a3 64 void VuPojedinacno (float analog)
mvucina 0:61f6dae447a3 65 {
mvucina 0:61f6dae447a3 66 // uzme analogni ulaz koji je izmedu 0.0 i 1.0 pomnozi s 100 da se dobe postoci
mvucina 0:61f6dae447a3 67 // podjelit s 5 da se dobije koja ledica treba gorit
mvucina 0:61f6dae447a3 68 int x = (analog*100)/5;
mvucina 0:61f6dae447a3 69 // ako je izmedu 0 i 10 to je prvi led strip
mvucina 0:61f6dae447a3 70 if(x>0 && x<=10) {
mvucina 0:61f6dae447a3 71
mvucina 0:61f6dae447a3 72 // upali prvi bit i pomakni ga na odgovarajuce mjesto
mvucina 0:61f6dae447a3 73 LedStrip = 0x1<<(x-1);
mvucina 0:61f6dae447a3 74 //upali prvu traku
mvucina 0:61f6dae447a3 75 Strip1=1;
mvucina 0:61f6dae447a3 76 Strip2=0;
mvucina 0:61f6dae447a3 77 wait(0.01);
mvucina 0:61f6dae447a3 78 //ugasi trake
mvucina 0:61f6dae447a3 79 Strip1=0;
mvucina 0:61f6dae447a3 80 Strip2=0;
mvucina 0:61f6dae447a3 81
mvucina 0:61f6dae447a3 82 } else if(x>10 && x<=20) {
mvucina 0:61f6dae447a3 83
mvucina 0:61f6dae447a3 84 LedStrip = 0x1<<(x-11);
mvucina 0:61f6dae447a3 85 //upali drugu traku
mvucina 0:61f6dae447a3 86 Strip1=0;
mvucina 0:61f6dae447a3 87 Strip2=1;
mvucina 0:61f6dae447a3 88 wait(0.01);
mvucina 0:61f6dae447a3 89 //ugasi trake
mvucina 0:61f6dae447a3 90 Strip1=0;
mvucina 0:61f6dae447a3 91 Strip2=0;
mvucina 0:61f6dae447a3 92
mvucina 0:61f6dae447a3 93 } else {
mvucina 0:61f6dae447a3 94 Strip1=0;
mvucina 0:61f6dae447a3 95 Strip2=0;
mvucina 0:61f6dae447a3 96 }
mvucina 0:61f6dae447a3 97
mvucina 0:61f6dae447a3 98 }
mvucina 0:61f6dae447a3 99
mvucina 0:61f6dae447a3 100 //~ invertira bitove
mvucina 0:61f6dae447a3 101
mvucina 0:61f6dae447a3 102 /*
mvucina 0:61f6dae447a3 103 20 ledica, analogni ulaz od 0-100%
mvucina 0:61f6dae447a3 104 svaka ledica je 5%
mvucina 0:61f6dae447a3 105 */