#ifndef __irh
#define __irh

  #include<avr/io.h>
  #include <avr/interrupt.h>
  #include "avrcommon.h"

  #define IRDet                    5

  #define TimerReset()             TCNT1 = 0

  #define IRH()                    IsHigh(IRDet, PINB)
  #define IRL()                    IsLow(IRDet, PINB)
  
  void inline OnEdge(unsigned char);
  void IRInit();

  volatile unsigned int  IRData;

  // IR Data Ready set if byte is available in buffer, user clears.
  #define IRDR            7
  volatile unsigned char IRStatus;
  
  #define IRDataReady()             IsHigh(IRDR, IRStatus)
  #define IRSetDR()                SetBit(IRDR, IRStatus)
  #define IRClrDR()                ClearBit(IRDR, IRStatus)               
  
#endif
