Marko Spremic 2020/0066 verzija poslednja

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 time2 50
00016  #define CHECK(x) if(x > 15) x = 0;
00017  #define CHECK_0(x) if(x < 0) x = 15;
00018  
00019  //Definisanje glavnih promenljivih:
00020  
00021  BusOut led_dis(PA_10, PA_9, PA_8, PB_10, PB_5, PB_4, PB_3, PA_2);
00022  DigitalOut SEL2(PC_7);
00023  DigitalOut SEL1(PB_6);
00024  DigitalIn btn1(PC_9);
00025  DigitalIn btn2(PC_8);
00026 
00027  
00028  //Definisanje pomocne funkcije:
00029  void write_num(int broj)
00030  {
00031      switch(broj)
00032      {
00033          case 0: led_dis = 0xC0; break;
00034          case 1: led_dis = 0xF9; break;
00035          case 2: led_dis = 0xA4; break;
00036          case 3: led_dis = 0xB0; break;
00037          case 4: led_dis = 0x99; break;
00038          case 5: led_dis = 0x92; break;
00039          case 6: led_dis = 0x82; break;
00040          case 7: led_dis = 0xF8; break;
00041          case 8: led_dis = 0x80; break;
00042          case 9: led_dis = 0x90; break;
00043          default: led_dis = 0xFF;
00044      }
00045  }
00046  
00047  //Definisanje glavne funkcije:
00048  
00049 int main()
00050 {
00051     int x = null, x1 = null, x2 = null;static char ButtonReleased1  = 1, ButtonReleased2 = 1;
00052     while(1)
00053     {
00054         x1 = x % 10;
00055         x2 = (x / 10 == 1)? 1:-1;
00056         SEL2.write(0);
00057         SEL1.write(1);
00058         write_num(x1);
00059         wait_ms(time);
00060         
00061         SEL2.write(1);
00062         SEL1.write(0);
00063         write_num(x2);
00064         wait_ms(time);
00065         
00066         if(!btn1 && btn2)
00067         {
00068             if(ButtonReleased1)
00069             {
00070                 ADD(x)
00071                 CHECK(x)
00072                 ButtonReleased1 = 0;
00073             }
00074             wait_ms(time2);
00075         }
00076         else
00077         {
00078             ButtonReleased1 = 1;
00079         }
00080         if(!btn2 && btn1)
00081         {
00082             if(ButtonReleased2)
00083             {
00084                 DEC(x)
00085                 CHECK_0(x)
00086                 ButtonReleased2 = 0;
00087             }
00088             wait_ms(time2);
00089         }
00090         else
00091         {
00092             ButtonReleased2 = 1;
00093         }
00094     }
00095 }