I have recently purchased R4 Uno Wifi and trying to reapply a sketch which is running on an R3 Uno using the NMRADCC library.
The #include <NmraDcc.h>
command generates the below error, even if that is the only command in an otherwise completely new sketch.
Is this library incompatible with R4 Uno Wifi?
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp: In function 'void ExternalInterruptHandler()':
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:520:95: error: no matching function for call to 'attachInterrupt(uint8_t&, void (&)(), byte&)'
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:8:0,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note: candidate: void attachInterrupt(pin_size_t, voidFuncPtr, PinStatus)
void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, PinStatus mode);
^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note: conversion of argument 3 would be ill-formed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:520:95: error: invalid conversion from 'byte {aka unsigned char}' to 'PinStatus' [-fpermissive]
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note: candidate: template void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam<T*>, PinStatus, T*)
template void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T*> userFunc, PinStatus mode, T* param) {
^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note: template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:520:95: note: candidate expects 1 argument, 0 provided
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note: candidate: template void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam, PinStatus, T&)
template void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam userFunc, PinStatus mode, T& param) {
^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note: template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:520:95: note: candidate expects 1 argument, 0 provided
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:577:87: error: no matching function for call to 'attachInterrupt(uint8_t&, void (&)(), byte&)'
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:8:0,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note: candidate: void attachInterrupt(pin_size_t, voidFuncPtr, PinStatus)
void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, PinStatus mode);
^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note: conversion of argument 3 would be ill-formed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:577:87: error: invalid conversion from 'byte {aka unsigned char}' to 'PinStatus' [-fpermissive]
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note: candidate: template void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam<T*>, PinStatus, T*)
template void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T*> userFunc, PinStatus mode, T* param) {
^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note: template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:577:87: note: candidate expects 1 argument, 0 provided
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note: candidate: template void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam, PinStatus, T&)
template void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam userFunc, PinStatus mode, T& param) {
^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note: template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:577:87: note: candidate expects 1 argument, 0 provided
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:626:87: error: no matching function for call to 'attachInterrupt(uint8_t&, void (&)(), byte&)'
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:8:0,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note: candidate: void attachInterrupt(pin_size_t, voidFuncPtr, PinStatus)
void attachInterrupt(pin_size_t interruptNumber, voidFuncPtr callback, PinStatus mode);
^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Common.h:113:6: note: conversion of argument 3 would be ill-formed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:626:87: error: invalid conversion from 'byte {aka unsigned char}' to 'PinStatus' [-fpermissive]
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note: candidate: template void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam<T*>, PinStatus, T*)
template void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam<T*> userFunc, PinStatus mode, T* param) {
^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:38:27: note: template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:626:87: note: candidate expects 1 argument, 0 provided
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/ArduinoAPI.h:29:0,
from /Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/Arduino.h:4,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:52,
from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note: candidate: template void arduino::attachInterrupt(pin_size_t, arduino::voidTemplateFuncPtrParam, PinStatus, T&)
template void attachInterrupt(pin_size_t interruptNum, voidTemplateFuncPtrParam userFunc, PinStatus mode, T& param) {
^~~~~~~~~~~~~~~
/Users/davidcooksey/Library/Arduino15/packages/arduino/hardware/renesas_uno/1.2.0/cores/arduino/api/Interrupts.h:21:27: note: template argument deduction/substitution failed:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:626:87: note: candidate expects 1 argument, 0 provided
attachInterrupt (DccProcState.ExtIntNum, ExternalInterruptHandler, ISREdge);
^
In file included from /Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:49:0:
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp: In function 'uint8_t validCV(uint16_t, uint8_t)':
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.h:134:22: error: 'E2END' was not declared in this scope
#define MAXCV E2END // the upper limit of the CV value currently defined to max memory.
^
/Users/davidcooksey/Documents/Arduino/libraries/NmraDcc/NmraDcc.cpp:846:14: note: in expansion of macro 'MAXCV'
if (CV > MAXCV)
^~~~~
exit status 1
Compilation error: exit status 1