Marko Spremic 2020/0066
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 /* 00002 *Marko Spremic 00003 *Indeks: 2020/0066 00004 */ 00005 //Ukljucivanje biblioteka: 00006 00007 #include "mbed.h" 00008 00009 //Definisanje direktiva: 00010 #define null 0 00011 #define one 1 00012 #define ADD(x) x+=1; 00013 #define DEC(x) x-=1; 00014 #define time 8 00015 #define CHECK(x) if(x > 15) x = 0; 00016 #define CHECK_0(x) if(x < 0) x = 15; 00017 00018 //Definisanje glavnih promenljivih: 00019 00020 BusOut led_dis(PA_10, PA_9, PA_8, PB_10, PB_5, PB_4, PB_3, PA_2); 00021 DigitalOut SEL2(PC_7); 00022 DigitalOut SEL1(PB_6); 00023 DigitalIn btn1(PC_9); 00024 DigitalIn btn2(PC_8); 00025 00026 00027 //Definisanje pomocne funkcije: 00028 void write_num(int broj) 00029 { 00030 switch(broj) 00031 { 00032 case 0: led_dis = 0xC0; break; 00033 case 1: led_dis = 0xF9; break; 00034 case 2: led_dis = 0xA4; break; 00035 case 3: led_dis = 0xB0; break; 00036 case 4: led_dis = 0x99; break; 00037 case 5: led_dis = 0x92; break; 00038 case 6: led_dis = 0x82; break; 00039 case 7: led_dis = 0xF8; break; 00040 case 8: led_dis = 0x80; break; 00041 case 9: led_dis = 0x90; break; 00042 } 00043 } 00044 00045 //Definisanje glavne funkcije: 00046 00047 int main() 00048 { 00049 int x = null, ButtonReleased1 = 0, ButtonReleased2 = 0; 00050 while(1) 00051 { 00052 SEL2.write(0); 00053 SEL1.write(1); 00054 write_num(x%10); 00055 wait_ms(time); 00056 if(x > 9) 00057 { 00058 SEL2.write(1); 00059 SEL1.write(0); 00060 write_num(one); 00061 wait_ms(time); 00062 } 00063 if(!btn1) 00064 { 00065 if(ButtonReleased1) 00066 { 00067 ADD(x) 00068 CHECK(x) 00069 ButtonReleased1 = 0; 00070 } 00071 wait_ms(2 * time); 00072 } 00073 else 00074 ButtonReleased1 = 1; 00075 00076 if(!btn2) 00077 { 00078 if(ButtonReleased2) 00079 { 00080 DEC(x) 00081 CHECK_0(x) 00082 ButtonReleased2 = 0; 00083 } 00084 00085 } 00086 else 00087 ButtonReleased2 = 1; 00088 } 00089 }
Generated on Sat Aug 27 2022 08:17:59 by
1.7.2