Isidora Milivojevic 2020/0214
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 /* 00002 * Isidora Milivojević 00003 * 2020/0214 00004 * ETF Beograd 00005 */ 00006 00007 //include segment 00008 #include "mbed.h" 00009 00010 00011 // definisanje makroa 00012 #define WAIT_MS 100 00013 #define WAIT_MS2 30 00014 #define ACTIVE 0 00015 #define NOT_ACTIVE 1 00016 00017 DigitalIn button(BUTTON1); 00018 DigitalOut select1(PC_7); 00019 DigitalOut select2(PB_6); 00020 BusOut display(PA_10, PA_9, PA_8, PB_10, PB_5, PB_4, PB_3); 00021 // a b c d e f g 00022 00023 00024 //definisanje glavne funkcije 00025 int main() 00026 { 00027 int button_released = 1; 00028 int max_dig = 0b0010000; 00029 int max_dig2 = 0b0010010; 00030 int max_1_reached = 0; 00031 int max_2_reached = 0; 00032 int i = 0; 00033 int j = 0; 00034 int digits[11] = { 0b1000000, //0 00035 0b1111001, //1 00036 0b0100100, //2 00037 0b0110000, //3 00038 0b0011001, //4 00039 0b0010010, //5 00040 0b0000010, //6 00041 0b1111000, //7 00042 0b0000000, //8 00043 0b0010000, //9 00044 }; 00045 while (true) { 00046 select1.write(ACTIVE); 00047 select2.write(NOT_ACTIVE); 00048 if(!button){ 00049 if(button_released){ 00050 if(!max_1_reached && !max_2_reached){ 00051 select1.write(ACTIVE); 00052 select2.write(NOT_ACTIVE); 00053 display.write(digits[i]); 00054 if(display.read() == max_dig) max_1_reached = 1; 00055 i++; 00056 } else if(max_1_reached && !max_2_reached){ 00057 select1.write(NOT_ACTIVE); 00058 select2.write(ACTIVE); 00059 display.write(digits[1]); 00060 wait_ms(WAIT_MS2); 00061 select1.write(ACTIVE); 00062 select2.write(NOT_ACTIVE); 00063 display.write(digits[j]); 00064 wait_ms(WAIT_MS2); 00065 if(display.read() == max_dig2) max_2_reached = 1; 00066 j++; 00067 } else if(max_1_reached && max_2_reached){ 00068 select1.write(ACTIVE); 00069 select2.write(NOT_ACTIVE); 00070 display.write(digits[0]); 00071 i = 0; 00072 max_1_reached = 0; 00073 max_2_reached = 0; 00074 } 00075 button_released = 0; 00076 } else { 00077 button_released = 1; 00078 } 00079 } 00080 wait_ms(WAIT_MS); 00081 } 00082 }
Generated on Mon Sep 5 2022 01:59:45 by
1.7.2