Real-time timer (rtt), 1 overview, 2 block diagram – Rainbow Electronics AT91CAP9S250A User Manual
Page 99: 3 functional description

99
6264A–CAP–21-May-07
AT91CAP9S500A/AT91CAP9S250A
16. Real-time Timer (RTT)
16.1
Overview
The Real-time Timer is built around a 32-bit counter and used to count elapsed seconds. It
generates a periodic interrupt and/or triggers an alarm on a programmed value.
16.2
Block Diagram
Figure 16-1. Real-time Timer
16.3
Functional Description
The Real-time Timer is used to count elapsed seconds. It is built around a 32-bit counter fed
by Slow Clock divided by a programmable 16-bit value. The value can be programmed in the
field RTPRES of the Real-time Mode Register (RTT_MR).
Programming
RTPRES
at 0x00008000 corresponds to feeding the real-time counter with a 1
Hz signal (if the Slow Clock is 32.768 Hz). The 32-bit counter can count up to 2
32
seconds,
corresponding to more than 136 years, then roll over to 0.
The Real-time Timer can also be used as a free-running timer with a lower time-base. The
best accuracy is achieved by writing RTPRES to 3. Programming RTPRES to 1 or 2 is possi-
ble, but may result in losing status events because the status register is cleared two Slow
Clock cycles after read. Thus if the RTT is configured to trigger an interrupt, the interrupt
occurs during 2 Slow Clock cycles after reading RTT_SR. To prevent several executions of
the interrupt handler, the interrupt must be disabled in the interrupt handler and re-enabled
when the status register is clear.
SLCK
RTPRES
RTTINC
ALMS
16-bit
Divider
32-bit
Counter
ALMV
=
CRTV
RTT_MR
RTT_VR
RTT_AR
RTT_SR
RTTINCIEN
RTT_MR
0
1
0
ALMIEN
rtt_int
RTT_MR
set
set
RTT_SR
read
RTT_SR
reset
reset
RTT_MR
reload
rtt_alarm
RTTRST
RTT_MR
RTTRST