Example #1
0
/** Configures and starts the XOSC32K external crystal. */
static void init_xosc32k(void)
{
	/* Configure and enable the XOSC32K clock source */
	struct system_clock_source_xosc32k_config xosc32k_conf;
	system_clock_source_xosc32k_get_config_defaults(&xosc32k_conf);
	xosc32k_conf.auto_gain_control = false;
	xosc32k_conf.on_demand = false;
	system_clock_source_xosc32k_set_config(&xosc32k_conf);
	system_clock_source_enable(SYSTEM_CLOCK_SOURCE_XOSC32K);
	while(!system_clock_source_is_ready(SYSTEM_CLOCK_SOURCE_XOSC32K));
}
//! [setup]
//! [config_extosc32k]
void configure_extosc32k(void)
{
//! [config_extosc32k_config]
	struct system_clock_source_xosc32k_config config_ext32k;
//! [config_extosc32k_config]
//! [config_extosc32k_get_defaults]
	system_clock_source_xosc32k_get_config_defaults(&config_ext32k);
//! [config_extosc32k_get_defaults]

//! [config_extosc32k_change_defaults]
	config_ext32k.startup_time = SYSTEM_XOSC32K_STARTUP_4096;
//! [config_extosc32k_change_defaults]

//! [config_extosc32k_set_config]
	system_clock_source_xosc32k_set_config(&config_ext32k);
//! [config_extosc32k_set_config]
}