Infrared remote library for Arduino: send and receive infrared signals with multiple protocols Port from Arduino-IRremote https://github.com/z3t0/Arduino-IRremote

Dependents:   mbed-os-example-FinalReal_copy

Revision:
3:17440cf7ab90
Parent:
0:70c8e56bac45
Child:
4:5e46ae042bc7
diff -r 6bbd1e911324 -r 17440cf7ab90 irRecv.cpp
--- a/irRecv.cpp	Sat Jan 23 15:36:14 2016 +0900
+++ b/irRecv.cpp	Sat Jan 23 15:09:34 2016 +0000
@@ -91,56 +91,30 @@
 }
 
 //+=============================================================================
-IRrecv::IRrecv (int recvpin)
+IRrecv::IRrecv (PinName recvpin) : _recvpin(recvpin)
 {
-	irparams.recvpin = recvpin;
-	irparams.blinkflag = 0;
+	_recvpin.mode(PullNone);
 }
 
-IRrecv::IRrecv (int recvpin, int blinkpin)
-{
-	irparams.recvpin = recvpin;
-	irparams.blinkpin = blinkpin;
-	pinMode(blinkpin, OUTPUT);
-	irparams.blinkflag = 0;
-}
-
-
-
 //+=============================================================================
-// initialization
+// enable IR receive
 //
 void  IRrecv::enableIRIn ( )
 {
-	cli();
-	// Setup pulse clock timer interrupt
-	// Prescale /8 (16M/8 = 0.5 microseconds per tick)
-	// Therefore, the timer interval can range from 0.5 to 128 microseconds
-	// Depending on the reset value (255 to 0)
-	TIMER_CONFIG_NORMAL();
-
-	// Timer2 Overflow Interrupt Enable
-	TIMER_ENABLE_INTR;
-
-	TIMER_RESET;
-
-	sei();  // enable interrupts
+	_ticker.detach();
+	_ticker.attach_us(this, &IRrecv::timer_isr, USECPERTICK);
 
 	// Initialize state machine variables
 	irparams.rcvstate = STATE_IDLE;
 	irparams.rawlen = 0;
-
-	// Set pin modes
-	pinMode(irparams.recvpin, INPUT);
 }
 
 //+=============================================================================
-// Enable/disable blinking of pin 13 on IR processing
+// disable IR receive
 //
-void  IRrecv::blink13 (int blinkflag)
+void  IRrecv::disableIRIn ( )
 {
-	irparams.blinkflag = blinkflag;
-	if (blinkflag)  pinMode(BLINKLED, OUTPUT) ;
+	_ticker.detach();
 }
 
 //+=============================================================================
@@ -150,6 +124,7 @@
 {
  return (irparams.rcvstate == STATE_IDLE || irparams.rcvstate == STATE_STOP) ? true : false;
 }
+
 //+=============================================================================
 // Restart the ISR state machine
 //