TVZ2021 / Mbed OS LEDBrojac-Jozinovic
Committer:
jozinovic
Date:
Tue May 03 17:32:11 2022 +0000
Revision:
0:e02364deebdf
Child:
1:ca304c1f69b8
OK

Who changed what in which revision?

UserRevisionLine numberNew 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 }