This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

help needed on Timers in ARM9

Note: This was originally posted on 5th January 2009 at http://forums.arm.com

hi....i just want to know........
hw we can program the timers to generate interupt after a specified period of time..
which mode should we use, and hw to calculate timer register values if they need to be specified..
plz help..
  • Note: This was originally posted on 13th January 2009 at http://forums.arm.com

    Hi,

    Arm Architecture Does not support Timers. Timers is just another Peripheral in the SOC. U need to get the data sheet of the Timer which is the part of your SOC and then program accordingly.

    i have worked on DM320 SOC with Arm926ejs on it.
    Each of the general-purpose timers can run in one of two modes: one-shot
    mode or free-run mode.
    Once the prescale and divider values of the timer are set and the timer is
    started, the prescale is decremented by one for every input clock cycle. Each
    time the prescale value reaches ‘0’, the divider register is decremented by one
    and counter register incremented by one. Also the prescale register is reloaded
    with the programmed value. When the divider reaches zero, the timer generates
    an interrupt.
    In one-shot mode, an interrupt occurs only once, when the timer divider reaches
    zero and then the timer must be explicitly re-triggered to begin the operation
    again

    In free-run mode, when the timer generates an interrupt, the divider value is
    automatically reloaded with the programmed value to start the count operation
    again.

    Timer Interrupt frequency = clock frequency /(prescale+1)(Divider+1)
    Hence u write those registers (Prescale and divider) accordingly.

    Hope this helps.
  • Note: This was originally posted on 7th January 2009 at http://forums.arm.com

    The timers will be third-party peripherals and not part of the ARM architecture itself. The consequence of this is that the chip vendors will often use their own peripheral implementations, and these often differ. Therefore, you will need to consult the documentation for the specific chip you have in order to use the timer peripheral. This information is readily available from most manufacturers' websites.

    I am pretty certain that your timer will be able to implement the behaviour you require as it is a fairly common function.