/***
*** The Example has no copyright and can be used by anyone.
*** The following example is based on Device File Package
*** required to compile the macro definitions used.
*** The Device File Package is available by downloading Atmel Studio 7.
***/
void configure_32K_clocks(void)
{
/*** Enable XOSC32K
*** Enable XTAL drive
*** Enable 1KHz output
*** Enable 32KHz output
*** Set a Start up time to 5 which represents around 4s start-up time.
*** Enable GCLK2 with XOSC32K as clock source for TC0 (eventually)
***/
OSC32KCTRL->XOSC32K.reg = OSC32KCTRL_XOSC32K_ENABLE|
OSC32KCTRL_XOSC32K_XTALEN|
OSC32KCTRL_XOSC32K_EN1K|
OSC32KCTRL_XOSC32K_EN32K|
OSC32KCTRL_XOSC32K_STARTUP(5);
while(OSC32KCTRL->STATUS.bit.XOSC32KRDY==0);
/*** Enable GCLK2 with XOSC32K as clock source for TC0 for ADC 1KHz Triggering ***/
GCLK->GENCTRL[2].reg = GCLK_GENCTRL_DIV(1) | CURRENT_32KOSC |GCLK_GENCTRL_GENEN;
/*** (write synchronized) ***/
while((GCLK->SYNCBUSY.reg & GCLK_SYNCBUSY_GENCTRL2));
GCLK->PCHCTRL[GCLK_TC0].reg = (GCLK_PCHCTRL_CHEN|GCLK_PCHCTRL_GEN_GCLK2);
}