This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Re: Timer mechanism


Giovanni Perbellini wrote:




Hi all,

I'd like to know how the timer mechanism works.
I have used a function to return the current time, cyg_current_time().
I guess that this function returns the ticks count since when I turn on


the


board, is it correct?




Yes - since eCos started.



Ok, but why do I get a very big number, even if I execute the cyg_current_time() when the eCos starts?

What is the version of eCos your are using and on what type of HW ?

I just ran the following code on the synthetic target:

while (1)
{
   diag_printf("%d\n", cyg_current_time());
   cyg_thread_delay(100);
}

and the output is:

0
100
200
300
400
500
600
700
800
900
1000

after 10 seconds.



Otherwise, Is there a variable, method or class returning/containing the
ticks count since the power up?

Moreover, I have read that there is a macro to read the current value of


the


timing devices counter since the last interrupt, called HAL_CLOCK_READ.


What


is the relationship between the tick and interrupt?



The timing device is usually a hardware timer which can generate an
interrupt after a
specified amount of internal ticks. This timer gets initialized with
HAL_CLOCK_PERIOD
which "is" 10ms (by default) in hw timer ticks. The HAL_CLOCK_READ macro
returns
the number of hw timer internal ticks elapsed since the last interrupt.



Is HAL_CLOCK_PERIOD the time between two interrupts or two internal ticks?


HAL_CLOCK_PERIOD is the number of hw timer internal ticks between two RTC
interrupts. And it is a platform dependent value, because it depends on the frequency of
hw timer.


savin




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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]