Marko Spremic 2020/0066

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

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 }