#include "DPir.h"

#define IRpin 2

DPir dpir(IRpin,10000);  // 10000 us je minimalni razmak između dva IR koda

#define STR A3
#define DATA A2
#define CLK A4

void setup() {
  digitalWrite(CLK,LOW);
  digitalWrite(DATA,LOW);
  digitalWrite(STR,LOW);
  pinMode(STR,OUTPUT);
  pinMode(DATA,OUTPUT);
  pinMode(CLK,OUTPUT); 
}
//                                             EDC.BAFG
byte segTable[10] = {0b11101110, 0b00101000, 0b11001101, 0b00000000, 0b00000000,
                     0b00000000, 0b00000000, 0b00000000, 0b00000000, 0b00000000};

void shiftOUT(byte n)
{
   byte bitmask=0x80;
   
   while(bitmask)
   {
      
      if(bitmask & n) digitalWrite(DATA,LOW);
        else digitalWrite(DATA,HIGH);
        
      digitalWrite(CLK,HIGH);
      digitalWrite(CLK,LOW);
      bitmask>>=1;
   }
   digitalWrite(STR,HIGH);
   digitalWrite(STR,LOW);
}

void display_print(int n)
{
   shiftOUT(segTable[n]);
}

void loop() {
 if(dpir.available()!=0)
  {
         
          uint16_t codeLength=dpir.available();  // pamtimo duljinu jer nakon dpir.getCode se sve inicijalizira
          uint32_t mycode = dpir.getCode();  // kopira kod u mycode 32 bitnu varijablu
          if(mycode==0x81510151) display_print(0);
          if(mycode==0x80440044)  display_print(1); 
          if(mycode==0x81100110)  display_print(2);
  }

}
74HC595