Sinanović Hamdija
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 #define NULA 0x01 00004 #define JEDAN 0x4F 00005 #define DVA 0x12 00006 #define TRI 0x06 00007 #define CETIRI 0x4C 00008 #define PET 0x24 00009 #define SEST 0x20 00010 #define SEDAM 0x0F 00011 #define OSAM 0x00 00012 #define DEVET 0x04 00013 #define A 0x08 00014 #define B 0x60 00015 #define C 0x31 00016 #define D 0x42 00017 #define E 0x30 00018 #define F 0x38 00019 #define HASH 0x48 00020 #define ZVIJEZDA 0x7E 00021 00022 #define PRVA 0x3 00023 #define DRUGA 0x5 00024 #define TRECA 0x6 00025 #define OFF 0x7 00026 00027 Timer T; 00028 Timer deb; 00029 InterruptIn taster1(dp1); 00030 InterruptIn taster2(dp2); 00031 00032 Ticker tic; 00033 00034 DigitalOut enabled (dp14); 00035 BusOut vrijednost (dp18, dp4, dp28, dp6, dp5, dp27, dp26); 00036 00037 BusOut cifra (dp23, dp24, dp25); 00038 DigitalOut tacka (dp17); 00039 00040 int vrijednosti[10] = {NULA, JEDAN, DVA, TRI, CETIRI, PET, SEST, SEDAM, OSAM, DEVET}; 00041 int cifre[3] = {TRECA, DRUGA, PRVA}; 00042 int v1, v2, v3, tacka1; 00043 00044 void resetuj(){ 00045 if(deb.read_ms() > 400) { 00046 T.stop(); 00047 T.reset(); 00048 deb.reset(); 00049 } 00050 } 00051 00052 00053 void toggle(){ 00054 static int on(0); 00055 if(deb.read_ms() > 400) { 00056 if(on) {T.stop();} else {T.start();} 00057 on = (on+1)%2; 00058 deb.reset(); 00059 } 00060 } 00061 00062 void refresh(); 00063 00064 int main() { 00065 //T.start(); 00066 deb.start(); 00067 taster1.fall(&toggle); 00068 taster2.fall(&resetuj); 00069 tic.attach(&refresh, 0.006); 00070 int br = 0; 00071 00072 v1 = 0; 00073 v2 = 0; 00074 v3 = 0; 00075 00076 enabled = 1; 00077 00078 tacka1 = 1; 00079 cifra = PRVA; 00080 vrijednost = NULA; 00081 tacka = 1; 00082 cifra = DRUGA; 00083 vrijednost = NULA; 00084 tacka = 0; 00085 cifra = TRECA; 00086 vrijednost = NULA; 00087 tacka = 1; 00088 00089 while(1) { 00090 br = T.read_ms()/100; 00091 v3 = br%10; 00092 br /= 10; 00093 v2 = br%10; 00094 br /= 10; 00095 v1 = br%10; 00096 } 00097 } 00098 00099 00100 00101 void refresh(){ 00102 static int c(0); 00103 if(c == 0) { 00104 vrijednost = vrijednosti[v1]; 00105 tacka = 1; 00106 cifra = cifre[c]; 00107 c = (c+1)%3; 00108 } 00109 else if(c == 1) { 00110 vrijednost = vrijednosti[v2]; 00111 tacka = 0; 00112 cifra = cifre[c]; 00113 c = (c+1)%3; 00114 } 00115 else { 00116 vrijednost = vrijednosti[v3]; 00117 tacka = 1; 00118 cifra = cifre[c]; 00119 c = (c+1)%3; 00120 } 00121 }
Generated on Thu Aug 25 2022 09:14:13 by
1.7.2