The Colibri modules all provide HW timers which can be used to generate interrupts etc. Due to a bug in the Marvell PXA3xx silicons the normal usage of a timer on any Colibri PXA3xx is restricted. To avoid problems, Marvell suggests to use one timer only. Since Windows CE is already using an timer (OST), using a second timer for an application could lead to crashes. There is a special handling needed in order to use multiple timers. Toradex recommends to not use additional HW timers on PXA3xx modules whenever possible. For more details please take a look at Marvell's errata FEr#22:
Marvell Specification Update (Erratas)
For information about the timers on the Tegra modules see: Colibri T20 Timers
For most applications it is enough to have a 1ms periodical timer. This can be achieved quite easy under WinCE. Just create a thread at high priority and use the Windows CE API SleepTillTick(). This function is not declared in a public header file, so just create your own declaration.
#ifdef __cplusplus extern "C" { #endif void SleepTillTick(); #ifdef __cplusplus } #endif // your high priority thread while (1) { SleepTillTick(); // returns at every tick which occurs every 1ms in WinCE // do your periodic stuff }