![](http://datasheet.mmic.net.cn/100000/IF180C52TXXX-20R_datasheet_3493957/IF180C52TXXX-20R_253.png)
253
32099I–01/2012
AT32UC3L016/32/64
14.5.1.2
Changing the source clock
The CLK_AST_PRSC must be disabled before switching to another source clock. The Clock
Busy bit in the Status Register (SR.CLKBUSY) indicates whether the clock is busy or not. This
bit is set when the CEN bit in the CLOCK register is changed, and cleared when the CLOCK reg-
ister can be changed.
To change the clock:
Write a zero to CLOCK.CEN to disable the clock, without changing CLOCK.CSSEL
Wait until SR.CLKBUSY reads as zero
Write the selected value to CLOCK.CSSEL
Wait until SR.CLKBUSY reads as zero
Write a one to CLOCK.CEN to enable the clock, without changing the CLOCK.CSSEL
Wait until SR.CLKBUSY reads as zero
14.5.2
Basic Operation
14.5.2.1
Prescaler
When the AST is enabled, the 32-bit prescaler will increment on the rising edge of
CLK_AST_PRSC. The prescaler value cannot be read or written, but it can be reset by writing a
one to the Prescaler Clear bit in the Control Register (CR.PCLR).
The Prescaler Select field in the Control Register (CR.PSEL) selects the prescaler bit PSEL as
source clock for the counter (CLK_AST_CNT). This results in a counter frequency of:
where f
PRSC is the frequency of the internal prescaler clock CLK_AST_PRSC.
14.5.2.2
Counter operation
When enabled, the AST will increment on every 0-to-1 transition of the selected prescaler tap-
ping. When the Calender bit in the Control Register (CR.CAL) is zero, the counter operates in
counter mode. It will increment until it reaches the top value of 0xFFFFFFFF, and then wrap to
0x00000000. This sets the status bit Overflow in the Status Register (SR.OVF). Optionally, the
also set the OVF bit.
The AST counter value can be read from or written to the Counter Value (CV) register. Note that
due to synchronization, continuous reading of the CV register with the lowest prescaler setting
will skip every third value. In addition, if CLK_AST_PRSC is as fast as, or faster than, the
CLK_AST, the prescaler value must be 3 or higher to be able to read the CV without skipping
values.
fCNT
fPRSC
2
PSEL 1
+
-----------------------
=