Adna Durakovic Almir Husic

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