public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
From: "Paul D. DeRocco" <pderocco@ix.netcom.com>
To: "ariga masahiro" <ariga@link-lab.co.jp>,
		<ecos-discuss@ecos.sourceware.org>
Subject: RE: [ECOS] Re: In trouble of timer operations
Date: Fri, 30 May 2008 04:43:00 -0000	[thread overview]
Message-ID: <PGEAIGBPLOMOJDAPCOJHOEINKPAB.pderocco@ix.netcom.com> (raw)
In-Reply-To: <000501c8c20b$273c4830$1c0110ac@ariga>

> From: ariga masahiro [mailto:ariga@link-lab.co.jp]
>
> Forgive my ignorance,but please teach me more.
> If I like to insert exactly, say 20msec, delay how should I write
> program ?

You can't delay _exactly_ 20ms, you can only delay with an accuracy of 10ms.
Calling cyg_thread_delay(2) would delay more than 10ms but no more than
20ms.

Delays are implemented by a timer interrupt, which is happening all the
time, every 10ms, like the ticking of a clock, whether you're using it for
anything or not. When you call cyg_thread_delay(2), it puts the thread to
sleep, and sets its sleep count to 2 ticks. The next timer interrupt happens
between 0 and 10ms later, and decrements the sleep count for the thread to
1. The timer interrupt occurs 10ms later, decrements the sleep count to 0,
and wakes up the thread.

If you need perfectly accurate delays, while other threads and interrupts
are running, you can't do it, not with any RTOS. If you need somewhat more
accuracy, like 1ms accuracy, you can change the timer interrupt to run at
1KHz, and then call cyg_thread_delay(20) for a 20ms delay. That will give
you a delay that's more than 19ms but no more than 20ms. If you make the
timer interrupt run at 10KHz, you have 100us resolution. But the faster you
run the timer interrupt, the more of the CPU time will be wasted on timer
interrupts.

--

Ciao,               Paul D. DeRocco
Paul                mailto:pderocco@ix.netcom.com


-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

  reply	other threads:[~2008-05-30  4:43 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-07 23:59 [ECOS] Wrongfully compiled code ariga masahiro
2008-01-08  0:05 ` Gary Thomas
2008-01-08  1:05   ` ariga masahiro
2008-01-17 19:21     ` [ECOS] " Dave Lawrence
2008-01-17 23:50       ` ariga masahiro
2008-01-18 12:16         ` Dave Lawrence
2008-01-18 14:40           ` Gregg Levine
2008-01-18 15:44             ` Dave Lawrence
2008-01-18 15:49               ` Gregg Levine
2008-01-18 16:09                 ` Dave Lawrence
2008-01-21  0:34           ` ariga masahiro
2008-02-04  1:49           ` ariga masahiro
2008-02-04 11:38             ` Dave Lawrence
2008-02-12  1:06               ` ariga masahiro
2008-02-12 10:55                 ` Dave Lawrence
2008-02-22  4:57   ` [ECOS] How to re-install newly compiled gnutools ariga masahiro
2008-02-22  7:15     ` ariga masahiro
2008-05-16  8:13       ` [ECOS] When or on what condition does "deschedule" happen? ariga masahiro
2008-05-16 15:26         ` Andrew Lunn
2008-05-19  5:32           ` ariga masahiro
2008-05-19 13:18             ` Andrew Lunn
2008-05-19 13:31               ` Gary Thomas
2008-05-20  1:26               ` ariga masahiro
2008-05-20 12:18                 ` Andrew Lunn
2008-05-23  7:38                   ` ariga masahiro
2008-05-23  9:35                     ` Nick Garnett
     [not found]                   ` <000601c8c165$406e0970$1c0110ac@ariga>
2008-05-29 18:23                     ` [ECOS] Re: In trouble of timer operations Andrew Lunn
2008-05-30  2:50                       ` ariga masahiro
2008-05-30  3:09                         ` Paul D. DeRocco
2008-05-30  4:11                           ` ariga masahiro
2008-05-30  4:43                             ` Paul D. DeRocco [this message]
2008-05-30  7:26                               ` ariga masahiro
2008-05-30  7:47                                 ` Paul D. DeRocco
2008-05-30  8:03                                   ` ariga masahiro
2008-05-30  8:07                                 ` Andrew Lunn
2008-06-04  5:25                                   ` ariga masahiro
2008-06-04 10:06                                     ` Paul D. DeRocco
2008-06-05  6:14                                       ` ariga masahiro
2008-06-05 17:39                                         ` Paul D. DeRocco
2008-05-30  6:35                             ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=PGEAIGBPLOMOJDAPCOJHOEINKPAB.pderocco@ix.netcom.com \
    --to=pderocco@ix.netcom.com \
    --cc=ariga@link-lab.co.jp \
    --cc=ecos-discuss@ecos.sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).