Andrija Mijailovic
/
19E042PIM_T1_2020_0388
Andrija Mijailovic 0388
main.cpp@0:b72e4bc7884d, 2021-11-06 (annotated)
- Committer:
- ma200388
- Date:
- Sat Nov 06 08:52:19 2021 +0000
- Revision:
- 0:b72e4bc7884d
Andrija Mijailovic 0388
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ma200388 | 0:b72e4bc7884d | 1 | /* |
ma200388 | 0:b72e4bc7884d | 2 | *Biblioteke |
ma200388 | 0:b72e4bc7884d | 3 | */ |
ma200388 | 0:b72e4bc7884d | 4 | #include "mbed.h" |
ma200388 | 0:b72e4bc7884d | 5 | #include "platform/mbed_thread.h" |
ma200388 | 0:b72e4bc7884d | 6 | |
ma200388 | 0:b72e4bc7884d | 7 | /* |
ma200388 | 0:b72e4bc7884d | 8 | *Definisanje |
ma200388 | 0:b72e4bc7884d | 9 | */ |
ma200388 | 0:b72e4bc7884d | 10 | |
ma200388 | 0:b72e4bc7884d | 11 | #define POLL_MS 50 |
ma200388 | 0:b72e4bc7884d | 12 | #define BLINKING_RATE_MS 8 |
ma200388 | 0:b72e4bc7884d | 13 | #define ZERO 64 |
ma200388 | 0:b72e4bc7884d | 14 | #define ONE 121 |
ma200388 | 0:b72e4bc7884d | 15 | #define TWO 36 |
ma200388 | 0:b72e4bc7884d | 16 | #define THREE 48 |
ma200388 | 0:b72e4bc7884d | 17 | #define FOUR 25 |
ma200388 | 0:b72e4bc7884d | 18 | #define FIVE 18 |
ma200388 | 0:b72e4bc7884d | 19 | #define SIX 2 |
ma200388 | 0:b72e4bc7884d | 20 | #define SEVEN 120 |
ma200388 | 0:b72e4bc7884d | 21 | #define EIGHT 0 |
ma200388 | 0:b72e4bc7884d | 22 | #define NINE 16 |
ma200388 | 0:b72e4bc7884d | 23 | //0-0000001=64, 1- 1001111=121, 2- 0010010=36, 3-0000110=48, 4-1001100=25, 5-0100100=18, 6-0100000=2, 7-0001111=120, 8-0000000=0, 9-0000100=16 |
ma200388 | 0:b72e4bc7884d | 24 | |
ma200388 | 0:b72e4bc7884d | 25 | /* |
ma200388 | 0:b72e4bc7884d | 26 | *Globalne promenljive |
ma200388 | 0:b72e4bc7884d | 27 | */ |
ma200388 | 0:b72e4bc7884d | 28 | |
ma200388 | 0:b72e4bc7884d | 29 | /* |
ma200388 | 0:b72e4bc7884d | 30 | *Glavna funkcija |
ma200388 | 0:b72e4bc7884d | 31 | */ |
ma200388 | 0:b72e4bc7884d | 32 | int main() |
ma200388 | 0:b72e4bc7884d | 33 | { |
ma200388 | 0:b72e4bc7884d | 34 | DigitalOut led(LED1); |
ma200388 | 0:b72e4bc7884d | 35 | DigitalIn sw1(PC_9); |
ma200388 | 0:b72e4bc7884d | 36 | DigitalOut sel1(PB_6); |
ma200388 | 0:b72e4bc7884d | 37 | DigitalOut sel2(PC_7); |
ma200388 | 0:b72e4bc7884d | 38 | BusOut display(PA_10,PA_9,PA_8,PB_10,PB_5,PB_4,PB_3); |
ma200388 | 0:b72e4bc7884d | 39 | int i=0; |
ma200388 | 0:b72e4bc7884d | 40 | while (true) { |
ma200388 | 0:b72e4bc7884d | 41 | static char pusteno=0; |
ma200388 | 0:b72e4bc7884d | 42 | if(!sw1){ |
ma200388 | 0:b72e4bc7884d | 43 | if(pusteno){ |
ma200388 | 0:b72e4bc7884d | 44 | i++; |
ma200388 | 0:b72e4bc7884d | 45 | if(i>15)i=0; |
ma200388 | 0:b72e4bc7884d | 46 | pusteno=0; |
ma200388 | 0:b72e4bc7884d | 47 | } |
ma200388 | 0:b72e4bc7884d | 48 | else pusteno=1; |
ma200388 | 0:b72e4bc7884d | 49 | wait_ms(POLL_MS); |
ma200388 | 0:b72e4bc7884d | 50 | } |
ma200388 | 0:b72e4bc7884d | 51 | switch(i){ |
ma200388 | 0:b72e4bc7884d | 52 | case 0: |
ma200388 | 0:b72e4bc7884d | 53 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 54 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 55 | display.write(ZERO); |
ma200388 | 0:b72e4bc7884d | 56 | break; |
ma200388 | 0:b72e4bc7884d | 57 | case 1: |
ma200388 | 0:b72e4bc7884d | 58 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 59 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 60 | display.write(ONE); |
ma200388 | 0:b72e4bc7884d | 61 | break; |
ma200388 | 0:b72e4bc7884d | 62 | case 2: |
ma200388 | 0:b72e4bc7884d | 63 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 64 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 65 | display.write(TWO); |
ma200388 | 0:b72e4bc7884d | 66 | break; |
ma200388 | 0:b72e4bc7884d | 67 | case 3: |
ma200388 | 0:b72e4bc7884d | 68 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 69 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 70 | display.write(THREE); |
ma200388 | 0:b72e4bc7884d | 71 | break; |
ma200388 | 0:b72e4bc7884d | 72 | case 4: |
ma200388 | 0:b72e4bc7884d | 73 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 74 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 75 | display.write(FOUR); |
ma200388 | 0:b72e4bc7884d | 76 | break; |
ma200388 | 0:b72e4bc7884d | 77 | case 5: |
ma200388 | 0:b72e4bc7884d | 78 | sel1.write(SIX); |
ma200388 | 0:b72e4bc7884d | 79 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 80 | display.write(FIVE); |
ma200388 | 0:b72e4bc7884d | 81 | break; |
ma200388 | 0:b72e4bc7884d | 82 | case 6: |
ma200388 | 0:b72e4bc7884d | 83 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 84 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 85 | display.write(SIX); |
ma200388 | 0:b72e4bc7884d | 86 | break; |
ma200388 | 0:b72e4bc7884d | 87 | case 7: |
ma200388 | 0:b72e4bc7884d | 88 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 89 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 90 | display.write(SEVEN); |
ma200388 | 0:b72e4bc7884d | 91 | break; |
ma200388 | 0:b72e4bc7884d | 92 | case 8: |
ma200388 | 0:b72e4bc7884d | 93 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 94 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 95 | display.write(EIGHT); |
ma200388 | 0:b72e4bc7884d | 96 | break; |
ma200388 | 0:b72e4bc7884d | 97 | case 9: |
ma200388 | 0:b72e4bc7884d | 98 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 99 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 100 | display.write(NINE); |
ma200388 | 0:b72e4bc7884d | 101 | break; |
ma200388 | 0:b72e4bc7884d | 102 | case 10: |
ma200388 | 0:b72e4bc7884d | 103 | sel1.write(0); |
ma200388 | 0:b72e4bc7884d | 104 | sel2.write(1); |
ma200388 | 0:b72e4bc7884d | 105 | display.write(ONE); |
ma200388 | 0:b72e4bc7884d | 106 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 107 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 108 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 109 | display.write(ZERO); |
ma200388 | 0:b72e4bc7884d | 110 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 111 | break; |
ma200388 | 0:b72e4bc7884d | 112 | case 11: |
ma200388 | 0:b72e4bc7884d | 113 | sel1.write(0); |
ma200388 | 0:b72e4bc7884d | 114 | sel2.write(1); |
ma200388 | 0:b72e4bc7884d | 115 | display.write(ONE); |
ma200388 | 0:b72e4bc7884d | 116 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 117 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 118 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 119 | display.write(ONE); |
ma200388 | 0:b72e4bc7884d | 120 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 121 | break; |
ma200388 | 0:b72e4bc7884d | 122 | case 12: |
ma200388 | 0:b72e4bc7884d | 123 | sel1.write(0); |
ma200388 | 0:b72e4bc7884d | 124 | sel2.write(1); |
ma200388 | 0:b72e4bc7884d | 125 | display.write(ONE); |
ma200388 | 0:b72e4bc7884d | 126 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 127 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 128 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 129 | display.write(TWO); |
ma200388 | 0:b72e4bc7884d | 130 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 131 | break; |
ma200388 | 0:b72e4bc7884d | 132 | case 13: |
ma200388 | 0:b72e4bc7884d | 133 | sel1.write(0); |
ma200388 | 0:b72e4bc7884d | 134 | sel2.write(1); |
ma200388 | 0:b72e4bc7884d | 135 | display.write(ONE); |
ma200388 | 0:b72e4bc7884d | 136 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 137 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 138 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 139 | display.write(THREE); |
ma200388 | 0:b72e4bc7884d | 140 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 141 | break; |
ma200388 | 0:b72e4bc7884d | 142 | case 14: |
ma200388 | 0:b72e4bc7884d | 143 | sel1.write(0); |
ma200388 | 0:b72e4bc7884d | 144 | sel2.write(1); |
ma200388 | 0:b72e4bc7884d | 145 | display.write(ONE); |
ma200388 | 0:b72e4bc7884d | 146 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 147 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 148 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 149 | display.write(FOUR); |
ma200388 | 0:b72e4bc7884d | 150 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 151 | break; |
ma200388 | 0:b72e4bc7884d | 152 | case 15: |
ma200388 | 0:b72e4bc7884d | 153 | sel1.write(0); |
ma200388 | 0:b72e4bc7884d | 154 | sel2.write(1); |
ma200388 | 0:b72e4bc7884d | 155 | display.write(ONE); |
ma200388 | 0:b72e4bc7884d | 156 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 157 | sel1.write(1); |
ma200388 | 0:b72e4bc7884d | 158 | sel2.write(0); |
ma200388 | 0:b72e4bc7884d | 159 | display.write(FIVE); |
ma200388 | 0:b72e4bc7884d | 160 | wait_ms(BLINKING_RATE_MS); |
ma200388 | 0:b72e4bc7884d | 161 | break; |
ma200388 | 0:b72e4bc7884d | 162 | } |
ma200388 | 0:b72e4bc7884d | 163 | } |
ma200388 | 0:b72e4bc7884d | 164 | } |