Lazar Dobric 2020/0712 - Test 1

Dependencies:   mbed

main.cpp

Committer:
makotolagano
Date:
2021-11-06
Revision:
0:39206ebb3390

File content as of revision 0:39206ebb3390:

/*
Lazar Dobric 2020/0712 10:24 11/6/2021
TEST 1
*/

//uvoz biblioteka
#include "mbed.h"


//definisanje direktiva
#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 SEL_1 PB_6
#define SEL_2 PC_7
#define SW2 PC_8
#define SW1 PC_9


//definisanje glavnih promenljivih(ili konstanti)
const int digit[] = {0b1000000, 0b1111001, 0b0100100, 0b0110000, 0b0011001, 0b0010010, 0b0000010, 0b1111000, 0b0000000, 0b0010000/*, 0b1111111*/};
BusOut display(A,B,C,D,E,F,G);
DigitalOut select1(SEL_1);
DigitalOut select2(SEL_2);
DigitalIn button1(SW1);
DigitalIn button2(SW2);

//deklaracija funkcija


//glavni program
int main(){
    //flegovi za buttone
    static char button1_released = 0;
    static char button2_released = 0;
    
    //flegovi za trenutne cifre na diplejima
    static char digit1 = 0;
    static char digit2 = 0;
    
    //brojaci
    int i = 0;
    int j = 0;
    
    //inicijalizacija (pocetno stanje)
    select2.write(0);
    display = digit[0];
    
 
    //glavna petlja
    while(true){
        
        //unapred
        if(!button1) {
            
            if(button1_released){

                if(j < 1){
                    select1.write(1);
                        if(i == 9){
                            j = 1;
                            i = -2;
                        }
                    select2.write(0);
                    display = digit[++i];
                    digit2 = i;
                    wait_ms(20);
                    
                    }
                if(j==1){
                        if(i == 5){
                            j = 0;
                            select1.write(1);
                            i = -1;
                        }
                        select2.write(0);
                        display = digit[i++];
                        digit2 = i;
                        wait_ms(20);
                        select2.write(1);
                        
                        select1.write(0);
                        display = digit[j];
                        digit1 = j;
                        wait_ms(20);
                    }
                
                
                button1_released = 0;
                }
        }    
            
        else {
            button1_released = 1;
        }
        if(j == 0){
            select1.write(1);
            select2.write(0);
            wait_ms(20);
        }
        if(j == 1){
            select2.write(1);
            select1.write(0);
            display = digit[digit1];
            wait_us(100);
            select1.write(1);
            select2.write(0);
            display = digit[digit2];
            wait_us(100);
        }
        
        digit2 = i;
        digit1 = j;
        
        
        //unazad
        if(!button2) {
            
            if(button2_released){

                if(j == 1){
                        if(i == 0){
                            j = 0;
                            select1.write(1);
                            i = 11;
                        }
                    
                    select2.write(0);
                    display = digit[--i];
                    digit2 = i;
                    wait_ms(20);
                    select2.write(1);
                    
                    select1.write(0);
                    display = digit[j];
                    digit1 = j;
                    wait_ms(20);
                    select1.write(1);
                        
                    
                    }
                if(j == 0){
                        if(i == 0){
                            j = 1;
                            select1.write(1);
                            i = 6;
                        }
                        select2.write(0);
                        display = digit[--i];
                        digit2 = i;
                        wait_ms(20);
                        select2.write(1);
                        
                    }
                
                
                button2_released = 0;
                }
        }    
            
        else {
            button2_released = 1;
        }
        if(j == 0){
            select1.write(1);
            select2.write(0);
            wait_ms(20);
        }
        if(j == 1){
            select2.write(1);
            select1.write(0);
            display = digit[digit1];
            wait_us(100);
            select1.write(1);
            select2.write(0);
            display = digit[digit2];
            wait_us(100);
        }

    
    }
 
 
    
}