tim007 tim007 / Mbed 2 deprecated pripremaLV6

Dependencies:   mbed

Committer:
tim007
Date:
Mon Apr 07 11:46:57 2014 +0000
Revision:
0:a1dbffe52ea5
Priprema LV6 Zad01; Sumejja Porca

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tim007 0:a1dbffe52ea5 1 #include "mbed.h"
tim007 0:a1dbffe52ea5 2 char lookup[17] = { 0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10, 0x20, 0x03, 0x46, 0x21, 0x04, 0x09, 0x01};
tim007 0:a1dbffe52ea5 3 DigitalOut displays[3] = {dp23, dp24, dp25 };
tim007 0:a1dbffe52ea5 4 DigitalOut dec_p = dp4;
tim007 0:a1dbffe52ea5 5 int index(2);// Varijabla koja ce reci koji display je trenutno aktivan (ima vrijednosti od 2 do 4)
tim007 0:a1dbffe52ea5 6 DigitalIn power(dp1), reset(dp2); //tasteri
tim007 0:a1dbffe52ea5 7 char power2, reset2; // provjeravamo zadnju vrijednost
tim007 0:a1dbffe52ea5 8 int value(0);//aktuelna vrijednost na display-u
tim007 0:a1dbffe52ea5 9 int d2 = 0, d3 = 0, d4 = 0;// Vrijednosti na pojedinim displayjima
tim007 0:a1dbffe52ea5 10 float timing(0);
tim007 0:a1dbffe52ea5 11 Ticker turnDisplayOn;
tim007 0:a1dbffe52ea5 12 Ticker check1;
tim007 0:a1dbffe52ea5 13 Ticker check2;
tim007 0:a1dbffe52ea5 14
tim007 0:a1dbffe52ea5 15 // Mapiranja su:
tim007 0:a1dbffe52ea5 16 // A - dp26 (bit 0)
tim007 0:a1dbffe52ea5 17 // B - dp27 (bit 1)
tim007 0:a1dbffe52ea5 18 // C - dp5 (bit 2)
tim007 0:a1dbffe52ea5 19 // D - dp6 (bit 3)
tim007 0:a1dbffe52ea5 20 // E - dp28 (bit 4)
tim007 0:a1dbffe52ea5 21 // F - dp1 (bit 5)
tim007 0:a1dbffe52ea5 22 // G - dp2 (bit 6)
tim007 0:a1dbffe52ea5 23
tim007 0:a1dbffe52ea5 24 BusOut segments (dp26, dp27, dp5, dp6, dp28, dp1, dp2);
tim007 0:a1dbffe52ea5 25
tim007 0:a1dbffe52ea5 26
tim007 0:a1dbffe52ea5 27 void writeSegment()// Pisanje cifara na display
tim007 0:a1dbffe52ea5 28 {
tim007 0:a1dbffe52ea5 29 if(timing < 100)
tim007 0:a1dbffe52ea5 30 timing += 0.001;
tim007 0:a1dbffe52ea5 31 // Cupamo pojedine cifre iz value
tim007 0:a1dbffe52ea5 32 d4 = int(timing / 10);
tim007 0:a1dbffe52ea5 33 d3 = int(timing) % 10;
tim007 0:a1dbffe52ea5 34 d2 = int(timing * 10) % 10;
tim007 0:a1dbffe52ea5 35
tim007 0:a1dbffe52ea5 36 switch (index)
tim007 0:a1dbffe52ea5 37 {
tim007 0:a1dbffe52ea5 38 case 2:
tim007 0:a1dbffe52ea5 39 dec_p = 1;
tim007 0:a1dbffe52ea5 40 value = lookup[d2];
tim007 0:a1dbffe52ea5 41 value = lookup[value];
tim007 0:a1dbffe52ea5 42 segments = value;
tim007 0:a1dbffe52ea5 43 displays[0] = 0;
tim007 0:a1dbffe52ea5 44 displays[1] = 1;
tim007 0:a1dbffe52ea5 45 displays[2] = 1;
tim007 0:a1dbffe52ea5 46 break;
tim007 0:a1dbffe52ea5 47 case 3:
tim007 0:a1dbffe52ea5 48 dec_p = 0;
tim007 0:a1dbffe52ea5 49 value = lookup[d3];
tim007 0:a1dbffe52ea5 50 value = lookup[value];
tim007 0:a1dbffe52ea5 51 segments = value;
tim007 0:a1dbffe52ea5 52 displays[0]= 1;
tim007 0:a1dbffe52ea5 53 displays[1] = 0;
tim007 0:a1dbffe52ea5 54 displays[2] = 1;
tim007 0:a1dbffe52ea5 55 break;
tim007 0:a1dbffe52ea5 56 case 4:
tim007 0:a1dbffe52ea5 57 dec_p = 1;
tim007 0:a1dbffe52ea5 58 value = lookup[d4];
tim007 0:a1dbffe52ea5 59 value = lookup[value];
tim007 0:a1dbffe52ea5 60 segments = value;
tim007 0:a1dbffe52ea5 61 displays[0] = 1;
tim007 0:a1dbffe52ea5 62 displays[1] = 1;
tim007 0:a1dbffe52ea5 63 displays[2] = 0;
tim007 0:a1dbffe52ea5 64 break;
tim007 0:a1dbffe52ea5 65 }
tim007 0:a1dbffe52ea5 66 index++;// Prelazimo na iduci display
tim007 0:a1dbffe52ea5 67 if (index == 5)
tim007 0:a1dbffe52ea5 68 index = 2;
tim007 0:a1dbffe52ea5 69 }
tim007 0:a1dbffe52ea5 70
tim007 0:a1dbffe52ea5 71 void checkOnOff()
tim007 0:a1dbffe52ea5 72 {
tim007 0:a1dbffe52ea5 73 if(power == '1' && power2 == '0')
tim007 0:a1dbffe52ea5 74 {
tim007 0:a1dbffe52ea5 75 for(int i = 0; i < 500; i++)
tim007 0:a1dbffe52ea5 76 if(power == '0')
tim007 0:a1dbffe52ea5 77 break;
tim007 0:a1dbffe52ea5 78 if(power == '1')
tim007 0:a1dbffe52ea5 79 {
tim007 0:a1dbffe52ea5 80 turnDisplayOn.attach(&writeSegment,0.001);
tim007 0:a1dbffe52ea5 81 }
tim007 0:a1dbffe52ea5 82 }
tim007 0:a1dbffe52ea5 83 else if(power == '0' && power2 == '1')
tim007 0:a1dbffe52ea5 84 {
tim007 0:a1dbffe52ea5 85 for(int i = 0; i < 500; i++)
tim007 0:a1dbffe52ea5 86 if(power == '1')
tim007 0:a1dbffe52ea5 87 break;
tim007 0:a1dbffe52ea5 88 if(power == '0')
tim007 0:a1dbffe52ea5 89 {
tim007 0:a1dbffe52ea5 90 turnDisplayOn.detach();
tim007 0:a1dbffe52ea5 91 }
tim007 0:a1dbffe52ea5 92 }
tim007 0:a1dbffe52ea5 93 }
tim007 0:a1dbffe52ea5 94
tim007 0:a1dbffe52ea5 95 void checkReset()
tim007 0:a1dbffe52ea5 96 {
tim007 0:a1dbffe52ea5 97 if( reset == '1' && reset2 == '0')
tim007 0:a1dbffe52ea5 98 {
tim007 0:a1dbffe52ea5 99 for(int i = 0; i < 500; i++)
tim007 0:a1dbffe52ea5 100 if(reset == '0')
tim007 0:a1dbffe52ea5 101 break;
tim007 0:a1dbffe52ea5 102 if(reset == '1')
tim007 0:a1dbffe52ea5 103 {
tim007 0:a1dbffe52ea5 104 value = 0;
tim007 0:a1dbffe52ea5 105 turnDisplayOn.attach(&writeSegment,0.001);
tim007 0:a1dbffe52ea5 106 }
tim007 0:a1dbffe52ea5 107 }
tim007 0:a1dbffe52ea5 108 }
tim007 0:a1dbffe52ea5 109
tim007 0:a1dbffe52ea5 110 int main()
tim007 0:a1dbffe52ea5 111 {
tim007 0:a1dbffe52ea5 112 check1.attach(&checkOnOff, 0.0001);
tim007 0:a1dbffe52ea5 113 check2.attach(&checkReset, 0.0001);
tim007 0:a1dbffe52ea5 114 return 0;
tim007 0:a1dbffe52ea5 115 }