Lazar Dobric
/
19E042PIM_T1_2020_0712
Lazar Dobric 2020/0712 - Test 1
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); } } }