[En-Nut-Discussion] EVK1100 Timing Problem

Thiago A. Corrêa thiago.correa at gmail.com
Wed Oct 8 13:13:31 CEST 2014


    Are you using a timer or thread context switching with a NutSleep?
I think the later has no way to ensure accuracy by the very nature of
cooperative threads but the first should be much closer. I've never
tried to do anything that depends on a delay on Nut/OS but the timer
calculation should be correct. I haven't checked in years, it's in in

void NutRegisterTimer(void (*handler) (void *))
    /* Set compare value for the specified tick frequency. */
    Set_system_register(AVR32_COMPARE, NutGetCpuClock() /
NUT_TICK_FREQ + Get_system_register(AVR32_COUNT));

    sig_sysCompare.ir_handler = handler;

    register_interrupt(SystemCompareIrqEntry, AVR32_CORE_COMPARE_IRQ,

Should be correct.

Kind Regards,
     Thiago A. Correa

On Tue, Oct 7, 2014 at 4:50 AM,  <philippgl at freenet.de> wrote:
> Hi,
> I´m using the EVK1100 with Ethernut 4.10 (5.10 has problems with ETH).
> My problem is, if I start a Thread, let´s say toggling a LED with 1sec.
> The delay between the toggling is far beyond 1sec around 3 secs.
> I tried increasing the priority of the thread but nothing changed.
> The EVK1100 has a 12MHz oscillator and printf(“%d”,NutGetCpuClock);
> gives out 60MHz just FYI
> ---
> Alle Postfächer an einem Ort. Jetzt wechseln und E-Mail-Adresse mitnehmen! Rundum glücklich mit freenetMail
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion

More information about the En-Nut-Discussion mailing list