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]

Re: clock resolution


Michał Oleńczuk wrote:
> 
> Hi,
> I am beginner in eCos programming and I have some problems:
> 
> I want to set real time clock resolution to 1000 ticks/sec (or higher). Is
> it available to set it from software using cyg_clock_set_resolution() ?
> Setting dividend and divisor in cyg_resolution_t structure gives no effect
> (cyg_clock_get_resolution() gives the same before-setting resolution value
> =100).
> I changed it in eCos ConfigTool, and after calling
> cyg_clock_get_resolution() I got my setted resolution resolution, but some
> function like cyg_thread_delay() or alarm functions work the same as with
> default resolution value.
> 
> How to get 1000 or more ticks for a second ????

Setting the resolution like that will just change the resolution that the
system *thinks* it is using, but it won't actually use it!

What you probably want to do is change the CYGNUM_HAL_RTC_PERIOD option in
the CDL of the HAL for your target. This value is used to program the timer
on your board (or the on-chip timer if appropriate), and therefore you'll
have to choose the correct value according to the documentation of your
processor/board.

You then change one or both of CYGNUM_HAL_RTC_NUMERATOR and
CYGNUM_HAL_RTC_DENOMINATOR to _reflect_ the change you just made.

For example to increase the frequency by a factor of ten, you may have to
(for example) reduce the ..._PERIOD option by a factor of 10, and then
increase the ..._DENOMINATOR option by a factor of 10.

Jifl
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine


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