Filip Stevanovic
/
19E042PIM_T1_2020_0039
Filip Stevanovic 2020/0039
main.cpp@0:73ba3c3ca466, 2021-11-06 (annotated)
- Committer:
- filip_ste
- Date:
- Sat Nov 06 08:15:52 2021 +0000
- Revision:
- 0:73ba3c3ca466
- Child:
- 1:0f79d461ce2e
Filip Stevanovic 2020/0039
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
filip_ste | 0:73ba3c3ca466 | 1 | #include<mbed.h> |
filip_ste | 0:73ba3c3ca466 | 2 | |
filip_ste | 0:73ba3c3ca466 | 3 | |
filip_ste | 0:73ba3c3ca466 | 4 | |
filip_ste | 0:73ba3c3ca466 | 5 | //Pinovi |
filip_ste | 0:73ba3c3ca466 | 6 | #define A PA_10 |
filip_ste | 0:73ba3c3ca466 | 7 | #define B PA_9 |
filip_ste | 0:73ba3c3ca466 | 8 | #define C PA_8 |
filip_ste | 0:73ba3c3ca466 | 9 | #define D PB_10 |
filip_ste | 0:73ba3c3ca466 | 10 | #define E PB_5 |
filip_ste | 0:73ba3c3ca466 | 11 | #define F PB_4 |
filip_ste | 0:73ba3c3ca466 | 12 | #define G PB_3 |
filip_ste | 0:73ba3c3ca466 | 13 | #define SEL1 PB_6 |
filip_ste | 0:73ba3c3ca466 | 14 | #define SEL2 PC_7 |
filip_ste | 0:73ba3c3ca466 | 15 | #define SW1 PC_9 |
filip_ste | 0:73ba3c3ca466 | 16 | #define SW2 PC_8 |
filip_ste | 0:73ba3c3ca466 | 17 | |
filip_ste | 0:73ba3c3ca466 | 18 | //Vremena |
filip_ste | 0:73ba3c3ca466 | 19 | #define HalfPool 1 |
filip_ste | 0:73ba3c3ca466 | 20 | |
filip_ste | 0:73ba3c3ca466 | 21 | //Definisanje izlaza |
filip_ste | 0:73ba3c3ca466 | 22 | BusOut display (A,B,C,D,E,F,G); |
filip_ste | 0:73ba3c3ca466 | 23 | BusOut select (SEL2,SEL1); |
filip_ste | 0:73ba3c3ca466 | 24 | DigitalIn Dugme1 (SW1); |
filip_ste | 0:73ba3c3ca466 | 25 | DigitalIn Dugme2 (SW2); |
filip_ste | 0:73ba3c3ca466 | 26 | |
filip_ste | 0:73ba3c3ca466 | 27 | //Funkcija za ispisivanje cifre na displej |
filip_ste | 0:73ba3c3ca466 | 28 | void SegDisp (int num){ |
filip_ste | 0:73ba3c3ca466 | 29 | switch(num){ |
filip_ste | 0:73ba3c3ca466 | 30 | case 0:display = 0b1000000;break; |
filip_ste | 0:73ba3c3ca466 | 31 | case 1:display = 0b1111001;break; |
filip_ste | 0:73ba3c3ca466 | 32 | case 2:display = 0b0100100;break; |
filip_ste | 0:73ba3c3ca466 | 33 | case 3:display = 0b0110000;break; |
filip_ste | 0:73ba3c3ca466 | 34 | case 4:display = 0b0011001;break; |
filip_ste | 0:73ba3c3ca466 | 35 | case 5:display = 0b0010010;break; |
filip_ste | 0:73ba3c3ca466 | 36 | case 6:display = 0b0000010;break; |
filip_ste | 0:73ba3c3ca466 | 37 | case 7:display = 0b1111000;break; |
filip_ste | 0:73ba3c3ca466 | 38 | case 8:display = 0b0000000;break; |
filip_ste | 0:73ba3c3ca466 | 39 | case 9:display = 0b0010000;break; |
filip_ste | 0:73ba3c3ca466 | 40 | default:display = 0x7f; break; |
filip_ste | 0:73ba3c3ca466 | 41 | |
filip_ste | 0:73ba3c3ca466 | 42 | } |
filip_ste | 0:73ba3c3ca466 | 43 | } |
filip_ste | 0:73ba3c3ca466 | 44 | |
filip_ste | 0:73ba3c3ca466 | 45 | //Konvertovanje broja u cifre i ispisivanje |
filip_ste | 0:73ba3c3ca466 | 46 | void ispisi(int num){ |
filip_ste | 0:73ba3c3ca466 | 47 | int j = num%10,d = num/10; |
filip_ste | 0:73ba3c3ca466 | 48 | SegDisp(d); |
filip_ste | 0:73ba3c3ca466 | 49 | select = 0b01; |
filip_ste | 0:73ba3c3ca466 | 50 | wait_ms(HalfPool); |
filip_ste | 0:73ba3c3ca466 | 51 | SegDisp(j); |
filip_ste | 0:73ba3c3ca466 | 52 | select = 0b10; |
filip_ste | 0:73ba3c3ca466 | 53 | wait_ms(HalfPool); |
filip_ste | 0:73ba3c3ca466 | 54 | } |
filip_ste | 0:73ba3c3ca466 | 55 | |
filip_ste | 0:73ba3c3ca466 | 56 | //Varijable za pracenje dugmadi i trenutnog broja |
filip_ste | 0:73ba3c3ca466 | 57 | int lastDugme1=1,lastDugme2=1; |
filip_ste | 0:73ba3c3ca466 | 58 | int lastlastDugme1=1,lastlastDugme2=1; |
filip_ste | 0:73ba3c3ca466 | 59 | int brojac=0; |
filip_ste | 0:73ba3c3ca466 | 60 | |
filip_ste | 0:73ba3c3ca466 | 61 | int main(){ |
filip_ste | 0:73ba3c3ca466 | 62 | display = 0x7f; |
filip_ste | 0:73ba3c3ca466 | 63 | select = 0x3; |
filip_ste | 0:73ba3c3ca466 | 64 | |
filip_ste | 0:73ba3c3ca466 | 65 | while(1){ |
filip_ste | 0:73ba3c3ca466 | 66 | //Ispisivanje |
filip_ste | 0:73ba3c3ca466 | 67 | ispisi(brojac); |
filip_ste | 0:73ba3c3ca466 | 68 | |
filip_ste | 0:73ba3c3ca466 | 69 | //Provera da li je doslo do promene |
filip_ste | 0:73ba3c3ca466 | 70 | if(lastlastDugme1==0 && lastDugme1==0 && Dugme1==1) |
filip_ste | 0:73ba3c3ca466 | 71 | brojac=(brojac+1)%16; |
filip_ste | 0:73ba3c3ca466 | 72 | |
filip_ste | 0:73ba3c3ca466 | 73 | if(lastlastDugme2==0 && lastDugme2==0 && Dugme2==1) |
filip_ste | 0:73ba3c3ca466 | 74 | brojac=(brojac+15)%16; |
filip_ste | 0:73ba3c3ca466 | 75 | |
filip_ste | 0:73ba3c3ca466 | 76 | //Update stanja |
filip_ste | 0:73ba3c3ca466 | 77 | lastlastDugme1=lastDugme1; |
filip_ste | 0:73ba3c3ca466 | 78 | lastlastDugme2=lastDugme2; |
filip_ste | 0:73ba3c3ca466 | 79 | |
filip_ste | 0:73ba3c3ca466 | 80 | lastDugme1=Dugme1; |
filip_ste | 0:73ba3c3ca466 | 81 | lastDugme2=Dugme2; |
filip_ste | 0:73ba3c3ca466 | 82 | |
filip_ste | 0:73ba3c3ca466 | 83 | } |
filip_ste | 0:73ba3c3ca466 | 84 | |
filip_ste | 0:73ba3c3ca466 | 85 | } |