Sinanović Hamdija

Dependencies:   mbed

main.cpp

Committer:
tim003
Date:
2014-04-10
Revision:
0:b4655a58de3c

File content as of revision 0:b4655a58de3c:

#include "mbed.h"
 
#define NULA 0x01        
#define JEDAN 0x4F        
#define DVA 0x12        
#define TRI 0x06                
#define CETIRI 0x4C        
#define PET 0x24        
#define SEST 0x20        
#define SEDAM 0x0F        
#define OSAM 0x00        
#define DEVET 0x04
#define A 0x08
#define B 0x60
#define C 0x31
#define D 0x42
#define E 0x30
#define F 0x38
#define HASH 0x48
#define ZVIJEZDA 0x7E
 
#define PRVA 0x3
#define DRUGA 0x5
#define TRECA 0x6
#define OFF 0x7

Timer T;
Timer deb;
InterruptIn taster1(dp1);
InterruptIn taster2(dp2);
 
Ticker tic;
 
DigitalOut enabled (dp14);
BusOut vrijednost (dp18, dp4, dp28, dp6, dp5, dp27, dp26);
 
BusOut cifra (dp23, dp24, dp25);
DigitalOut tacka (dp17);

int vrijednosti[10] = {NULA, JEDAN, DVA, TRI, CETIRI, PET, SEST, SEDAM, OSAM, DEVET};
int cifre[3] = {TRECA, DRUGA, PRVA};
int v1, v2, v3, tacka1;

void resetuj(){
    if(deb.read_ms() > 400) {
        T.stop();
        T.reset();
        deb.reset();
    }
}


void toggle(){
  static int on(0);
  if(deb.read_ms() > 400) {
    if(on) {T.stop();} else {T.start();}
    on = (on+1)%2;
    deb.reset();
  }
}

void refresh();
 
int main() {
  //T.start();
  deb.start();
  taster1.fall(&toggle);
  taster2.fall(&resetuj);
  tic.attach(&refresh, 0.006);
  int br = 0;
  
  v1 = 0;
  v2 = 0;
  v3 = 0;
  
  enabled = 1;
  
  tacka1 = 1;
  cifra = PRVA;
  vrijednost = NULA;
  tacka = 1;
  cifra = DRUGA;
  vrijednost = NULA;
  tacka = 0;
  cifra = TRECA;
  vrijednost = NULA;
  tacka = 1;
  
  while(1) {
    br = T.read_ms()/100;
    v3 = br%10;
    br /= 10;
    v2 = br%10;
    br /= 10;
    v1 = br%10;
  }
}



void refresh(){
  static int c(0);
  if(c == 0) {
      vrijednost = vrijednosti[v1];
      tacka = 1;
      cifra = cifre[c];
      c = (c+1)%3;
      }
    else if(c == 1) {
      vrijednost = vrijednosti[v2];
      tacka = 0;
      cifra = cifre[c];
      c = (c+1)%3;
      }
     else {
      vrijednost = vrijednosti[v3];
      tacka = 1;
      cifra = cifre[c];
      c = (c+1)%3;
    }
}