mirror of
https://github.com/Theaninova/Arduino-IRremote.git
synced 2026-01-20 00:02:50 +00:00
working on renaming files
added test.sh
This commit is contained in:
113
src/lib/InfraredRemoteInt.h
Normal file
113
src/lib/InfraredRemoteInt.h
Normal file
@@ -0,0 +1,113 @@
|
||||
//******************************************************************************
|
||||
// IRremote
|
||||
// Version 2.0.1 June, 2015
|
||||
// Copyright 2009 Ken Shirriff
|
||||
// For details, see http://arcfn.com/2009/08/multi-protocol-infrared-remote-library.html
|
||||
//
|
||||
// Modified by Paul Stoffregen <paul@pjrc.com> to support other boards and timers
|
||||
//
|
||||
// Interrupt code based on NECIRrcv by Joe Knapp
|
||||
// http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1210243556
|
||||
// Also influenced by http://zovirl.com/2008/11/12/building-a-universal-remote-with-an-arduino/
|
||||
//
|
||||
// JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post)
|
||||
// Whynter A/C ARC-110WD added by Francesco Meschia
|
||||
//******************************************************************************
|
||||
|
||||
#ifndef IRremoteint_h
|
||||
#define IRremoteint_h
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Include the right Arduino header
|
||||
//
|
||||
#if defined(ARDUINO) && (ARDUINO >= 100)
|
||||
# include <Arduino.h>
|
||||
#else
|
||||
# if !defined(IRPRONTO)
|
||||
# include <WProgram.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// This handles definition and access to global variables
|
||||
//
|
||||
#ifdef IR_GLOBAL
|
||||
# define EXTERN
|
||||
#else
|
||||
# define EXTERN extern
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Information for the Interrupt Service Routine
|
||||
//
|
||||
#define RAWBUF 101 // Maximum length of raw duration buffer
|
||||
|
||||
typedef
|
||||
struct {
|
||||
// The fields are ordered to reduce memory over caused by struct-padding
|
||||
uint8_t rcvstate; // State Machine state
|
||||
uint8_t recvpin; // Pin connected to IR data from detector
|
||||
uint8_t blinkpin;
|
||||
uint8_t blinkflag; // true -> enable blinking of pin on IR processing
|
||||
uint8_t rawlen; // counter of entries in rawbuf
|
||||
unsigned int timer; // State timer, counts 50uS ticks.
|
||||
unsigned int rawbuf[RAWBUF]; // raw data
|
||||
uint8_t overflow; // Raw buffer overflow occurred
|
||||
}
|
||||
irparams_t;
|
||||
|
||||
// ISR State-Machine : Receiver States
|
||||
#define STATE_IDLE 2
|
||||
#define STATE_MARK 3
|
||||
#define STATE_SPACE 4
|
||||
#define STATE_STOP 5
|
||||
#define STATE_OVERFLOW 6
|
||||
|
||||
// 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
|
||||
EXTERN volatile irparams_t irparams;
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Defines for setting and clearing register bits
|
||||
//
|
||||
#ifndef cbi
|
||||
# define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
|
||||
#endif
|
||||
|
||||
#ifndef sbi
|
||||
# define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
|
||||
#endif
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// Pulse parms are ((X*50)-100) for the Mark and ((X*50)+100) for the Space.
|
||||
// First MARK is the one after the long gap
|
||||
// Pulse parameters in uSec
|
||||
//
|
||||
|
||||
// Due to sensor lag, when received, Marks tend to be 100us too long and
|
||||
// Spaces tend to be 100us too short
|
||||
#define MARK_EXCESS 100
|
||||
|
||||
// Upper and Lower percentage tolerances in measurements
|
||||
#define TOLERANCE 25
|
||||
#define LTOL (1.0 - (TOLERANCE/100.))
|
||||
#define UTOL (1.0 + (TOLERANCE/100.))
|
||||
|
||||
// Minimum gap between IR transmissions
|
||||
#define _GAP 5000
|
||||
#define GAP_TICKS (_GAP/USECPERTICK)
|
||||
|
||||
#define TICKS_LOW(us) ((int)(((us)*LTOL/USECPERTICK)))
|
||||
#define TICKS_HIGH(us) ((int)(((us)*UTOL/USECPERTICK + 1)))
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
// IR detector output is active low
|
||||
//
|
||||
#define MARK 0
|
||||
#define SPACE 1
|
||||
|
||||
// All board specific stuff has been moved to its own file, included here.
|
||||
#include "boarddefs.h"
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user