109 lines
2.2 KiB
C
109 lines
2.2 KiB
C
/*
|
|
* 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 <peripheral_clk_config.h>
|
|
#include <utils.h>
|
|
#include <hal_init.h>
|
|
#include <hpl_gclk_base.h>
|
|
#include <hpl_pm_base.h>
|
|
|
|
#include <hpl_adc_base.h>
|
|
#include <hpl_rtc_base.h>
|
|
|
|
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,
|
|
// <y> Pull configuration
|
|
// <id> pad_pull_config
|
|
// <GPIO_PULL_OFF"> Off
|
|
// <GPIO_PULL_UP"> Pull-up
|
|
// <GPIO_PULL_DOWN"> 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();
|
|
}
|