"3.2.13 Timers and pulse width modulator (PWM) • Four counters capable of operating in PWM mode or in timer mode • Configurable PWM high and low time with granularity of a single 32 MHz clock period per output • Timer mode support for 32-bit timer operating at 32 MHz • Two timers for the ARC* processor core and two timers for the Intel® Quark™ SE microcontroller processor core that can also be accessed by the ARC core. • ARC* processor core timers can be configured as watchdog timers. Note: PWM keep their state when going to sleep mode, allowing the application to set the wake configuration."
3.2.1.2 ARC* EM4 DSP core-based sensor subsystem
The Intel® Curie™ module contains an ARC* EM4 DSP-based sensor subsystem and
interrupt controller with the following features:
• 8 kB L1 instruction cache and 8 kB of closely coupled memory for data
• Four counters that can be used in PWM or timer mode. The timer mode supports
32-bit operation at 32 MHz granularity. These timers can be configured and used by
both cores.
• One configuration watchdog timer with support to trigger an interrupt and/or a
system reset upon timeout. This timer can be configured and used by both cores.
As far as i could research The following Timers are used:
Arc Timer-0 - used for internal system timing, including the millis() function
Arc Timer-1 - implemented in the CurieTimerOne Library . Github Library can be found CurieTimerOne
Intel Quark SE Timer 0 - ? ? ?
Intel Quark SE Timer 1 - ? ? ?
Can anyone help regarding using the other two available timers? I have found no documentation whatsoever regarding them
The Datasheet Mentions that the Arduino 101 Intel Curie Module has a Intel® Quark™ SE Microcontroller C1000
Processor Core.
There is a Github server for the Hardware Abstraction Layer (HAL) for Intel® Quark™ Microcontroller products that supports the SE Microcontroller C1000.
It can be found here:
a Timer example is porvided:
If some brave soul could help, i would try integrating the extra Memory Adresses and functions into the Arduino environment.
I've been crawling the internet for ways to access Intel Curier's timer2 and timer3, without any further success. It seems that no one has really paid attention to this issue.
The good news is that there is a library that grants access to Hardware PWM Counters:
Original post from ljardo
"Hi, turns out the Curie device has hardware PWM counters in addition to the Timer1 counter as revealed in "variant.h" and related files and the schematic pin name PWM0/SS10_3V_IO3. Each pin has two source/destinations defined as Mode A and Mode B in "scss_registers.h" and related files. For the PWM pins 3, 5, 6 and 9, Mode B connects to a set of hardware PWM counters while Mode A connects to the GPIO. Mode A is the default setting. Intel decided for some reason to not use these counters in any of the PWM library examples. I developed a library exposing these counters: CurieHwPWM. This approach is an improvement over the ISR software driven approach. I welcome feedback on the library features or coding."