ao_arch_release_interrupts();
if (samd21_systick.csr & (1 << SAMD21_SYSTICK_CSR_COUNTFLAG)) {
++ao_tick_count;
+ ao_task_check_alarm();
+#if AO_DATA_ALL
+ if (++ao_data_count == ao_data_interval && ao_data_interval) {
+ ao_data_count = 0;
+#if HAS_FAKE_FLIGHT
+ if (ao_fake_flight_active)
+ ao_fake_flight_poll();
+ else
+#endif
+ ao_adc_poll();
+#if (AO_DATA_ALL & ~(AO_DATA_ADC))
+ ao_wakeup((void *) &ao_data_count);
+#endif
+ }
+#endif
#ifdef AO_TIMER_HOOK
AO_TIMER_HOOK;
#endif
;
#ifdef AO_XOSC
+ ao_enable_output(&samd21_port_b, 10, 1);
/* Enable xosc (external xtal oscillator) */
samd21_sysctrl.xosc = ((SAMD21_SYSCTRL_XOSC_STARTUP_8192 << SAMD21_SYSCTRL_XOSC_STARTUP) |
(0 << SAMD21_SYSCTRL_XOSC_AMPGC) |
while ((samd21_sysctrl.pclksr & (1 << SAMD21_SYSCTRL_PCLKSR_XOSCRDY)) == 0)
;
+ ao_enable_output(&samd21_port_b, 11, 1);
+
/* program DPLL */
/* Divide down */
/* Disable automatic NVM write operations */
samd21_nvmctrl.ctrlb |= (1UL << SAMD21_NVMCTRL_CTRLB_MANW);
+
+ ao_gpio_set(&samd21_port_b, 10, 0);
}