Sinanović Hamdija

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }