I’m planning to port the Arduino IRMP IR-remote library to support the Artemis Nano. This library uses high-speed timer interrupts for receiving IR signals. The library already supports the SAMD, another ARM Cortex architecture, so the changes might not be too difficult, according to the developer (who is being most helpful. Thanks, Armin!).
My question here is, what Apollo3 peripherals (timers and interrupts in particular) does its platform-specific Arduino support core use “under the hood,” and which can I use without breaking anything? I assume that functions such as the PWM AnalogWrite() and micros() use timers and interrupt resources, and I want to not break them, as I plan to use them as well.
Thanks,
Steve
Quick update: Armin Joachimsmeyer, the author of IRMP, has graciously added Apollo3 support to the latest version and will be releasing it shortly. I tested it for him, and it works! Many thanks to Armin for his support!
Hi Steve! Good idea checking beforehand. Sorry I couldn’t get to this before it was already supported. For the sake of making information available/searchable I will say my 2 cents anyway:
The Arduino core tries to minimize the number of peripherals being used by default or for un-deconfigurable things. So generally you should not worry too much.
One thing that is always being used is the Stimer (system timer) peripheral. This is started automatically to provide a timebase since startup for Arduino.
Besides that one I think everything else is specifically initiated by the user (e.g. Serial, SPI, Wire, analogWrite, analogRead…)