Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:e02364deebdf, 2022-05-03 (annotated)
- Committer:
- jozinovic
- Date:
- Tue May 03 17:32:11 2022 +0000
- Revision:
- 0:e02364deebdf
- Child:
- 1:ca304c1f69b8
OK
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jozinovic | 0:e02364deebdf | 1 | #include "mbed.h" |
jozinovic | 0:e02364deebdf | 2 | #include "Blink.h" |
jozinovic | 0:e02364deebdf | 3 | //Definiranje ulaza |
jozinovic | 0:e02364deebdf | 4 | InterruptIn button(USER_BUTTON); |
jozinovic | 0:e02364deebdf | 5 | |
jozinovic | 0:e02364deebdf | 6 | //Definiranje tajmera |
jozinovic | 0:e02364deebdf | 7 | Timer debounce; |
jozinovic | 0:e02364deebdf | 8 | Timer Prekid1; |
jozinovic | 0:e02364deebdf | 9 | Timer Prekid2; |
jozinovic | 0:e02364deebdf | 10 | Ticker flipper; |
jozinovic | 0:e02364deebdf | 11 | |
jozinovic | 0:e02364deebdf | 12 | //Definifanje izlaza |
jozinovic | 0:e02364deebdf | 13 | LED led1(D11); |
jozinovic | 0:e02364deebdf | 14 | LED led2(D12); |
jozinovic | 0:e02364deebdf | 15 | |
jozinovic | 0:e02364deebdf | 16 | LED led5(D15); |
jozinovic | 0:e02364deebdf | 17 | BusOut Seg1(D2,D3,D4,D5,D6,D7,D8,D9); |
jozinovic | 0:e02364deebdf | 18 | |
jozinovic | 0:e02364deebdf | 19 | //Definiranje funkcija |
jozinovic | 0:e02364deebdf | 20 | char SegConvert(int SegValue); |
jozinovic | 0:e02364deebdf | 21 | void Binary (int g); |
jozinovic | 0:e02364deebdf | 22 | void prekid(void); |
jozinovic | 0:e02364deebdf | 23 | |
jozinovic | 0:e02364deebdf | 24 | //Funkcija upravljanja s 7 segmentnim displeom |
jozinovic | 0:e02364deebdf | 25 | char SegConvert(int SegValue) { |
jozinovic | 0:e02364deebdf | 26 | char SegByte=0x00; |
jozinovic | 0:e02364deebdf | 27 | switch (SegValue) { |
jozinovic | 0:e02364deebdf | 28 | case 0 : SegByte = 0x3F;break; |
jozinovic | 0:e02364deebdf | 29 | case 1 : SegByte = 0x06;break; |
jozinovic | 0:e02364deebdf | 30 | case 2 : SegByte = 0x5B;break; |
jozinovic | 0:e02364deebdf | 31 | case 3 : SegByte = 0x4F;break; |
jozinovic | 0:e02364deebdf | 32 | case 4 : SegByte = 0x66;break; |
jozinovic | 0:e02364deebdf | 33 | case 5 : SegByte = 0x6D;break; |
jozinovic | 0:e02364deebdf | 34 | case 6 : SegByte = 0x7D;break; |
jozinovic | 0:e02364deebdf | 35 | case 7 : SegByte = 0x07;break; |
jozinovic | 0:e02364deebdf | 36 | case 8 : SegByte = 0x7F;break; |
jozinovic | 0:e02364deebdf | 37 | case 9 : SegByte = 0x6F;break; |
jozinovic | 0:e02364deebdf | 38 | } |
jozinovic | 0:e02364deebdf | 39 | return SegByte; |
jozinovic | 0:e02364deebdf | 40 | } |
jozinovic | 0:e02364deebdf | 41 | |
jozinovic | 0:e02364deebdf | 42 | //Funkcija prekida |
jozinovic | 0:e02364deebdf | 43 | void prekid() |
jozinovic | 0:e02364deebdf | 44 | { |
jozinovic | 0:e02364deebdf | 45 | if(debounce.read_ms()>200){ |
jozinovic | 0:e02364deebdf | 46 | led1.status(0); |
jozinovic | 0:e02364deebdf | 47 | led2.status(0); |
jozinovic | 0:e02364deebdf | 48 | |
jozinovic | 0:e02364deebdf | 49 | led5.status(0); |
jozinovic | 0:e02364deebdf | 50 | while(Prekid1.read()<=10){ |
jozinovic | 0:e02364deebdf | 51 | Prekid1.start(); |
jozinovic | 0:e02364deebdf | 52 | Prekid2.start(); |
jozinovic | 0:e02364deebdf | 53 | if(Prekid2.read_ms()>=500) |
jozinovic | 0:e02364deebdf | 54 | { |
jozinovic | 0:e02364deebdf | 55 | led1.flip(); |
jozinovic | 0:e02364deebdf | 56 | Prekid2.stop(); |
jozinovic | 0:e02364deebdf | 57 | Prekid2.reset(); |
jozinovic | 0:e02364deebdf | 58 | } |
jozinovic | 0:e02364deebdf | 59 | } |
jozinovic | 0:e02364deebdf | 60 | Prekid1.stop(); |
jozinovic | 0:e02364deebdf | 61 | Prekid1.reset(); |
jozinovic | 0:e02364deebdf | 62 | } |
jozinovic | 0:e02364deebdf | 63 | debounce.reset(); |
jozinovic | 0:e02364deebdf | 64 | } |
jozinovic | 0:e02364deebdf | 65 | |
jozinovic | 0:e02364deebdf | 66 | //Funkcija odredivanja stanja LED |
jozinovic | 0:e02364deebdf | 67 | void Binary (int g) |
jozinovic | 0:e02364deebdf | 68 | { |
jozinovic | 0:e02364deebdf | 69 | switch (g) { |
jozinovic | 0:e02364deebdf | 70 | case 0: { |
jozinovic | 0:e02364deebdf | 71 | break; |
jozinovic | 0:e02364deebdf | 72 | } |
jozinovic | 0:e02364deebdf | 73 | case 1: { |
jozinovic | 0:e02364deebdf | 74 | led1.flip(); |
jozinovic | 0:e02364deebdf | 75 | break; |
jozinovic | 0:e02364deebdf | 76 | } |
jozinovic | 0:e02364deebdf | 77 | case 2: { |
jozinovic | 0:e02364deebdf | 78 | led2.flip(); |
jozinovic | 0:e02364deebdf | 79 | break; |
jozinovic | 0:e02364deebdf | 80 | } |
jozinovic | 0:e02364deebdf | 81 | case 3: { |
jozinovic | 0:e02364deebdf | 82 | led1.flip(); |
jozinovic | 0:e02364deebdf | 83 | led2.flip(); |
jozinovic | 0:e02364deebdf | 84 | break; |
jozinovic | 0:e02364deebdf | 85 | } |
jozinovic | 0:e02364deebdf | 86 | case 4: { |
jozinovic | 0:e02364deebdf | 87 | led2.flip(); |
jozinovic | 0:e02364deebdf | 88 | led1.flip(); |
jozinovic | 0:e02364deebdf | 89 | break; |
jozinovic | 0:e02364deebdf | 90 | } |
jozinovic | 0:e02364deebdf | 91 | case 5: { |
jozinovic | 0:e02364deebdf | 92 | led2.flip(); |
jozinovic | 0:e02364deebdf | 93 | |
jozinovic | 0:e02364deebdf | 94 | break; |
jozinovic | 0:e02364deebdf | 95 | } |
jozinovic | 0:e02364deebdf | 96 | case 6: { |
jozinovic | 0:e02364deebdf | 97 | |
jozinovic | 0:e02364deebdf | 98 | led1.flip(); |
jozinovic | 0:e02364deebdf | 99 | break; |
jozinovic | 0:e02364deebdf | 100 | } |
jozinovic | 0:e02364deebdf | 101 | case 7: { |
jozinovic | 0:e02364deebdf | 102 | led2.flip(); |
jozinovic | 0:e02364deebdf | 103 | led1.flip(); |
jozinovic | 0:e02364deebdf | 104 | |
jozinovic | 0:e02364deebdf | 105 | break; |
jozinovic | 0:e02364deebdf | 106 | } |
jozinovic | 0:e02364deebdf | 107 | case 8: { |
jozinovic | 0:e02364deebdf | 108 | led2.flip(); |
jozinovic | 0:e02364deebdf | 109 | led1.flip(); |
jozinovic | 0:e02364deebdf | 110 | led2.flip(); |
jozinovic | 0:e02364deebdf | 111 | break; |
jozinovic | 0:e02364deebdf | 112 | } |
jozinovic | 0:e02364deebdf | 113 | |
jozinovic | 0:e02364deebdf | 114 | } |
jozinovic | 0:e02364deebdf | 115 | } |
jozinovic | 0:e02364deebdf | 116 | |
jozinovic | 0:e02364deebdf | 117 | //funkcija Ticker-a |
jozinovic | 0:e02364deebdf | 118 | void flip(){ |
jozinovic | 0:e02364deebdf | 119 | led5.flip(); |
jozinovic | 0:e02364deebdf | 120 | } |
jozinovic | 0:e02364deebdf | 121 | |
jozinovic | 0:e02364deebdf | 122 | //main funkcija |
jozinovic | 0:e02364deebdf | 123 | int main() |
jozinovic | 0:e02364deebdf | 124 | { |
jozinovic | 0:e02364deebdf | 125 | debounce.start(); |
jozinovic | 0:e02364deebdf | 126 | button.rise(&prekid); |
jozinovic | 0:e02364deebdf | 127 | flipper.attach(&flip,0.2); |
jozinovic | 0:e02364deebdf | 128 | int i; |
jozinovic | 0:e02364deebdf | 129 | while(1){ |
jozinovic | 0:e02364deebdf | 130 | for (i=0;i<10;i++){ |
jozinovic | 0:e02364deebdf | 131 | led1.status(0); |
jozinovic | 0:e02364deebdf | 132 | led2.status(0); |
jozinovic | 0:e02364deebdf | 133 | |
jozinovic | 0:e02364deebdf | 134 | led5.status(0); |
jozinovic | 0:e02364deebdf | 135 | Seg1=SegConvert(i); |
jozinovic | 0:e02364deebdf | 136 | Binary(i); |
jozinovic | 0:e02364deebdf | 137 | wait_ms(1000); |
jozinovic | 0:e02364deebdf | 138 | } |
jozinovic | 0:e02364deebdf | 139 | } |
jozinovic | 0:e02364deebdf | 140 | } |