// biblioteke za uvoz:
#include "mbed.h"

//pinovi
#define A PA_10
#define B PA_9
#define C PA_8
#define D PB_10
#define E PB_5
#define F PB_4
#define G PB_3
#define SEL1 PB_6
#define SEL2 PC_7
#define SW1 PC_9
#define SW2 PC_8

//makroi:
#define WAITTIME_MS 1

// globalne promenjive:
BusOut display (A,B,C,D,E,F,G);
BusOut select (SEL2,SEL1);
DigitalIn Dugme1 (SW1);
DigitalIn Dugme2 (SW2);

//definicije funkcija:
void konvertor (int num){
    switch(num){
        case 0:display = 0b1000000;break;   
        case 1:display = 0b1111001;break;   
        case 2:display = 0b0100100;break;   
        case 3:display = 0b0110000;break;   
        case 4:display = 0b0011001;break;   
        case 5:display = 0b0010010;break;   
        case 6:display = 0b0000010;break;   
        case 7:display = 0b1111000;break;   
        case 8:display = 0b0000000;break;   
        case 9:display = 0b0010000;break;   
        default:display = 0x7f;    break;
        }
        }
        
        
void ispisi(int num){
    int j = num%10, d = num/10;
       if(d==0)
        konvertor(-1);
        else
    konvertor(d);
    select = 01;
    wait_ms(WAITTIME_MS);
    konvertor(j);
    select = 10;
    wait_ms(WAITTIME_MS);   
}




//pomocne promenjive
int lastDugme1=1,lastDugme2=1;
int lastlastDugme1=1,lastlastDugme2=1;
int brojac=0;


// glavna funkcija:

int main(){
    //Default vrednosti za sve ugaseno
    display = 1111111;
    select = 111;
    
    while(1){
        
        ispisi(brojac);
        
        
        if(lastlastDugme1==0 && lastDugme1==0 && Dugme1==1)
            brojac=(brojac+1)%11;
            
        if(lastlastDugme2==0 && lastDugme2==0 && Dugme2==1)
            brojac=(brojac+10)%11;
 
        
        lastlastDugme1=lastDugme1;
        lastlastDugme2=lastDugme2;
        
        lastDugme1=Dugme1;
        lastDugme2=Dugme2;
        
    }
    
    }



  