Adna Durakovic Almir Husic
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 int brojevi[10] = {0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10}; 00004 BusOut segmenti(dp26, dp27, dp5, dp6, dp28, dp4, dp18); 00005 BusOut pcdctc(dp23, dp24, dp25); 00006 DigitalOut enable(dp14), tacka(dp17); 00007 InterruptIn t1(dp1), t2(dp2); 00008 Timer timer1, timer2; 00009 Ticker stoperica; 00010 int cifre_p[3] = {6,5,3}; 00011 float vrijednost = 0; 00012 00013 bool stop = true; 00014 void StartStop() { 00015 if(timer1.read_ms() > 200) { 00016 stop = !stop; 00017 timer1.reset(); 00018 } 00019 } 00020 00021 void Restart() { 00022 if(timer2.read_ms() > 200) { 00023 stop = true; 00024 vrijednost = 0; 00025 timer2.reset(); 00026 } 00027 } 00028 00029 void Enable(int broj) { 00030 if(broj >= 0 && broj <= 9) segmenti = brojevi[broj]; 00031 else segmenti = 0x7f; 00032 } 00033 00034 void PrikaziCifru(int cifra, int broj) { 00035 Enable(broj); 00036 if(cifra == 1) tacka = 0; 00037 else tacka = 1; 00038 pcdctc = cifre_p[cifra]; 00039 } 00040 00041 int i = 0; 00042 void PrikaziVrijednost() { 00043 tacka = 1; 00044 pcdctc = 7; 00045 00046 int prva, druga, treca; 00047 prva = int(vrijednost)/10; 00048 druga = int(vrijednost)%10; 00049 treca = int(vrijednost*10)%10; 00050 00051 int niz_cifara[3] = {prva, druga, treca}; 00052 PrikaziCifru(i, niz_cifara[i]); 00053 00054 if(vrijednost <= 99.9 && !stop) { vrijednost += 0.005; if(vrijednost == 99.9) vrijednost = 0; } 00055 00056 i = (i+1) % 3; 00057 } 00058 00059 int main() { 00060 enable = 1; 00061 segmenti=0; 00062 pcdctc=0; 00063 wait(1); 00064 pcdctc=7; 00065 wait(1); 00066 pcdctc=0; 00067 wait(1); 00068 00069 00070 00071 00072 stoperica.attach(&PrikaziVrijednost, 0.005); 00073 timer1.start(); 00074 timer2.start(); 00075 t1.rise(&StartStop); 00076 t2.rise(&Restart); 00077 while(1){} 00078 00079 }
Generated on Tue Aug 23 2022 00:35:20 by
1.7.2