[ECOS] Re: Timer mechanism
Wed Jan 14 15:20:00 GMT 2004
Giovanni Perbellini said:
>> >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
>> >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?
Did you remember to include <cyg/kernel/kapi.h>? If not, you'll
have troubles because cyg_current_time() returns a long long value
and your code will be expecting only a long - hence gobbledygook.
>> >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
>> >timing devices counter since the last interrupt, called HAL_CLOCK_READ.
>> >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
>> which "is" 10ms (by default) in hw timer ticks. The HAL_CLOCK_READ macro
>> 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?
These should normally be the same. HAL_CLOCK_PERIOD should represent the
value given to your timer hardware to create a single system tick, which
is 10ms by default.
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss
More information about the Ecos-discuss