hasakovic Nedzad Haris spahic

Dependencies:   mbed

main.cpp

Committer:
tim008
Date:
2014-03-20
Revision:
0:c5a847a6fc82

File content as of revision 0:c5a847a6fc82:

#include "mbed.h"
BusOut segmenti( dp2,dp1,dp28, dp6,dp5,dp27,dp26); // 7 segmenata
int brojevi[10]={0x01,0x4f,0x12,0x06,0x4c,0x24,0x20,0x0f,0x0,0x04};

DigitalOut redovi[4] = {dp18, dp17, dp16, dp15};
DigitalIn kolone[4] = {dp13, dp11, dp10, dp9};

BusOut mjesta(dp23, dp24, dp25);

int prva(0), druga(0), treca(0);

DigitalOut dp(dp4); // dec point

void prikaziBroj(int n)
{
    segmenti = brojevi[n];
}



void osvjezi()
{
    mjesta = 6;
    prikaziBroj(druga);
    wait(0.01);
    mjesta=5;
    prikaziBroj(treca);
    wait(0.01);
    mjesta=3;
    prikaziBroj(prva);
    wait(0.01);
    dp=1;
}

void prikaz(int t, int ind)
{
    if(ind==0)
        prva =t;
    else if(ind == 1)
        druga = t;
    else if(ind==2)
        treca = t;

    osvjezi();
}

int main()
{
    int ind(0);
    bool pritisnuto(false);
    mjesta = 0;
    osvjezi();


    while(1)
    {
        for(int i=0;i<4;i++)
        {
            redovi[i] = 1;

            for(int j=0;j<4;j++)
            {
                if(kolone[j]==1) // ako je nesto pritisnuto
                {

                    if(i<3 && j<3 || i==3 && j==1) // ako je broj (0-9)
                    {
                        prikaz(i*3 + j + 1, ind);
                        pritisnuto = true;

                    }
                    else if(i==2 && j==3) // ako je C
                    {
                        prva = druga = treca = 0;
                        osvjezi();
                        ind = 0;
                    }


                }
                else
                {
                    osvjezi();

                    if(pritisnuto)
                    {
                        pritisnuto = false;
                        if(ind<2)
                        ind++;
                    }
                }


            }
            redovi[i] = 0;

        }
    }
}