Copy-paste the following setup code to your user application:
void configure_gclock_generator(
void)
{
struct system_gclk_gen_config gclock_gen_conf;
system_gclk_gen_get_config_defaults(&gclock_gen_conf);
#if (SAML21)
gclock_gen_conf.source_clock = SYSTEM_CLOCK_SOURCE_OSC16M;
gclock_gen_conf.division_factor = 128;
#elif (SAMC21)
gclock_gen_conf.source_clock = SYSTEM_CLOCK_SOURCE_OSC48M;
gclock_gen_conf.division_factor = 128;
#else
gclock_gen_conf.source_clock = SYSTEM_CLOCK_SOURCE_OSC8M;
gclock_gen_conf.division_factor = 128;
#endif
system_gclk_gen_set_config(GCLK_GENERATOR_1, &gclock_gen_conf);
system_gclk_gen_enable(GCLK_GENERATOR_1);
}
void configure_gclock_channel(
void)
{
struct system_gclk_chan_config gclk_chan_conf;
system_gclk_chan_get_config_defaults(&gclk_chan_conf);
gclk_chan_conf.source_generator = GCLK_GENERATOR_1;
#if (SAMD10) || (SAMD11)
system_gclk_chan_set_config(TC1_GCLK_ID, &gclk_chan_conf);
system_gclk_chan_enable(TC1_GCLK_ID);
#else
system_gclk_chan_set_config(TC3_GCLK_ID, &gclk_chan_conf);
system_gclk_chan_enable(TC3_GCLK_ID);
#endif
}
Add to user application initialization (typically the start of
main()):
configure_gclock_generator();
configure_gclock_channel();