The RTC peripheral works in Idle and Standby sleep modes. A wide range of resolutions and time-out periods can be configured for it. With a 32.768 kHz clock source, the maximum resolution is 30.5 μs, and time-out periods can be up to two seconds. With a resolution of 1s, the maximum time-out period is more than 18 hours (65536 seconds).
The following code snippets show the initialization of RTC to generate interrupts with a 1-second periodicity (the interrupt code is not included):
voidRTC_0_init(){while(RTC.STATUS >0){/* Wait for all register to be synchronized */}
RTC.PER =0x3FF;/* Period: 0x3FF - 1024 RTC clock cycles */
RTC.CLKSEL = RTC_CLKSEL_OSC1K_gc;/* 32kHz divided by 32 */
RTC.INTCTRL =0<< RTC_CMP_bp /* Compare Match Interrupt enable: disabled */|1<< RTC_OVF_bp;/* Overflow Interrupt enable: enabled */}
In addition to the RTC functionality, the RTC of the AVR Dx devices includes a Periodic Interrupt Timer (PIT) that can run even in Power-Down mode. If enabled, it can generate an interrupt request on every 2n clock period, where n can have any value from 2 to 15, selectable via the RTC.PITCTRLA register. This mode allows periodic interrupts/wake-up from sleep when the device is in Power-Down mode.