From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Larmour To: Micha³ Oleñczuk Cc: ecos-discuss@sourceware.cygnus.com Subject: Re: [ECOS] clock resolution Date: Mon, 23 Apr 2001 11:10:00 -0000 Message-id: <3AE4700F.19E70AC4@redhat.com> References: <014701c0cbfa$f80f7900$1e00a8c0@OLENCZUK> X-SW-Source: 2001-04/msg00328.html 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