/* * Code generated from Atmel Start. * * This file will be overwritten when reconfiguring your Atmel Start project. * Please copy examples or other code you want to keep to a separate file * to avoid losing it when reconfiguring. */ #include "driver_init.h" #include #include #include #include #include #include #include struct timer_descriptor TIMER_0; struct adc_sync_descriptor ADC_0; struct wdt_descriptor WDT_0; void ADC_0_PORT_init(void) { // Disable digital pin circuitry gpio_set_pin_direction(PIN_ADC, GPIO_DIRECTION_OFF); gpio_set_pin_function(PIN_ADC, PINMUX_PA04B_ADC_AIN2); } void ADC_0_CLOCK_init(void) { _pm_enable_bus_clock(PM_BUS_APBC, ADC); _gclk_enable_channel(ADC_GCLK_ID, CONF_GCLK_ADC_SRC); } void ADC_0_init(void) { ADC_0_CLOCK_init(); ADC_0_PORT_init(); adc_sync_init(&ADC_0, ADC, (void *)NULL); } void EXTERNAL_IRQ_0_init(void) { _gclk_enable_channel(EIC_GCLK_ID, CONF_GCLK_EIC_SRC); // Set pin direction to input gpio_set_pin_direction(PIN_BUTTON, GPIO_DIRECTION_IN); gpio_set_pin_pull_mode(PIN_BUTTON, // Pull configuration // pad_pull_config // Off // Pull-up // Pull-down GPIO_PULL_OFF); gpio_set_pin_function(PIN_BUTTON, PINMUX_PA15A_EIC_EXTINT1); ext_irq_init(); } void delay_driver_init(void) { delay_init(SysTick); } /** * \brief Timer initialization function * * Enables Timer peripheral, clocks and initializes Timer driver */ static void TIMER_0_init(void) { _pm_enable_bus_clock(PM_BUS_APBA, RTC); _gclk_enable_channel(RTC_GCLK_ID, CONF_GCLK_RTC_SRC); timer_init(&TIMER_0, RTC, _rtc_get_timer()); } void WDT_0_CLOCK_init(void) { _pm_enable_bus_clock(PM_BUS_APBA, WDT); _gclk_enable_channel(WDT_GCLK_ID, CONF_GCLK_WDT_SRC); } void WDT_0_init(void) { WDT_0_CLOCK_init(); wdt_init(&WDT_0, WDT); } void system_init(void) { init_mcu(); ADC_0_init(); EXTERNAL_IRQ_0_init(); delay_driver_init(); TIMER_0_init(); WDT_0_init(); }