Compiling the SimpleReceiver example yields the following error message:
n file included from D:\Documents\Arduino\libraries\IRMP\src/irmpArduinoExt.cpp.h:18:0,
from D:\Documents\Arduino\libraries\IRMP\src/irmp.c.h:3143,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:65:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h: In function 'void initIRTimerForReceive()':
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:182:5: error: 'TCCR2A' was not declared in this scope
TCCR2A = _BV(WGM21); // CTC mode
^~~~~~
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:182:5: note: suggested alternative: 'TCCR0A'
TCCR2A = _BV(WGM21); // CTC mode
^~~~~~
TCCR0A
In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,
from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:47:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:182:18: error: 'WGM21' was not declared in this scope
TCCR2A = _BV(WGM21); // CTC mode
^
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:182:18: note: suggested alternative: 'WGM41'
In file included from D:\Documents\Arduino\libraries\IRMP\src/irmpArduinoExt.cpp.h:18:0,
from D:\Documents\Arduino\libraries\IRMP\src/irmp.c.h:3143,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:65:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:187:5: error: 'TCCR2B' was not declared in this scope
TCCR2B = _BV(CS21); // prescale by 8
^~~~~~
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:187:5: note: suggested alternative: 'TCCR0B'
TCCR2B = _BV(CS21); // prescale by 8
^~~~~~
TCCR0B
In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,
from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:47:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:187:18: error: 'CS21' was not declared in this scope
TCCR2B = _BV(CS21); // prescale by 8
^
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:187:18: note: suggested alternative: 'CS01'
In file included from D:\Documents\Arduino\libraries\IRMP\src/irmpArduinoExt.cpp.h:18:0,
from D:\Documents\Arduino\libraries\IRMP\src/irmp.c.h:3143,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:65:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:188:5: error: 'OCR2B' was not declared in this scope
OCR2B = OCR2A = ((F_CPU / 8) / IR_INTERRUPT_FREQUENCY) - 1; // 132 for 15000 interrupts per second
^~~~~
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:188:5: note: suggested alternative: 'OCR4B'
OCR2B = OCR2A = ((F_CPU / 8) / IR_INTERRUPT_FREQUENCY) - 1; // 132 for 15000 interrupts per second
^~~~~
OCR4B
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:188:13: error: 'OCR2A' was not declared in this scope
OCR2B = OCR2A = ((F_CPU / 8) / IR_INTERRUPT_FREQUENCY) - 1; // 132 for 15000 interrupts per second
^~~~~
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:188:13: note: suggested alternative: 'OCR3A'
OCR2B = OCR2A = ((F_CPU / 8) / IR_INTERRUPT_FREQUENCY) - 1; // 132 for 15000 interrupts per second
^~~~~
OCR3A
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:190:5: error: 'TIFR2' was not declared in this scope
TIFR2 = _BV(OCF2B) | _BV(OCF2A) | _BV(TOV2); // reset interrupt flags
^~~~~
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:190:5: note: suggested alternative: 'TIFR4'
TIFR2 = _BV(OCF2B) | _BV(OCF2A) | _BV(TOV2); // reset interrupt flags
^~~~~
TIFR4
In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,
from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:47:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:190:17: error: 'OCF2B' was not declared in this scope
TIFR2 = _BV(OCF2B) | _BV(OCF2A) | _BV(TOV2); // reset interrupt flags
^
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:190:17: note: suggested alternative: 'OCF0B'
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:190:30: error: 'OCF2A' was not declared in this scope
TIFR2 = _BV(OCF2B) | _BV(OCF2A) | _BV(TOV2); // reset interrupt flags
^
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:190:30: note: suggested alternative: 'OCF1A'
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:190:43: error: 'TOV2' was not declared in this scope
TIFR2 = _BV(OCF2B) | _BV(OCF2A) | _BV(TOV2); // reset interrupt flags
^
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:190:43: note: suggested alternative: 'TOV0'
In file included from D:\Documents\Arduino\libraries\IRMP\src/irmpArduinoExt.cpp.h:18:0,
from D:\Documents\Arduino\libraries\IRMP\src/irmp.c.h:3143,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:65:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:191:5: error: 'TIMSK2' was not declared in this scope
TIMSK2 = _BV(OCIE2B); // enable TIMER2_COMPB_vect interrupt to be compatible with tone() library
^~~~~~
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:191:5: note: suggested alternative: 'TIMSK0'
TIMSK2 = _BV(OCIE2B); // enable TIMER2_COMPB_vect interrupt to be compatible with tone() library
^~~~~~
TIMSK0
In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,
from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:47:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:191:18: error: 'OCIE2B' was not declared in this scope
TIMSK2 = _BV(OCIE2B); // enable TIMER2_COMPB_vect interrupt to be compatible with tone() library
^
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:191:18: note: suggested alternative: 'OCIE0B'
In file included from D:\Documents\Arduino\libraries\IRMP\src/irmpArduinoExt.cpp.h:18:0,
from D:\Documents\Arduino\libraries\IRMP\src/irmp.c.h:3143,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:65:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:192:5: error: 'TCNT2' was not declared in this scope
TCNT2 = 0;
^~~~~
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:192:5: note: suggested alternative: 'TCNT0'
TCNT2 = 0;
^~~~~
TCNT0
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h: In function 'void disableIRTimerInterrupt()':
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:473:5: error: 'TIMSK2' was not declared in this scope
TIMSK2 = 0; // disable interrupt
^~~~~~
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:473:5: note: suggested alternative: 'TIMSK0'
TIMSK2 = 0; // disable interrupt
^~~~~~
TIMSK0
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h: In function 'void enableIRTimerInterrupt()':
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:529:5: error: 'TIMSK2' was not declared in this scope
TIMSK2 = _BV(OCIE2B); // enable interrupt
^~~~~~
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:529:5: note: suggested alternative: 'TIMSK0'
TIMSK2 = _BV(OCIE2B); // enable interrupt
^~~~~~
TIMSK0
In file included from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\io.h:99:0,
from c:\program files (x86)\arduino\hardware\tools\avr\avr\include\avr\pgmspace.h:90,
from C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:28,
from D:\Programming\Projects\Arduino\receive-ir\receive-ir.ino:47:
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:529:18: error: 'OCIE2B' was not declared in this scope
TIMSK2 = _BV(OCIE2B); // enable interrupt
^
D:\Documents\Arduino\libraries\IRMP\src/IRTimer.cpp.h:529:18: note: suggested alternative: 'OCIE0B'
exit status 1
Error compiling for board Arduino Leonardo.
Bug Report
Compiling the SimpleReceiver example yields the following error message:
I did a bit a googling and appearently the following patch fixed a similar problem for the TTS library: https://github.com/jscrane/TTS/pull/6/commits/d84cbd2eb39e513e62b4f33a55ccfad412f5aec8
Arduino Platform
IDE
IR-Protocol
Example to reproduce the issue
Pin(s) used for IR-receive, if not default
Version
Current behavior
Expected behavior
Error output
Additional context