IRremote
Classes | Macros | Variables
IRremoteInt.h File Reference
#include <Arduino.h>
#include "IRremoteBoardDefs.h"
Include dependency graph for IRremoteInt.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  irparams_t
 This struct is used to communicate with the ISR (interrupt service routine). More...
 

Macros

#define RAW_BUFFER_LENGTH   101
 Maximum length of raw duration buffer. Must be odd. More...
 
#define IR_REC_STATE_IDLE   2
 
#define IR_REC_STATE_MARK   3
 
#define IR_REC_STATE_SPACE   4
 
#define IR_REC_STATE_STOP   5
 
#define IR_REC_STATE_OVERFLOW   6
 
#define cbi(sfr, bit)   (_SFR_BYTE(sfr) &= ~_BV(bit))
 
#define sbi(sfr, bit)   (_SFR_BYTE(sfr) |= _BV(bit))
 
#define MARK_EXCESS   100
 When received, marks tend to be too long and spaces tend to be too short. More...
 
#define TOLERANCE   25
 Relative tolerance (in percent) for some comparisons on measured data. More...
 
#define LTOL   (100 - TOLERANCE)
 Lower tolerance for comparison of measured data. More...
 
#define UTOL   (100 + TOLERANCE)
 Upper tolerance for comparison of measured data. More...
 
#define _GAP   5000
 Minimum gap between IR transmissions, in microseconds. More...
 
#define GAP_TICKS   (_GAP/USECPERTICK)
 Minimum gap between IR transmissions, in USECPERTICK. More...
 
#define TICKS_LOW(us)   ((int) ((us)/67 ))
 
#define TICKS_HIGH(us)   ((int) ((us)/40 + 1))
 
#define MARK   0
 Sensor output for a mark ("flash") More...
 
#define SPACE   1
 Sensor output for a space ("gap") More...
 

Variables

volatile irparams_t irparams
 Allow all parts of the code access to the ISR data NB. More...
 

Macro Definition Documentation

◆ _GAP

#define _GAP   5000

Minimum gap between IR transmissions, in microseconds.

Definition at line 106 of file IRremoteInt.h.

◆ cbi

#define cbi (   sfr,
  bit 
)    (_SFR_BYTE(sfr) &= ~_BV(bit))

Definition at line 74 of file IRremoteInt.h.

◆ GAP_TICKS

#define GAP_TICKS   (_GAP/USECPERTICK)

Minimum gap between IR transmissions, in USECPERTICK.

Definition at line 109 of file IRremoteInt.h.

◆ IR_REC_STATE_IDLE

#define IR_REC_STATE_IDLE   2

Definition at line 53 of file IRremoteInt.h.

◆ IR_REC_STATE_MARK

#define IR_REC_STATE_MARK   3

Definition at line 54 of file IRremoteInt.h.

◆ IR_REC_STATE_OVERFLOW

#define IR_REC_STATE_OVERFLOW   6

Definition at line 57 of file IRremoteInt.h.

◆ IR_REC_STATE_SPACE

#define IR_REC_STATE_SPACE   4

Definition at line 55 of file IRremoteInt.h.

◆ IR_REC_STATE_STOP

#define IR_REC_STATE_STOP   5

Definition at line 56 of file IRremoteInt.h.

◆ LTOL

#define LTOL   (100 - TOLERANCE)

Lower tolerance for comparison of measured data.

Definition at line 100 of file IRremoteInt.h.

◆ MARK

#define MARK   0

Sensor output for a mark ("flash")

Definition at line 124 of file IRremoteInt.h.

◆ MARK_EXCESS

#define MARK_EXCESS   100

When received, marks tend to be too long and spaces tend to be too short.

To compensate for this, MARK_EXCESS is subtracted from all marks, and added to all spaces.

Definition at line 93 of file IRremoteInt.h.

◆ RAW_BUFFER_LENGTH

#define RAW_BUFFER_LENGTH   101

Maximum length of raw duration buffer. Must be odd.

Definition at line 34 of file IRremoteInt.h.

◆ sbi

#define sbi (   sfr,
  bit 
)    (_SFR_BYTE(sfr) |= _BV(bit))

Definition at line 78 of file IRremoteInt.h.

◆ SPACE

#define SPACE   1

Sensor output for a space ("gap")

Definition at line 125 of file IRremoteInt.h.

◆ TICKS_HIGH

#define TICKS_HIGH (   us)    ((int) ((us)/40 + 1))

Definition at line 115 of file IRremoteInt.h.

◆ TICKS_LOW

#define TICKS_LOW (   us)    ((int) ((us)/67 ))

Definition at line 114 of file IRremoteInt.h.

◆ TOLERANCE

#define TOLERANCE   25

Relative tolerance (in percent) for some comparisons on measured data.

Definition at line 96 of file IRremoteInt.h.

◆ UTOL

#define UTOL   (100 + TOLERANCE)

Upper tolerance for comparison of measured data.

Definition at line 103 of file IRremoteInt.h.

Variable Documentation

◆ irparams

volatile irparams_t irparams

Allow all parts of the code access to the ISR data NB.

The data can be changed by the ISR at any time, even mid-function Therefore we declare it as "volatile" to stop the compiler/CPU caching it