/***************************************************************************** * * Copyright (C) 2014 Atmel Corporation * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * * Neither the name of the copyright holders nor the names of * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. ****************************************************************************/ #ifndef _AVR_IO_H_ # error "Include instead of this file." #endif #ifndef _AVR_IOXXX_H_ # define _AVR_IOXXX_H_ "iox16e5.h" #else # error "Attempt to include more than one file." #endif #ifndef _AVR_ATXMEGA16E5_H_INCLUDED #define _AVR_ATXMEGA16E5_H_INCLUDED /* Ungrouped common registers */ #define GPIOR0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */ #define GPIOR1 _SFR_MEM8(0x0001) /* General Purpose IO Register 1 */ #define GPIOR2 _SFR_MEM8(0x0002) /* General Purpose IO Register 2 */ #define GPIOR3 _SFR_MEM8(0x0003) /* General Purpose IO Register 3 */ /* Deprecated */ #define GPIO0 _SFR_MEM8(0x0000) /* General Purpose IO Register 0 */ #define GPIO1 _SFR_MEM8(0x0001) /* General Purpose IO Register 1 */ #define GPIO2 _SFR_MEM8(0x0002) /* General Purpose IO Register 2 */ #define GPIO3 _SFR_MEM8(0x0003) /* General Purpose IO Register 3 */ #define CCP _SFR_MEM8(0x0034) /* Configuration Change Protection */ #define RAMPD _SFR_MEM8(0x0038) /* Ramp D */ #define RAMPX _SFR_MEM8(0x0039) /* Ramp X */ #define RAMPY _SFR_MEM8(0x003A) /* Ramp Y */ #define RAMPZ _SFR_MEM8(0x003B) /* Ramp Z */ #define EIND _SFR_MEM8(0x003C) /* Extended Indirect Jump */ #define SPL _SFR_MEM8(0x003D) /* Stack Pointer Low */ #define SPH _SFR_MEM8(0x003E) /* Stack Pointer High */ #define SREG _SFR_MEM8(0x003F) /* Status Register */ /* C Language Only */ #if !defined (__ASSEMBLER__) #include typedef volatile uint8_t register8_t; typedef volatile uint16_t register16_t; typedef volatile uint32_t register32_t; #ifdef _WORDREGISTER #undef _WORDREGISTER #endif #define _WORDREGISTER(regname) \ __extension__ union \ { \ register16_t regname; \ struct \ { \ register8_t regname ## L; \ register8_t regname ## H; \ }; \ } #ifdef _DWORDREGISTER #undef _DWORDREGISTER #endif #define _DWORDREGISTER(regname) \ __extension__ union \ { \ register32_t regname; \ struct \ { \ register8_t regname ## 0; \ register8_t regname ## 1; \ register8_t regname ## 2; \ register8_t regname ## 3; \ }; \ } /* ========================================================================== IO Module Structures ========================================================================== */ /* -------------------------------------------------------------------------- VPORT - Virtual Ports -------------------------------------------------------------------------- */ /* Virtual Port */ typedef struct VPORT_struct { register8_t DIR; /* I/O Port Data Direction */ register8_t OUT; /* I/O Port Output */ register8_t IN; /* I/O Port Input */ register8_t INTFLAGS; /* Interrupt Flag Register */ } VPORT_t; /* -------------------------------------------------------------------------- XOCD - On-Chip Debug System -------------------------------------------------------------------------- */ /* On-Chip Debug System */ typedef struct OCD_struct { register8_t OCDR0; /* OCD Register 0 */ register8_t OCDR1; /* OCD Register 1 */ } OCD_t; /* -------------------------------------------------------------------------- CPU - CPU -------------------------------------------------------------------------- */ /* CCP signatures */ typedef enum CCP_enum { CCP_SPM_gc = (0x9D<<0), /* SPM Instruction Protection */ CCP_IOREG_gc = (0xD8<<0), /* IO Register Protection */ } CCP_t; /* -------------------------------------------------------------------------- CLK - Clock System -------------------------------------------------------------------------- */ /* Clock System */ typedef struct CLK_struct { register8_t CTRL; /* Control Register */ register8_t PSCTRL; /* Prescaler Control Register */ register8_t LOCK; /* Lock register */ register8_t RTCCTRL; /* RTC Control Register */ register8_t reserved_0x04; } CLK_t; /* Power Reduction */ typedef struct PR_struct { register8_t PRGEN; /* General Power Reduction */ register8_t PRPA; /* Power Reduction Port A */ register8_t reserved_0x02; register8_t PRPC; /* Power Reduction Port C */ register8_t PRPD; /* Power Reduction Port D */ register8_t reserved_0x05; register8_t reserved_0x06; } PR_t; /* System Clock Selection */ typedef enum CLK_SCLKSEL_enum { CLK_SCLKSEL_RC2M_gc = (0x00<<0), /* Internal 2 MHz RC Oscillator */ CLK_SCLKSEL_RC32M_gc = (0x01<<0), /* Internal 32 MHz RC Oscillator */ CLK_SCLKSEL_RC32K_gc = (0x02<<0), /* Internal 32.768 kHz RC Oscillator */ CLK_SCLKSEL_XOSC_gc = (0x03<<0), /* External Crystal Oscillator or Clock */ CLK_SCLKSEL_PLL_gc = (0x04<<0), /* Phase Locked Loop */ CLK_SCLKSEL_RC8M_gc = (0x05<<0), /* Internal 8 MHz RC Oscillator */ } CLK_SCLKSEL_t; /* Prescaler A Division Factor */ typedef enum CLK_PSADIV_enum { CLK_PSADIV_1_gc = (0x00<<2), /* Divide by 1 */ CLK_PSADIV_2_gc = (0x01<<2), /* Divide by 2 */ CLK_PSADIV_4_gc = (0x03<<2), /* Divide by 4 */ CLK_PSADIV_8_gc = (0x05<<2), /* Divide by 8 */ CLK_PSADIV_16_gc = (0x07<<2), /* Divide by 16 */ CLK_PSADIV_32_gc = (0x09<<2), /* Divide by 32 */ CLK_PSADIV_64_gc = (0x0B<<2), /* Divide by 64 */ CLK_PSADIV_128_gc = (0x0D<<2), /* Divide by 128 */ CLK_PSADIV_256_gc = (0x0F<<2), /* Divide by 256 */ CLK_PSADIV_512_gc = (0x11<<2), /* Divide by 512 */ CLK_PSADIV_6_gc = (0x13<<2), /* Divide by 6 */ CLK_PSADIV_10_gc = (0x15<<2), /* Divide by 10 */ CLK_PSADIV_12_gc = (0x17<<2), /* Divide by 12 */ CLK_PSADIV_24_gc = (0x19<<2), /* Divide by 24 */ CLK_PSADIV_48_gc = (0x1B<<2), /* Divide by 48 */ } CLK_PSADIV_t; /* Prescaler B and C Division Factor */ typedef enum CLK_PSBCDIV_enum { CLK_PSBCDIV_1_1_gc = (0x00<<0), /* Divide B by 1 and C by 1 */ CLK_PSBCDIV_1_2_gc = (0x01<<0), /* Divide B by 1 and C by 2 */ CLK_PSBCDIV_4_1_gc = (0x02<<0), /* Divide B by 4 and C by 1 */ CLK_PSBCDIV_2_2_gc = (0x03<<0), /* Divide B by 2 and C by 2 */ } CLK_PSBCDIV_t; /* RTC Clock Source */ typedef enum CLK_RTCSRC_enum { CLK_RTCSRC_ULP_gc = (0x00<<1), /* 1.024 kHz from internal 32kHz ULP */ CLK_RTCSRC_TOSC_gc = (0x01<<1), /* 1.024 kHz from 32.768 kHz crystal oscillator on TOSC */ CLK_RTCSRC_RCOSC_gc = (0x02<<1), /* 1.024 kHz from internal 32.768 kHz RC oscillator */ CLK_RTCSRC_TOSC32_gc = (0x05<<1), /* 32.768 kHz from 32.768 kHz crystal oscillator on TOSC */ CLK_RTCSRC_RCOSC32_gc = (0x06<<1), /* 32.768 kHz from internal 32.768 kHz RC oscillator */ CLK_RTCSRC_EXTCLK_gc = (0x07<<1), /* External Clock from TOSC1 */ } CLK_RTCSRC_t; /* -------------------------------------------------------------------------- SLEEP - Sleep Controller -------------------------------------------------------------------------- */ /* Sleep Controller */ typedef struct SLEEP_struct { register8_t CTRL; /* Control Register */ } SLEEP_t; /* Sleep Mode */ typedef enum SLEEP_SMODE_enum { SLEEP_SMODE_IDLE_gc = (0x00<<1), /* Idle mode */ SLEEP_SMODE_PDOWN_gc = (0x02<<1), /* Power-down Mode */ SLEEP_SMODE_PSAVE_gc = (0x03<<1), /* Power-save Mode */ SLEEP_SMODE_STDBY_gc = (0x06<<1), /* Standby Mode */ SLEEP_SMODE_ESTDBY_gc = (0x07<<1), /* Extended Standby Mode */ } SLEEP_SMODE_t; /* -------------------------------------------------------------------------- OSC - Oscillator -------------------------------------------------------------------------- */ /* Oscillator */ typedef struct OSC_struct { register8_t CTRL; /* Control Register */ register8_t STATUS; /* Status Register */ register8_t XOSCCTRL; /* External Oscillator Control Register */ register8_t XOSCFAIL; /* Oscillator Failure Detection Register */ register8_t RC32KCAL; /* 32.768 kHz Internal Oscillator Calibration Register */ register8_t PLLCTRL; /* PLL Control Register */ register8_t DFLLCTRL; /* DFLL Control Register */ register8_t RC8MCAL; /* Internal 8 MHz RC Oscillator Calibration Register */ } OSC_t; /* Oscillator Frequency Range */ typedef enum OSC_FRQRANGE_enum { OSC_FRQRANGE_04TO2_gc = (0x00<<6), /* 0.4 - 2 MHz */ OSC_FRQRANGE_2TO9_gc = (0x01<<6), /* 2 - 9 MHz */ OSC_FRQRANGE_9TO12_gc = (0x02<<6), /* 9 - 12 MHz */ OSC_FRQRANGE_12TO16_gc = (0x03<<6), /* 12 - 16 MHz */ } OSC_FRQRANGE_t; /* External Oscillator Selection and Startup Time */ typedef enum OSC_XOSCSEL_enum { OSC_XOSCSEL_EXTCLK_gc = (0x00<<0), /* External Clock on port R1 - 6 CLK */ OSC_XOSCSEL_32KHz_gc = (0x02<<0), /* 32.768 kHz TOSC - 32K CLK */ OSC_XOSCSEL_XTAL_256CLK_gc = (0x03<<0), /* 0.4-16 MHz XTAL - 256 CLK */ OSC_XOSCSEL_XTAL_1KCLK_gc = (0x07<<0), /* 0.4-16 MHz XTAL - 1K CLK */ OSC_XOSCSEL_XTAL_16KCLK_gc = (0x0B<<0), /* 0.4-16 MHz XTAL - 16K CLK */ OSC_XOSCSEL_EXTCLK_C4_gc = (0x14<<0), /* External Clock on port C4 - 6 CLK */ } OSC_XOSCSEL_t; /* PLL Clock Source */ typedef enum OSC_PLLSRC_enum { OSC_PLLSRC_RC2M_gc = (0x00<<6), /* Internal 2 MHz RC Oscillator */ OSC_PLLSRC_RC8M_gc = (0x01<<6), /* Internal 8 MHz RC Oscillator */ OSC_PLLSRC_RC32M_gc = (0x02<<6), /* Internal 32 MHz RC Oscillator */ OSC_PLLSRC_XOSC_gc = (0x03<<6), /* External Oscillator */ } OSC_PLLSRC_t; /* 32 MHz DFLL Calibration Reference */ typedef enum OSC_RC32MCREF_enum { OSC_RC32MCREF_RC32K_gc = (0x00<<1), /* Internal 32.768 kHz RC Oscillator */ OSC_RC32MCREF_XOSC32K_gc = (0x01<<1), /* External 32.768 kHz Crystal Oscillator */ } OSC_RC32MCREF_t; /* -------------------------------------------------------------------------- DFLL - DFLL -------------------------------------------------------------------------- */ /* DFLL */ typedef struct DFLL_struct { register8_t CTRL; /* Control Register */ register8_t reserved_0x01; register8_t CALA; /* Calibration Register A */ register8_t CALB; /* Calibration Register B */ register8_t COMP0; /* Oscillator Compare Register 0 */ register8_t COMP1; /* Oscillator Compare Register 1 */ register8_t COMP2; /* Oscillator Compare Register 2 */ register8_t reserved_0x07; } DFLL_t; /* -------------------------------------------------------------------------- RST - Reset -------------------------------------------------------------------------- */ /* Reset */ typedef struct RST_struct { register8_t STATUS; /* Status Register */ register8_t CTRL; /* Control Register */ } RST_t; /* -------------------------------------------------------------------------- WDT - Watch-Dog Timer -------------------------------------------------------------------------- */ /* Watch-Dog Timer */ typedef struct WDT_struct { register8_t CTRL; /* Control */ register8_t WINCTRL; /* Windowed Mode Control */ register8_t STATUS; /* Status */ } WDT_t; /* Period setting */ typedef enum WDT_PER_enum { WDT_PER_8CLK_gc = (0x00<<2), /* 8 cycles (8ms @ 3.3V) */ WDT_PER_16CLK_gc = (0x01<<2), /* 16 cycles (16ms @ 3.3V) */ WDT_PER_32CLK_gc = (0x02<<2), /* 32 cycles (32ms @ 3.3V) */ WDT_PER_64CLK_gc = (0x03<<2), /* 64 cycles (64ms @ 3.3V) */ WDT_PER_128CLK_gc = (0x04<<2), /* 128 cycles (0.128s @ 3.3V) */ WDT_PER_256CLK_gc = (0x05<<2), /* 256 cycles (0.256s @ 3.3V) */ WDT_PER_512CLK_gc = (0x06<<2), /* 512 cycles (0.512s @ 3.3V) */ WDT_PER_1KCLK_gc = (0x07<<2), /* 1K cycles (1s @ 3.3V) */ WDT_PER_2KCLK_gc = (0x08<<2), /* 2K cycles (2s @ 3.3V) */ WDT_PER_4KCLK_gc = (0x09<<2), /* 4K cycles (4s @ 3.3V) */ WDT_PER_8KCLK_gc = (0x0A<<2), /* 8K cycles (8s @ 3.3V) */ } WDT_PER_t; /* Closed window period */ typedef enum WDT_WPER_enum { WDT_WPER_8CLK_gc = (0x00<<2), /* 8 cycles (8ms @ 3.3V) */ WDT_WPER_16CLK_gc = (0x01<<2), /* 16 cycles (16ms @ 3.3V) */ WDT_WPER_32CLK_gc = (0x02<<2), /* 32 cycles (32ms @ 3.3V) */ WDT_WPER_64CLK_gc = (0x03<<2), /* 64 cycles (64ms @ 3.3V) */ WDT_WPER_128CLK_gc = (0x04<<2), /* 128 cycles (0.128s @ 3.3V) */ WDT_WPER_256CLK_gc = (0x05<<2), /* 256 cycles (0.256s @ 3.3V) */ WDT_WPER_512CLK_gc = (0x06<<2), /* 512 cycles (0.512s @ 3.3V) */ WDT_WPER_1KCLK_gc = (0x07<<2), /* 1K cycles (1s @ 3.3V) */ WDT_WPER_2KCLK_gc = (0x08<<2), /* 2K cycles (2s @ 3.3V) */ WDT_WPER_4KCLK_gc = (0x09<<2), /* 4K cycles (4s @ 3.3V) */ WDT_WPER_8KCLK_gc = (0x0A<<2), /* 8K cycles (8s @ 3.3V) */ } WDT_WPER_t; /* -------------------------------------------------------------------------- MCU - MCU Control -------------------------------------------------------------------------- */ /* MCU Control */ typedef struct MCU_struct { register8_t DEVID0; /* Device ID byte 0 */ register8_t DEVID1; /* Device ID byte 1 */ register8_t DEVID2; /* Device ID byte 2 */ register8_t REVID; /* Revision ID */ register8_t reserved_0x04; register8_t reserved_0x05; register8_t reserved_0x06; register8_t ANAINIT; /* Analog Startup Delay */ register8_t EVSYSLOCK; /* Event System Lock */ register8_t WEXLOCK; /* WEX Lock */ register8_t FAULTLOCK; /* FAULT Lock */ register8_t reserved_0x0B; } MCU_t; /* -------------------------------------------------------------------------- PMIC - Programmable Multi-level Interrupt Controller -------------------------------------------------------------------------- */ /* Programmable Multi-level Interrupt Controller */ typedef struct PMIC_struct { register8_t STATUS; /* Status Register */ register8_t INTPRI; /* Interrupt Priority */ register8_t CTRL; /* Control Register */ register8_t reserved_0x03; register8_t reserved_0x04; register8_t reserved_0x05; register8_t reserved_0x06; register8_t reserved_0x07; register8_t reserved_0x08; register8_t reserved_0x09; register8_t reserved_0x0A; register8_t reserved_0x0B; register8_t reserved_0x0C; register8_t reserved_0x0D; register8_t reserved_0x0E; register8_t reserved_0x0F; } PMIC_t; /* -------------------------------------------------------------------------- PORTCFG - Port Configuration -------------------------------------------------------------------------- */ /* I/O port Configuration */ typedef struct PORTCFG_struct { register8_t MPCMASK; /* Multi-pin Configuration Mask */ register8_t reserved_0x01; register8_t reserved_0x02; register8_t reserved_0x03; register8_t CLKOUT; /* Clock Out Register */ register8_t reserved_0x05; register8_t ACEVOUT; /* Analog Comparator and Event Out Register */ register8_t SRLCTRL; /* Slew Rate Limit Control Register */ } PORTCFG_t; /* Clock and Event Output Port */ typedef enum PORTCFG_CLKEVPIN_enum { PORTCFG_CLKEVPIN_PIN7_gc = (0x00<<7), /* Clock and Event Ouput on PIN 7 */ PORTCFG_CLKEVPIN_PIN4_gc = (0x01<<7), /* Clock and Event Ouput on PIN 4 */ } PORTCFG_CLKEVPIN_t; /* RTC Clock Output Port */ typedef enum PORTCFG_RTCCLKOUT_enum { PORTCFG_RTCCLKOUT_OFF_gc = (0x00<<5), /* System Clock Output Disabled */ PORTCFG_RTCCLKOUT_PC6_gc = (0x01<<5), /* System Clock Output on Port C pin 6 */ PORTCFG_RTCCLKOUT_PD6_gc = (0x02<<5), /* System Clock Output on Port D pin 6 */ PORTCFG_RTCCLKOUT_PR0_gc = (0x03<<5), /* System Clock Output on Port R pin 0 */ } PORTCFG_RTCCLKOUT_t; /* Peripheral Clock Output Select */ typedef enum PORTCFG_CLKOUTSEL_enum { PORTCFG_CLKOUTSEL_CLK1X_gc = (0x00<<2), /* 1x Peripheral Clock Output to pin */ PORTCFG_CLKOUTSEL_CLK2X_gc = (0x01<<2), /* 2x Peripheral Clock Output to pin */ PORTCFG_CLKOUTSEL_CLK4X_gc = (0x02<<2), /* 4x Peripheral Clock Output to pin */ } PORTCFG_CLKOUTSEL_t; /* System Clock Output Port */ typedef enum PORTCFG_CLKOUT_enum { PORTCFG_CLKOUT_OFF_gc = (0x00<<0), /* System Clock Output Disabled */ PORTCFG_CLKOUT_PC7_gc = (0x01<<0), /* System Clock Output on Port C pin 7 */ PORTCFG_CLKOUT_PD7_gc = (0x02<<0), /* System Clock Output on Port D pin 7 */ PORTCFG_CLKOUT_PR0_gc = (0x03<<0), /* System Clock Output on Port R pin 0 */ } PORTCFG_CLKOUT_t; /* Analog Comparator Output Port */ typedef enum PORTCFG_ACOUT_enum { PORTCFG_ACOUT_PA_gc = (0x00<<6), /* Analog Comparator Outputs on Port A, Pin 6-7 */ PORTCFG_ACOUT_PC_gc = (0x01<<6), /* Analog Comparator Outputs on Port C, Pin 6-7 */ PORTCFG_ACOUT_PD_gc = (0x02<<6), /* Analog Comparator Outputs on Port D, Pin 6-7 */ PORTCFG_ACOUT_PR_gc = (0x03<<6), /* Analog Comparator Outputs on Port R, Pin 0-1 */ } PORTCFG_ACOUT_t; /* Event Output Port */ typedef enum PORTCFG_EVOUT_enum { PORTCFG_EVOUT_OFF_gc = (0x00<<4), /* Event Output Disabled */ PORTCFG_EVOUT_PC7_gc = (0x01<<4), /* Event Channel n Output on Port C pin 7 */ PORTCFG_EVOUT_PD7_gc = (0x02<<4), /* Event Channel n Output on Port D pin 7 */ PORTCFG_EVOUT_PR0_gc = (0x03<<4), /* Event Channel n Output on Port R pin 0 */ } PORTCFG_EVOUT_t; /* Event Output Select */ typedef enum PORTCFG_EVOUTSEL_enum { PORTCFG_EVOUTSEL_0_gc = (0x00<<0), /* Event Channel 0 output to pin */ PORTCFG_EVOUTSEL_1_gc = (0x01<<0), /* Event Channel 1 output to pin */ PORTCFG_EVOUTSEL_2_gc = (0x02<<0), /* Event Channel 2 output to pin */ PORTCFG_EVOUTSEL_3_gc = (0x03<<0), /* Event Channel 3 output to pin */ PORTCFG_EVOUTSEL_4_gc = (0x04<<0), /* Event Channel 4 output to pin */ PORTCFG_EVOUTSEL_5_gc = (0x05<<0), /* Event Channel 5 output to pin */ PORTCFG_EVOUTSEL_6_gc = (0x06<<0), /* Event Channel 6 output to pin */ PORTCFG_EVOUTSEL_7_gc = (0x07<<0), /* Event Channel 7 output to pin */ } PORTCFG_EVOUTSEL_t; /* -------------------------------------------------------------------------- CRC - Cyclic Redundancy Checker -------------------------------------------------------------------------- */ /* Cyclic Redundancy Checker */ typedef struct CRC_struct { register8_t CTRL; /* Control Register */ register8_t STATUS; /* Status Register */ register8_t reserved_0x02; register8_t DATAIN; /* Data Input */ register8_t CHECKSUM0; /* Checksum byte 0 */ register8_t CHECKSUM1; /* Checksum byte 1 */ register8_t CHECKSUM2; /* Checksum byte 2 */ register8_t CHECKSUM3; /* Checksum byte 3 */ } CRC_t; /* Reset */ typedef enum CRC_RESET_enum { CRC_RESET_NO_gc = (0x00<<6), /* No Reset */ CRC_RESET_RESET0_gc = (0x02<<6), /* Reset CRC with CHECKSUM to all zeros */ CRC_RESET_RESET1_gc = (0x03<<6), /* Reset CRC with CHECKSUM to all ones */ } CRC_RESET_t; /* Input Source */ typedef enum CRC_SOURCE_enum { CRC_SOURCE_DISABLE_gc = (0x00<<0), /* Disabled */ CRC_SOURCE_IO_gc = (0x01<<0), /* I/O Interface */ CRC_SOURCE_FLASH_gc = (0x02<<0), /* Flash */ CRC_SOURCE_DMAC0_gc = (0x04<<0), /* DMAC Channel 0 */ CRC_SOURCE_DMAC1_gc = (0x05<<0), /* DMAC Channel 1 */ CRC_SOURCE_DMAC2_gc = (0x06<<0), /* DMAC Channel 2 */ CRC_SOURCE_DMAC3_gc = (0x07<<0), /* DMAC Channel 3 */ } CRC_SOURCE_t; /* -------------------------------------------------------------------------- EDMA - Enhanced DMA Controller -------------------------------------------------------------------------- */ /* EDMA Channel */ typedef struct EDMA_CH_struct { register8_t CTRLA; /* Channel Control A */ register8_t CTRLB; /* Channel Control */ register8_t ADDRCTRL; /* Memory Address Control for Peripheral Ch., or Source Address Control for Standard Ch. */ register8_t DESTADDRCTRL; /* Destination Address Control for Standard Channels Only. */ register8_t TRIGSRC; /* Channel Trigger Source */ register8_t reserved_0x05; _WORDREGISTER(TRFCNT); /* Channel Block Transfer Count for Peripheral Ch., or Channel Block Transfer Count Low for Standard Ch. */ _WORDREGISTER(ADDR); /* Channel Memory Address for Peripheral Ch., or Channel Source Address Low for Standard Ch. */ register8_t reserved_0x0A; register8_t reserved_0x0B; _WORDREGISTER(DESTADDR); /* Channel Destination Address for Standard Channels Only. */ register8_t reserved_0x0E; register8_t reserved_0x0F; } EDMA_CH_t; /* Enhanced DMA Controller */ typedef struct EDMA_struct { register8_t CTRL; /* Control */ register8_t reserved_0x01; register8_t reserved_0x02; register8_t INTFLAGS; /* Transfer Interrupt Status */ register8_t STATUS; /* Status */ register8_t reserved_0x05; register8_t TEMP; /* Temporary Register For 16-bit Access */ register8_t reserved_0x07; register8_t reserved_0x08; register8_t reserved_0x09; register8_t reserved_0x0A; register8_t reserved_0x0B; register8_t reserved_0x0C; register8_t reserved_0x0D; register8_t reserved_0x0E; register8_t reserved_0x0F; EDMA_CH_t CH0; /* EDMA Channel 0 */ EDMA_CH_t CH1; /* EDMA Channel 1 */ EDMA_CH_t CH2; /* EDMA Channel 2 */ EDMA_CH_t CH3; /* EDMA Channel 3 */ } EDMA_t; /* Channel mode */ typedef enum EDMA_CHMODE_enum { EDMA_CHMODE_PER0123_gc = (0x00<<4), /* Channels 0, 1, 2 and 3 in peripheal conf. */ EDMA_CHMODE_STD0_gc = (0x01<<4), /* Channel 0 in standard conf.; channels 2 and 3 in peripheral conf. */ EDMA_CHMODE_STD2_gc = (0x02<<4), /* Channel 2 in standard conf.; channels 0 and 1 in peripheral conf. */ EDMA_CHMODE_STD02_gc = (0x03<<4), /* Channels 0 and 2 in standard conf. */ } EDMA_CHMODE_t; /* Double buffer mode */ typedef enum EDMA_DBUFMODE_enum { EDMA_DBUFMODE_DISABLE_gc = (0x00<<2), /* No double buffer enabled */ EDMA_DBUFMODE_BUF01_gc = (0x01<<2), /* Double buffer enabled on peripheral channels 0/1 (if exist) */ EDMA_DBUFMODE_BUF23_gc = (0x02<<2), /* Double buffer enabled on peripheral channels 2/3 (if exist) */ EDMA_DBUFMODE_BUF0123_gc = (0x03<<2), /* Double buffer enabled on peripheral channels 0/1 and 2/3 or standard channels 0/2 */ } EDMA_DBUFMODE_t; /* Priority mode */ typedef enum EDMA_PRIMODE_enum { EDMA_PRIMODE_RR0123_gc = (0x00<<0), /* Round robin on all channels */ EDMA_PRIMODE_RR123_gc = (0x01<<0), /* Ch0 > round robin (Ch 1 ch2 Ch3) */ EDMA_PRIMODE_RR23_gc = (0x02<<0), /* Ch0 > Ch 1 > round robin (Ch2 Ch3) */ EDMA_PRIMODE_CH0123_gc = (0x03<<0), /* Ch0 > Ch1 > Ch2 > Ch3 */ } EDMA_PRIMODE_t; /* Memory Address Reload for Peripheral Ch., or Source Address Reload for Standard Ch. */ typedef enum EDMA_CH_RELOAD_enum { EDMA_CH_RELOAD_NONE_gc = (0x00<<4), /* No reload */ EDMA_CH_RELOAD_BLOCK_gc = (0x01<<4), /* Reload at end of each block transfer */ EDMA_CH_RELOAD_BURST_gc = (0x02<<4), /* Reload at end of each burst transfer */ EDMA_CH_RELOAD_TRANSACTION_gc = (0x03<<4), /* Reload at end of each transaction */ } EDMA_CH_RELOAD_t; /* Memory Address Mode for Peripheral Ch., or Source Address Mode for Standard Ch. */ typedef enum EDMA_CH_DIR_enum { EDMA_CH_DIR_FIXED_gc = (0x00<<0), /* Fixed */ EDMA_CH_DIR_INC_gc = (0x01<<0), /* Increment */ EDMA_CH_DIR_MP1_gc = (0x04<<0), /* If Peripheral Ch. (Per ==> Mem), 1-byte 'mask-match' (data: ADDRL, mask: ADDRH), else reserved conf. */ EDMA_CH_DIR_MP2_gc = (0x05<<0), /* If Peripheral Ch. (Per ==> Mem), 1-byte 'OR-match' (data-1: ADDRL OR data-2: ADDRH), else reserved conf. */ EDMA_CH_DIR_MP3_gc = (0x06<<0), /* If Peripheral Ch. (Per ==> Mem), 2-byte 'match' (data-1: ADDRL followed by data-2: ADDRH), else reserved conf. */ } EDMA_CH_DIR_t; /* Destination addressing mode */ typedef enum EDMA_CH_DESTDIR_enum { EDMA_CH_DESTDIR_FIXED_gc = (0x00<<0), /* Fixed */ EDMA_CH_DESTDIR_INC_gc = (0x01<<0), /* Increment */ EDMA_CH_DESTDIR_MP1_gc = (0x04<<0), /* 1-byte 'mask-match' (data: ADDRL, mask: ADDRH) */ EDMA_CH_DESTDIR_MP2_gc = (0x05<<0), /* 1-byte 'OR-match' (data-1: ADDRL OR data-2: ADDRH) */ EDMA_CH_DESTDIR_MP3_gc = (0x06<<0), /* 2-byte 'match' (data1: ADDRL followed by data2: ADDRH) */ } EDMA_CH_DESTDIR_t; /* Transfer trigger source */ typedef enum EDMA_CH_TRIGSRC_enum { EDMA_CH_TRIGSRC_OFF_gc = (0x00<<0), /* Software triggers only */ EDMA_CH_TRIGSRC_EVSYS_CH0_gc = (0x01<<0), /* Event CH0 as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_EVSYS_CH1_gc = (0x02<<0), /* Event CH1 as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_EVSYS_CH2_gc = (0x03<<0), /* Event CH2 as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_ADCA_CH0_gc = (0x10<<0), /* ADCA CH0 as trigger */ EDMA_CH_TRIGSRC_DACA_CH0_gc = (0x15<<0), /* DACA CH0 as trigger */ EDMA_CH_TRIGSRC_DACA_CH1_gc = (0x16<<0), /* DACA CH1 as trigger */ EDMA_CH_TRIGSRC_TCC4_OVF_gc = (0x40<<0), /* TCC4 overflow/underflow as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCC4_ERR_gc = (0x41<<0), /* TCC4 error as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCC4_CCA_gc = (0x42<<0), /* TCC4 compare or capture channel A as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCC4_CCB_gc = (0x43<<0), /* TCC4 compare or capture channel B as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCC4_CCC_gc = (0x44<<0), /* TCC4 compare or capture channel C as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCC4_CCD_gc = (0x45<<0), /* TCC4 compare or capture channel D as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCC5_OVF_gc = (0x46<<0), /* TCC5 overflow/underflow as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCC5_ERR_gc = (0x47<<0), /* TCC5 error as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCC5_CCA_gc = (0x48<<0), /* TCC5 compare or capture channel A as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCC5_CCB_gc = (0x49<<0), /* TCC5 compare or capture channel B as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_SPIC_RXC_gc = (0x4A<<0), /* SPI C transfer complete (SPI Standard Mode) or SPI C receive complete as trigger (SPI Buffer Modes) */ EDMA_CH_TRIGSRC_SPIC_DRE_gc = (0x4B<<0), /* SPI C transfer complete (SPI Standard Mode) or SPI C data register empty as trigger (SPI Buffer modes) */ EDMA_CH_TRIGSRC_USARTC0_RXC_gc = (0x4C<<0), /* USART C0 receive complete as trigger */ EDMA_CH_TRIGSRC_USARTC0_DRE_gc = (0x4D<<0), /* USART C0 data register empty as trigger */ EDMA_CH_TRIGSRC_TCD5_OVF_gc = (0x66<<0), /* TCD5 overflow/underflow as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCD5_ERR_gc = (0x67<<0), /* TCD5 error as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCD5_CCA_gc = (0x68<<0), /* TCD5 compare or capture channel A as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_TCD5_CCB_gc = (0x69<<0), /* TCD5 compare or capture channel B as trigger (Standard Channels Only) */ EDMA_CH_TRIGSRC_USARTD0_RXC_gc = (0x6C<<0), /* USART D0 receive complete as trigger */ EDMA_CH_TRIGSRC_USARTD0_DRE_gc = (0x6D<<0), /* USART D0 data register empty as trigger */ } EDMA_CH_TRIGSRC_t; /* Interrupt level */ typedef enum EDMA_CH_INTLVL_enum { EDMA_CH_INTLVL_OFF_gc = (0x00<<2), /* Interrupt disabled */ EDMA_CH_INTLVL_LO_gc = (0x01<<2), /* Low level */ EDMA_CH_INTLVL_MED_gc = (0x02<<2), /* Medium level */ EDMA_CH_INTLVL_HI_gc = (0x03<<2), /* High level */ } EDMA_CH_INTLVL_t; /* -------------------------------------------------------------------------- EVSYS - Event System -------------------------------------------------------------------------- */ /* Event System */ typedef struct EVSYS_struct { register8_t CH0MUX; /* Event Channel 0 Multiplexer */ register8_t CH1MUX; /* Event Channel 1 Multiplexer */ register8_t CH2MUX; /* Event Channel 2 Multiplexer */ register8_t CH3MUX; /* Event Channel 3 Multiplexer */ register8_t CH4MUX; /* Event Channel 4 Multiplexer */ register8_t CH5MUX; /* Event Channel 5 Multiplexer */ register8_t CH6MUX; /* Event Channel 6 Multiplexer */ register8_t CH7MUX; /* Event Channel 7 Multiplexer */ register8_t CH0CTRL; /* Channel 0 Control Register */ register8_t CH1CTRL; /* Channel 1 Control Register */ register8_t CH2CTRL; /* Channel 2 Control Register */ register8_t CH3CTRL; /* Channel 3 Control Register */ register8_t CH4CTRL; /* Channel 4 Control Register */ register8_t CH5CTRL; /* Channel 5 Control Register */ register8_t CH6CTRL; /* Channel 6 Control Register */ register8_t CH7CTRL; /* Channel 7 Control Register */ register8_t STROBE; /* Event Strobe */ register8_t DATA; /* Event Data */ register8_t DFCTRL; /* Digital Filter Control Register */ } EVSYS_t; /* Event Channel multiplexer input selection */ typedef enum EVSYS_CHMUX_enum { EVSYS_CHMUX_OFF_gc = (0x00<<0), /* Off */ EVSYS_CHMUX_RTC_OVF_gc = (0x08<<0), /* RTC Overflow */ EVSYS_CHMUX_RTC_CMP_gc = (0x09<<0), /* RTC Compare Match */ EVSYS_CHMUX_ACA_CH0_gc = (0x10<<0), /* Analog Comparator A Channel 0 */ EVSYS_CHMUX_ACA_CH1_gc = (0x11<<0), /* Analog Comparator A Channel 1 */ EVSYS_CHMUX_ACA_WIN_gc = (0x12<<0), /* Analog Comparator A Window */ EVSYS_CHMUX_ADCA_CH0_gc = (0x20<<0), /* ADC A Channel 0 */ EVSYS_CHMUX_PORTA_PIN0_gc = (0x50<<0), /* Port A, Pin0 */ EVSYS_CHMUX_PORTA_PIN1_gc = (0x51<<0), /* Port A, Pin1 */ EVSYS_CHMUX_PORTA_PIN2_gc = (0x52<<0), /* Port A, Pin2 */ EVSYS_CHMUX_PORTA_PIN3_gc = (0x53<<0), /* Port A, Pin3 */ EVSYS_CHMUX_PORTA_PIN4_gc = (0x54<<0), /* Port A, Pin4 */ EVSYS_CHMUX_PORTA_PIN5_gc = (0x55<<0), /* Port A, Pin5 */ EVSYS_CHMUX_PORTA_PIN6_gc = (0x56<<0), /* Port A, Pin6 */ EVSYS_CHMUX_PORTA_PIN7_gc = (0x57<<0), /* Port A, Pin7 */ EVSYS_CHMUX_PORTC_PIN0_gc = (0x60<<0), /* Port C, Pin0 */ EVSYS_CHMUX_PORTC_PIN1_gc = (0x61<<0), /* Port C, Pin1 */ EVSYS_CHMUX_PORTC_PIN2_gc = (0x62<<0), /* Port C, Pin2 */ EVSYS_CHMUX_PORTC_PIN3_gc = (0x63<<0), /* Port C, Pin3 */ EVSYS_CHMUX_PORTC_PIN4_gc = (0x64<<0), /* Port C, Pin4 */ EVSYS_CHMUX_PORTC_PIN5_gc = (0x65<<0), /* Port C, Pin5 */ EVSYS_CHMUX_PORTC_PIN6_gc = (0x66<<0), /* Port C, Pin6 */ EVSYS_CHMUX_PORTC_PIN7_gc = (0x67<<0), /* Port C, Pin7 */ EVSYS_CHMUX_PORTD_PIN0_gc = (0x68<<0), /* Port D, Pin0 */ EVSYS_CHMUX_PORTD_PIN1_gc = (0x69<<0), /* Port D, Pin1 */ EVSYS_CHMUX_PORTD_PIN2_gc = (0x6A<<0), /* Port D, Pin2 */ EVSYS_CHMUX_PORTD_PIN3_gc = (0x6B<<0), /* Port D, Pin3 */ EVSYS_CHMUX_PORTD_PIN4_gc = (0x6C<<0), /* Port D, Pin4 */ EVSYS_CHMUX_PORTD_PIN5_gc = (0x6D<<0), /* Port D, Pin5 */ EVSYS_CHMUX_PORTD_PIN6_gc = (0x6E<<0), /* Port D, Pin6 */ EVSYS_CHMUX_PORTD_PIN7_gc = (0x6F<<0), /* Port D, Pin7 */ EVSYS_CHMUX_PRESCALER_1_gc = (0x80<<0), /* Prescaler, divide by 1 */ EVSYS_CHMUX_PRESCALER_2_gc = (0x81<<0), /* Prescaler, divide by 2 */ EVSYS_CHMUX_PRESCALER_4_gc = (0x82<<0), /* Prescaler, divide by 4 */ EVSYS_CHMUX_PRESCALER_8_gc = (0x83<<0), /* Prescaler, divide by 8 */ EVSYS_CHMUX_PRESCALER_16_gc = (0x84<<0), /* Prescaler, divide by 16 */ EVSYS_CHMUX_PRESCALER_32_gc = (0x85<<0), /* Prescaler, divide by 32 */ EVSYS_CHMUX_PRESCALER_64_gc = (0x86<<0), /* Prescaler, divide by 64 */ EVSYS_CHMUX_PRESCALER_128_gc = (0x87<<0), /* Prescaler, divide by 128 */ EVSYS_CHMUX_PRESCALER_256_gc = (0x88<<0), /* Prescaler, divide by 256 */ EVSYS_CHMUX_PRESCALER_512_gc = (0x89<<0), /* Prescaler, divide by 512 */ EVSYS_CHMUX_PRESCALER_1024_gc = (0x8A<<0), /* Prescaler, divide by 1024 */ EVSYS_CHMUX_PRESCALER_2048_gc = (0x8B<<0), /* Prescaler, divide by 2048 */ EVSYS_CHMUX_PRESCALER_4096_gc = (0x8C<<0), /* Prescaler, divide by 4096 */ EVSYS_CHMUX_PRESCALER_8192_gc = (0x8D<<0), /* Prescaler, divide by 8192 */ EVSYS_CHMUX_PRESCALER_16384_gc = (0x8E<<0), /* Prescaler, divide by 16384 */ EVSYS_CHMUX_PRESCALER_32768_gc = (0x8F<<0), /* Prescaler, divide by 32768 */ EVSYS_CHMUX_XCL_UNF0_gc = (0xB0<<0), /* XCL BTC0 underflow */ EVSYS_CHMUX_XCL_UNF1_gc = (0xB1<<0), /* XCL BTC1 underflow */ EVSYS_CHMUX_XCL_CC0_gc = (0xB2<<0), /* XCL BTC0 capture or compare */ EVSYS_CHMUX_XCL_CC1_gc = (0xB3<<0), /* XCL BTC0 capture or compare */ EVSYS_CHMUX_XCL_PEC0_gc = (0xB4<<0), /* XCL PEC0 restart */ EVSYS_CHMUX_XCL_PEC1_gc = (0xB5<<0), /* XCL PEC1 restart */ EVSYS_CHMUX_XCL_LUT0_gc = (0xB6<<0), /* XCL LUT0 output */ EVSYS_CHMUX_XCL_LUT1_gc = (0xB7<<0), /* XCL LUT1 output */ EVSYS_CHMUX_TCC4_OVF_gc = (0xC0<<0), /* Timer/Counter C4 Overflow */ EVSYS_CHMUX_TCC4_ERR_gc = (0xC1<<0), /* Timer/Counter C4 Error */ EVSYS_CHMUX_TCC4_CCA_gc = (0xC4<<0), /* Timer/Counter C4 Compare or Capture A */ EVSYS_CHMUX_TCC4_CCB_gc = (0xC5<<0), /* Timer/Counter C4 Compare or Capture B */ EVSYS_CHMUX_TCC4_CCC_gc = (0xC6<<0), /* Timer/Counter C4 Compare or Capture C */ EVSYS_CHMUX_TCC4_CCD_gc = (0xC7<<0), /* Timer/Counter C4 Compare or Capture D */ EVSYS_CHMUX_TCC5_OVF_gc = (0xC8<<0), /* Timer/Counter C5 Overflow */ EVSYS_CHMUX_TCC5_ERR_gc = (0xC9<<0), /* Timer/Counter C5 Error */ EVSYS_CHMUX_TCC5_CCA_gc = (0xCC<<0), /* Timer/Counter C5 Compare or Capture A */ EVSYS_CHMUX_TCC5_CCB_gc = (0xCD<<0), /* Timer/Counter C5 Compare or Capture B */ EVSYS_CHMUX_TCD5_OVF_gc = (0xD8<<0), /* Timer/Counter D5 Overflow */ EVSYS_CHMUX_TCD5_ERR_gc = (0xD9<<0), /* Timer/Counter D5 Error */ EVSYS_CHMUX_TCD5_CCA_gc = (0xDC<<0), /* Timer/Counter D5 Compare or Capture A */ EVSYS_CHMUX_TCD5_CCB_gc = (0xDD<<0), /* Timer/Counter D5 Compare or Capture B */ } EVSYS_CHMUX_t; /* Quadrature Decoder Index Recognition Mode */ typedef enum EVSYS_QDIRM_enum { EVSYS_QDIRM_00_gc = (0x00<<5), /* QDPH0 = 0, QDPH90 = 0 */ EVSYS_QDIRM_01_gc = (0x01<<5), /* QDPH0 = 0, QDPH90 = 1 */ EVSYS_QDIRM_10_gc = (0x02<<5), /* QDPH0 = 1, QDPH90 = 0 */ EVSYS_QDIRM_11_gc = (0x03<<5), /* QDPH0 = 1, QDPH90 = 1 */ } EVSYS_QDIRM_t; /* Digital filter coefficient */ typedef enum EVSYS_DIGFILT_enum { EVSYS_DIGFILT_1SAMPLE_gc = (0x00<<0), /* 1 SAMPLE */ EVSYS_DIGFILT_2SAMPLES_gc = (0x01<<0), /* 2 SAMPLES */ EVSYS_DIGFILT_3SAMPLES_gc = (0x02<<0), /* 3 SAMPLES */ EVSYS_DIGFILT_4SAMPLES_gc = (0x03<<0), /* 4 SAMPLES */ EVSYS_DIGFILT_5SAMPLES_gc = (0x04<<0), /* 5 SAMPLES */ EVSYS_DIGFILT_6SAMPLES_gc = (0x05<<0), /* 6 SAMPLES */ EVSYS_DIGFILT_7SAMPLES_gc = (0x06<<0), /* 7 SAMPLES */ EVSYS_DIGFILT_8SAMPLES_gc = (0x07<<0), /* 8 SAMPLES */ } EVSYS_DIGFILT_t; /* Prescaler Filter */ typedef enum EVSYS_PRESCFILT_enum { EVSYS_PRESCFILT_CH04_gc = (0x01<<4), /* Enable prescaler filter for either channel 0 or 4 */ EVSYS_PRESCFILT_CH15_gc = (0x02<<4), /* Enable prescaler filter for either channel 1 or 5 */ EVSYS_PRESCFILT_CH26_gc = (0x04<<4), /* Enable prescaler filter for either channel 2 or 6 */ EVSYS_PRESCFILT_CH37_gc = (0x08<<4), /* Enable prescaler filter for either channel 3 or 7 */ } EVSYS_PRESCFILT_t; /* Prescaler */ typedef enum EVSYS_PRESCALER_enum { EVSYS_PRESCALER_CLKPER_8_gc = (0x00<<0), /* CLKPER, divide by 8 */ EVSYS_PRESCALER_CLKPER_64_gc = (0x01<<0), /* CLKPER, divide by 64 */ EVSYS_PRESCALER_CLKPER_512_gc = (0x02<<0), /* CLKPER, divide by 512 */ EVSYS_PRESCALER_CLKPER_4096_gc = (0x03<<0), /* CLKPER, divide by 4096 */ EVSYS_PRESCALER_CLKPER_32768_gc = (0x04<<0), /* CLKPER, divide by 32768 */ } EVSYS_PRESCALER_t; /* -------------------------------------------------------------------------- NVM - Non Volatile Memory Controller -------------------------------------------------------------------------- */ /* Non-volatile Memory Controller */ typedef struct NVM_struct { register8_t ADDR0; /* Address Register 0 */ register8_t ADDR1; /* Address Register 1 */ register8_t ADDR2; /* Address Register 2 */ register8_t reserved_0x03; register8_t DATA0; /* Data Register 0 */ register8_t DATA1; /* Data Register 1 */ register8_t DATA2; /* Data Register 2 */ register8_t reserved_0x07; register8_t reserved_0x08; register8_t reserved_0x09; register8_t CMD; /* Command */ register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t INTCTRL; /* Interrupt Control */ register8_t reserved_0x0E; register8_t STATUS; /* Status */ register8_t LOCKBITS; /* Lock Bits */ } NVM_t; /* NVM Command */ typedef enum NVM_CMD_enum { NVM_CMD_NO_OPERATION_gc = (0x00<<0), /* Noop/Ordinary LPM */ NVM_CMD_READ_USER_SIG_ROW_gc = (0x01<<0), /* Read user signature row */ NVM_CMD_READ_CALIB_ROW_gc = (0x02<<0), /* Read calibration row */ NVM_CMD_READ_FUSES_gc = (0x07<<0), /* Read fuse byte */ NVM_CMD_WRITE_LOCK_BITS_gc = (0x08<<0), /* Write lock bits */ NVM_CMD_ERASE_USER_SIG_ROW_gc = (0x18<<0), /* Erase user signature row */ NVM_CMD_WRITE_USER_SIG_ROW_gc = (0x1A<<0), /* Write user signature row */ NVM_CMD_ERASE_APP_gc = (0x20<<0), /* Erase Application Section */ NVM_CMD_ERASE_APP_PAGE_gc = (0x22<<0), /* Erase Application Section page */ NVM_CMD_LOAD_FLASH_BUFFER_gc = (0x23<<0), /* Load Flash page buffer */ NVM_CMD_WRITE_APP_PAGE_gc = (0x24<<0), /* Write Application Section page */ NVM_CMD_ERASE_WRITE_APP_PAGE_gc = (0x25<<0), /* Erase-and-write Application Section page */ NVM_CMD_ERASE_FLASH_BUFFER_gc = (0x26<<0), /* Erase/flush Flash page buffer */ NVM_CMD_ERASE_BOOT_PAGE_gc = (0x2A<<0), /* Erase Boot Section page */ NVM_CMD_ERASE_FLASH_PAGE_gc = (0x2B<<0), /* Erase Flash Page */ NVM_CMD_WRITE_BOOT_PAGE_gc = (0x2C<<0), /* Write Boot Section page */ NVM_CMD_ERASE_WRITE_BOOT_PAGE_gc = (0x2D<<0), /* Erase-and-write Boot Section page */ NVM_CMD_WRITE_FLASH_PAGE_gc = (0x2E<<0), /* Write Flash Page */ NVM_CMD_ERASE_WRITE_FLASH_PAGE_gc = (0x2F<<0), /* Erase-and-write Flash Page */ NVM_CMD_ERASE_EEPROM_gc = (0x30<<0), /* Erase EEPROM */ NVM_CMD_ERASE_EEPROM_PAGE_gc = (0x32<<0), /* Erase EEPROM page */ NVM_CMD_WRITE_EEPROM_PAGE_gc = (0x34<<0), /* Write EEPROM page */ NVM_CMD_ERASE_WRITE_EEPROM_PAGE_gc = (0x35<<0), /* Erase-and-write EEPROM page */ NVM_CMD_ERASE_EEPROM_BUFFER_gc = (0x36<<0), /* Erase/flush EEPROM page buffer */ NVM_CMD_APP_CRC_gc = (0x38<<0), /* Application section CRC */ NVM_CMD_BOOT_CRC_gc = (0x39<<0), /* Boot Section CRC */ NVM_CMD_FLASH_RANGE_CRC_gc = (0x3A<<0), /* Flash Range CRC */ NVM_CMD_CHIP_ERASE_gc = (0x40<<0), /* Erase Chip */ NVM_CMD_READ_NVM_gc = (0x43<<0), /* Read NVM */ NVM_CMD_WRITE_FUSE_gc = (0x4C<<0), /* Write Fuse byte */ NVM_CMD_ERASE_BOOT_gc = (0x68<<0), /* Erase Boot Section */ NVM_CMD_FLASH_CRC_gc = (0x78<<0), /* Flash CRC */ } NVM_CMD_t; /* SPM ready interrupt level */ typedef enum NVM_SPMLVL_enum { NVM_SPMLVL_OFF_gc = (0x00<<2), /* Interrupt disabled */ NVM_SPMLVL_LO_gc = (0x01<<2), /* Low level */ NVM_SPMLVL_MED_gc = (0x02<<2), /* Medium level */ NVM_SPMLVL_HI_gc = (0x03<<2), /* High level */ } NVM_SPMLVL_t; /* EEPROM ready interrupt level */ typedef enum NVM_EELVL_enum { NVM_EELVL_OFF_gc = (0x00<<0), /* Interrupt disabled */ NVM_EELVL_LO_gc = (0x01<<0), /* Low level */ NVM_EELVL_MED_gc = (0x02<<0), /* Medium level */ NVM_EELVL_HI_gc = (0x03<<0), /* High level */ } NVM_EELVL_t; /* Boot lock bits - boot setcion */ typedef enum NVM_BLBB_enum { NVM_BLBB_RWLOCK_gc = (0x00<<6), /* Read and write not allowed */ NVM_BLBB_RLOCK_gc = (0x01<<6), /* Read not allowed */ NVM_BLBB_WLOCK_gc = (0x02<<6), /* Write not allowed */ NVM_BLBB_NOLOCK_gc = (0x03<<6), /* No locks */ } NVM_BLBB_t; /* Boot lock bits - application section */ typedef enum NVM_BLBA_enum { NVM_BLBA_RWLOCK_gc = (0x00<<4), /* Read and write not allowed */ NVM_BLBA_RLOCK_gc = (0x01<<4), /* Read not allowed */ NVM_BLBA_WLOCK_gc = (0x02<<4), /* Write not allowed */ NVM_BLBA_NOLOCK_gc = (0x03<<4), /* No locks */ } NVM_BLBA_t; /* Boot lock bits - application table section */ typedef enum NVM_BLBAT_enum { NVM_BLBAT_RWLOCK_gc = (0x00<<2), /* Read and write not allowed */ NVM_BLBAT_RLOCK_gc = (0x01<<2), /* Read not allowed */ NVM_BLBAT_WLOCK_gc = (0x02<<2), /* Write not allowed */ NVM_BLBAT_NOLOCK_gc = (0x03<<2), /* No locks */ } NVM_BLBAT_t; /* Lock bits */ typedef enum NVM_LB_enum { NVM_LB_RWLOCK_gc = (0x00<<0), /* Read and write not allowed */ NVM_LB_WLOCK_gc = (0x02<<0), /* Write not allowed */ NVM_LB_NOLOCK_gc = (0x03<<0), /* No locks */ } NVM_LB_t; /* -------------------------------------------------------------------------- ADC - Analog/Digital Converter -------------------------------------------------------------------------- */ /* ADC Channel */ typedef struct ADC_CH_struct { register8_t CTRL; /* Control Register */ register8_t MUXCTRL; /* MUX Control */ register8_t INTCTRL; /* Channel Interrupt Control Register */ register8_t INTFLAGS; /* Interrupt Flags */ _WORDREGISTER(RES); /* Channel Result */ register8_t SCAN; /* Input Channel Scan */ register8_t CORRCTRL; /* Correction Control Register */ register8_t OFFSETCORR0; /* Offset Correction Register 0 */ register8_t OFFSETCORR1; /* Offset Correction Register 1 */ register8_t GAINCORR0; /* Gain Correction Register 0 */ register8_t GAINCORR1; /* Gain Correction Register 1 */ register8_t AVGCTRL; /* Average Control Register */ register8_t reserved_0x0D; register8_t reserved_0x0E; register8_t reserved_0x0F; } ADC_CH_t; /* Analog-to-Digital Converter */ typedef struct ADC_struct { register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t REFCTRL; /* Reference Control */ register8_t EVCTRL; /* Event Control */ register8_t PRESCALER; /* Clock Prescaler */ register8_t reserved_0x05; register8_t INTFLAGS; /* Interrupt Flags */ register8_t TEMP; /* Temporary Register */ register8_t SAMPCTRL; /* ADC Sampling Time Control Register */ register8_t reserved_0x09; register8_t reserved_0x0A; register8_t reserved_0x0B; _WORDREGISTER(CAL); /* Calibration Value */ register8_t reserved_0x0E; register8_t reserved_0x0F; _WORDREGISTER(CH0RES); /* Channel 0 Result */ register8_t reserved_0x12; register8_t reserved_0x13; register8_t reserved_0x14; register8_t reserved_0x15; register8_t reserved_0x16; register8_t reserved_0x17; _WORDREGISTER(CMP); /* Compare Value */ register8_t reserved_0x1A; register8_t reserved_0x1B; register8_t reserved_0x1C; register8_t reserved_0x1D; register8_t reserved_0x1E; register8_t reserved_0x1F; ADC_CH_t CH0; /* ADC Channel 0 */ } ADC_t; /* Current Limitation */ typedef enum ADC_CURRLIMIT_enum { ADC_CURRLIMIT_NO_gc = (0x00<<5), /* No current limit, 300ksps max sampling rate */ ADC_CURRLIMIT_LOW_gc = (0x01<<5), /* Low current limit, 250ksps max sampling rate */ ADC_CURRLIMIT_MED_gc = (0x02<<5), /* Medium current limit, 150ksps max sampling rate */ ADC_CURRLIMIT_HIGH_gc = (0x03<<5), /* High current limit, 50ksps max sampling rate */ } ADC_CURRLIMIT_t; /* Conversion result resolution */ typedef enum ADC_RESOLUTION_enum { ADC_RESOLUTION_12BIT_gc = (0x00<<1), /* 12-bit right-adjusted result */ ADC_RESOLUTION_MT12BIT_gc = (0x01<<1), /* More than 12-bit (oversapling) right-adjusted result */ ADC_RESOLUTION_8BIT_gc = (0x02<<1), /* 8-bit right-adjusted result */ ADC_RESOLUTION_LEFT12BIT_gc = (0x03<<1), /* 12-bit left-adjusted result */ } ADC_RESOLUTION_t; /* Voltage reference selection */ typedef enum ADC_REFSEL_enum { ADC_REFSEL_INT1V_gc = (0x00<<4), /* Internal 1V */ ADC_REFSEL_INTVCC_gc = (0x01<<4), /* Internal VCC / 1.6 */ ADC_REFSEL_AREFA_gc = (0x02<<4), /* External reference on PORT A */ ADC_REFSEL_AREFD_gc = (0x03<<4), /* External reference on PORT D */ ADC_REFSEL_INTVCC2_gc = (0x04<<4), /* Internal VCC / 2 */ } ADC_REFSEL_t; /* Event channel input selection */ typedef enum ADC_EVSEL_enum { ADC_EVSEL_0_gc = (0x00<<3), /* Event Channel 0 */ ADC_EVSEL_1_gc = (0x01<<3), /* Event Channel 1 */ ADC_EVSEL_2_gc = (0x02<<3), /* Event Channel 2 */ ADC_EVSEL_3_gc = (0x03<<3), /* Event Channel 3 */ ADC_EVSEL_4_gc = (0x04<<3), /* Event Channel 4 */ ADC_EVSEL_5_gc = (0x05<<3), /* Event Channel 5 */ ADC_EVSEL_6_gc = (0x06<<3), /* Event Channel 6 */ ADC_EVSEL_7_gc = (0x07<<3), /* Event Channel 7 */ } ADC_EVSEL_t; /* Event action selection */ typedef enum ADC_EVACT_enum { ADC_EVACT_NONE_gc = (0x00<<0), /* No event action */ ADC_EVACT_CH0_gc = (0x01<<0), /* First event triggers channel conversion */ ADC_EVACT_SYNCSWEEP_gc = (0x06<<0), /* The ADC is flushed and restarted for accurate timing */ } ADC_EVACT_t; /* Clock prescaler */ typedef enum ADC_PRESCALER_enum { ADC_PRESCALER_DIV4_gc = (0x00<<0), /* Divide clock by 4 */ ADC_PRESCALER_DIV8_gc = (0x01<<0), /* Divide clock by 8 */ ADC_PRESCALER_DIV16_gc = (0x02<<0), /* Divide clock by 16 */ ADC_PRESCALER_DIV32_gc = (0x03<<0), /* Divide clock by 32 */ ADC_PRESCALER_DIV64_gc = (0x04<<0), /* Divide clock by 64 */ ADC_PRESCALER_DIV128_gc = (0x05<<0), /* Divide clock by 128 */ ADC_PRESCALER_DIV256_gc = (0x06<<0), /* Divide clock by 256 */ ADC_PRESCALER_DIV512_gc = (0x07<<0), /* Divide clock by 512 */ } ADC_PRESCALER_t; /* Gain factor */ typedef enum ADC_CH_GAIN_enum { ADC_CH_GAIN_1X_gc = (0x00<<2), /* 1x gain */ ADC_CH_GAIN_2X_gc = (0x01<<2), /* 2x gain */ ADC_CH_GAIN_4X_gc = (0x02<<2), /* 4x gain */ ADC_CH_GAIN_8X_gc = (0x03<<2), /* 8x gain */ ADC_CH_GAIN_16X_gc = (0x04<<2), /* 16x gain */ ADC_CH_GAIN_32X_gc = (0x05<<2), /* 32x gain */ ADC_CH_GAIN_64X_gc = (0x06<<2), /* 64x gain */ ADC_CH_GAIN_DIV2_gc = (0x07<<2), /* x/2 gain */ } ADC_CH_GAIN_t; /* Input mode */ typedef enum ADC_CH_INPUTMODE_enum { ADC_CH_INPUTMODE_INTERNAL_gc = (0x00<<0), /* Internal inputs, no gain */ ADC_CH_INPUTMODE_SINGLEENDED_gc = (0x01<<0), /* Single-ended input, no gain */ ADC_CH_INPUTMODE_DIFFWGAINL_gc = (0x02<<0), /* Differential input, gain with 4 LSB pins selection */ ADC_CH_INPUTMODE_DIFFWGAINH_gc = (0x03<<0), /* Differential input, gain with 4 MSB pins selection */ } ADC_CH_INPUTMODE_t; /* Positive input multiplexer selection */ typedef enum ADC_CH_MUXPOS_enum { ADC_CH_MUXPOS_PIN0_gc = (0x00<<3), /* Input pin 0 */ ADC_CH_MUXPOS_PIN1_gc = (0x01<<3), /* Input pin 1 */ ADC_CH_MUXPOS_PIN2_gc = (0x02<<3), /* Input pin 2 */ ADC_CH_MUXPOS_PIN3_gc = (0x03<<3), /* Input pin 3 */ ADC_CH_MUXPOS_PIN4_gc = (0x04<<3), /* Input pin 4 */ ADC_CH_MUXPOS_PIN5_gc = (0x05<<3), /* Input pin 5 */ ADC_CH_MUXPOS_PIN6_gc = (0x06<<3), /* Input pin 6 */ ADC_CH_MUXPOS_PIN7_gc = (0x07<<3), /* Input pin 7 */ ADC_CH_MUXPOS_PIN8_gc = (0x08<<3), /* Input pin 8 */ ADC_CH_MUXPOS_PIN9_gc = (0x09<<3), /* Input pin 9 */ ADC_CH_MUXPOS_PIN10_gc = (0x0A<<3), /* Input pin 10 */ ADC_CH_MUXPOS_PIN11_gc = (0x0B<<3), /* Input pin 11 */ ADC_CH_MUXPOS_PIN12_gc = (0x0C<<3), /* Input pin 12 */ ADC_CH_MUXPOS_PIN13_gc = (0x0D<<3), /* Input pin 13 */ ADC_CH_MUXPOS_PIN14_gc = (0x0E<<3), /* Input pin 14 */ ADC_CH_MUXPOS_PIN15_gc = (0x0F<<3), /* Input pin 15 */ } ADC_CH_MUXPOS_t; /* Internal input multiplexer selections */ typedef enum ADC_CH_MUXINT_enum { ADC_CH_MUXINT_TEMP_gc = (0x00<<3), /* Temperature Reference */ ADC_CH_MUXINT_BANDGAP_gc = (0x01<<3), /* Bandgap Reference */ ADC_CH_MUXINT_SCALEDVCC_gc = (0x02<<3), /* 1/10 Scaled VCC */ ADC_CH_MUXINT_DAC_gc = (0x03<<3), /* DAC Output */ } ADC_CH_MUXINT_t; /* Negative input multiplexer selection when gain on 4 LSB pins */ typedef enum ADC_CH_MUXNEGL_enum { ADC_CH_MUXNEGL_PIN0_gc = (0x00<<0), /* Input pin 0 */ ADC_CH_MUXNEGL_PIN1_gc = (0x01<<0), /* Input pin 1 */ ADC_CH_MUXNEGL_PIN2_gc = (0x02<<0), /* Input pin 2 */ ADC_CH_MUXNEGL_PIN3_gc = (0x03<<0), /* Input pin 3 */ ADC_CH_MUXNEGL_GND_gc = (0x05<<0), /* PAD ground */ ADC_CH_MUXNEGL_INTGND_gc = (0x07<<0), /* Internal ground */ } ADC_CH_MUXNEGL_t; /* Negative input multiplexer selection when gain on 4 MSB pins */ typedef enum ADC_CH_MUXNEGH_enum { ADC_CH_MUXNEGH_PIN4_gc = (0x00<<0), /* Input pin 4 */ ADC_CH_MUXNEGH_PIN5_gc = (0x01<<0), /* Input pin 5 */ ADC_CH_MUXNEGH_PIN6_gc = (0x02<<0), /* Input pin 6 */ ADC_CH_MUXNEGH_PIN7_gc = (0x03<<0), /* Input pin 7 */ ADC_CH_MUXNEGH_GND_gc = (0x05<<0), /* PAD ground */ } ADC_CH_MUXNEGH_t; /* Negative input multiplexer selection */ typedef enum ADC_CH_MUXNEG_enum { ADC_CH_MUXNEG_PIN0_gc = (0x00<<0), /* Input pin 0 */ } ADC_CH_MUXNEG_t; /* Interupt mode */ typedef enum ADC_CH_INTMODE_enum { ADC_CH_INTMODE_COMPLETE_gc = (0x00<<2), /* Interrupt on conversion complete */ ADC_CH_INTMODE_BELOW_gc = (0x01<<2), /* Interrupt on result below compare value */ ADC_CH_INTMODE_ABOVE_gc = (0x03<<2), /* Interrupt on result above compare value */ } ADC_CH_INTMODE_t; /* Interrupt level */ typedef enum ADC_CH_INTLVL_enum { ADC_CH_INTLVL_OFF_gc = (0x00<<0), /* Interrupt disabled */ ADC_CH_INTLVL_LO_gc = (0x01<<0), /* Low level */ ADC_CH_INTLVL_MED_gc = (0x02<<0), /* Medium level */ ADC_CH_INTLVL_HI_gc = (0x03<<0), /* High level */ } ADC_CH_INTLVL_t; /* Averaged Number of Samples */ typedef enum ADC_SAMPNUM_enum { ADC_SAMPNUM_1X_gc = (0x00<<0), /* 1 Sample */ ADC_SAMPNUM_2X_gc = (0x01<<0), /* 2 Samples */ ADC_SAMPNUM_4X_gc = (0x02<<0), /* 4 Samples */ ADC_SAMPNUM_8X_gc = (0x03<<0), /* 8 Samples */ ADC_SAMPNUM_16X_gc = (0x04<<0), /* 16 Samples */ ADC_SAMPNUM_32X_gc = (0x05<<0), /* 32 Samples */ ADC_SAMPNUM_64X_gc = (0x06<<0), /* 64 Samples */ ADC_SAMPNUM_128X_gc = (0x07<<0), /* 128 Samples */ ADC_SAMPNUM_256X_gc = (0x08<<0), /* 256 Samples */ ADC_SAMPNUM_512X_gc = (0x09<<0), /* 512 Samples */ ADC_SAMPNUM_1024X_gc = (0x0A<<0), /* 1024 Samples */ } ADC_SAMPNUM_t; /* -------------------------------------------------------------------------- DAC - Digital/Analog Converter -------------------------------------------------------------------------- */ /* Digital-to-Analog Converter */ typedef struct DAC_struct { register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t CTRLC; /* Control Register C */ register8_t EVCTRL; /* Event Input Control */ register8_t reserved_0x04; register8_t STATUS; /* Status */ register8_t reserved_0x06; register8_t reserved_0x07; register8_t CH0GAINCAL; /* Gain Calibration */ register8_t CH0OFFSETCAL; /* Offset Calibration */ register8_t CH1GAINCAL; /* Gain Calibration */ register8_t CH1OFFSETCAL; /* Offset Calibration */ register8_t reserved_0x0C; register8_t reserved_0x0D; register8_t reserved_0x0E; register8_t reserved_0x0F; register8_t reserved_0x10; register8_t reserved_0x11; register8_t reserved_0x12; register8_t reserved_0x13; register8_t reserved_0x14; register8_t reserved_0x15; register8_t reserved_0x16; register8_t reserved_0x17; _WORDREGISTER(CH0DATA); /* Channel 0 Data */ _WORDREGISTER(CH1DATA); /* Channel 1 Data */ } DAC_t; /* Output channel selection */ typedef enum DAC_CHSEL_enum { DAC_CHSEL_SINGLE_gc = (0x00<<5), /* Single channel operation (Channel 0 only) */ DAC_CHSEL_SINGLE1_gc = (0x01<<5), /* Single channel operation (Channel 1 only) */ DAC_CHSEL_DUAL_gc = (0x02<<5), /* Dual channel operation (Channel 0 and channel 1) */ } DAC_CHSEL_t; /* Reference voltage selection */ typedef enum DAC_REFSEL_enum { DAC_REFSEL_INT1V_gc = (0x00<<3), /* Internal 1V */ DAC_REFSEL_AVCC_gc = (0x01<<3), /* Analog supply voltage */ DAC_REFSEL_AREFA_gc = (0x02<<3), /* External reference on AREF on PORTA */ DAC_REFSEL_AREFB_gc = (0x03<<3), /* External reference on AREF on PORTB */ } DAC_REFSEL_t; /* Event channel selection */ typedef enum DAC_EVSEL_enum { DAC_EVSEL_0_gc = (0x00<<0), /* Event Channel 0 */ DAC_EVSEL_1_gc = (0x01<<0), /* Event Channel 1 */ DAC_EVSEL_2_gc = (0x02<<0), /* Event Channel 2 */ DAC_EVSEL_3_gc = (0x03<<0), /* Event Channel 3 */ DAC_EVSEL_4_gc = (0x04<<0), /* Event Channel 4 */ DAC_EVSEL_5_gc = (0x05<<0), /* Event Channel 5 */ DAC_EVSEL_6_gc = (0x06<<0), /* Event Channel 6 */ DAC_EVSEL_7_gc = (0x07<<0), /* Event Channel 7 */ } DAC_EVSEL_t; /* -------------------------------------------------------------------------- AC - Analog Comparator -------------------------------------------------------------------------- */ /* Analog Comparator */ typedef struct AC_struct { register8_t AC0CTRL; /* Analog Comparator 0 Control */ register8_t AC1CTRL; /* Analog Comparator 1 Control */ register8_t AC0MUXCTRL; /* Analog Comparator 0 MUX Control */ register8_t AC1MUXCTRL; /* Analog Comparator 1 MUX Control */ register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t WINCTRL; /* Window Mode Control */ register8_t STATUS; /* Status */ register8_t CURRCTRL; /* Current Source Control Register */ register8_t CURRCALIB; /* Current Source Calibration Register */ } AC_t; /* Interrupt mode */ typedef enum AC_INTMODE_enum { AC_INTMODE_BOTHEDGES_gc = (0x00<<6), /* Interrupt on both edges */ AC_INTMODE_FALLING_gc = (0x02<<6), /* Interrupt on falling edge */ AC_INTMODE_RISING_gc = (0x03<<6), /* Interrupt on rising edge */ } AC_INTMODE_t; /* Interrupt level */ typedef enum AC_INTLVL_enum { AC_INTLVL_OFF_gc = (0x00<<4), /* Interrupt disabled */ AC_INTLVL_LO_gc = (0x01<<4), /* Low level */ AC_INTLVL_MED_gc = (0x02<<4), /* Medium level */ AC_INTLVL_HI_gc = (0x03<<4), /* High level */ } AC_INTLVL_t; /* Hysteresis mode selection */ typedef enum AC_HYSMODE_enum { AC_HYSMODE_NO_gc = (0x00<<1), /* No hysteresis */ AC_HYSMODE_SMALL_gc = (0x01<<1), /* Small hysteresis */ AC_HYSMODE_LARGE_gc = (0x02<<1), /* Large hysteresis */ } AC_HYSMODE_t; /* Positive input multiplexer selection */ typedef enum AC_MUXPOS_enum { AC_MUXPOS_PIN0_gc = (0x00<<3), /* Pin 0 */ AC_MUXPOS_PIN1_gc = (0x01<<3), /* Pin 1 */ AC_MUXPOS_PIN2_gc = (0x02<<3), /* Pin 2 */ AC_MUXPOS_PIN3_gc = (0x03<<3), /* Pin 3 */ AC_MUXPOS_PIN4_gc = (0x04<<3), /* Pin 4 */ AC_MUXPOS_PIN5_gc = (0x05<<3), /* Pin 5 */ AC_MUXPOS_PIN6_gc = (0x06<<3), /* Pin 6 */ AC_MUXPOS_DAC_gc = (0x07<<3), /* DAC output */ } AC_MUXPOS_t; /* Negative input multiplexer selection */ typedef enum AC_MUXNEG_enum { AC_MUXNEG_PIN0_gc = (0x00<<0), /* Pin 0 */ AC_MUXNEG_PIN1_gc = (0x01<<0), /* Pin 1 */ AC_MUXNEG_PIN3_gc = (0x02<<0), /* Pin 3 */ AC_MUXNEG_PIN5_gc = (0x03<<0), /* Pin 5 */ AC_MUXNEG_PIN7_gc = (0x04<<0), /* Pin 7 */ AC_MUXNEG_DAC_gc = (0x05<<0), /* DAC output */ AC_MUXNEG_BANDGAP_gc = (0x06<<0), /* Bandgap Reference */ AC_MUXNEG_SCALER_gc = (0x07<<0), /* Internal voltage scaler */ } AC_MUXNEG_t; /* Windows interrupt mode */ typedef enum AC_WINTMODE_enum { AC_WINTMODE_ABOVE_gc = (0x00<<2), /* Interrupt on above window */ AC_WINTMODE_INSIDE_gc = (0x01<<2), /* Interrupt on inside window */ AC_WINTMODE_BELOW_gc = (0x02<<2), /* Interrupt on below window */ AC_WINTMODE_OUTSIDE_gc = (0x03<<2), /* Interrupt on outside window */ } AC_WINTMODE_t; /* Window interrupt level */ typedef enum AC_WINTLVL_enum { AC_WINTLVL_OFF_gc = (0x00<<0), /* Interrupt disabled */ AC_WINTLVL_LO_gc = (0x01<<0), /* Low priority */ AC_WINTLVL_MED_gc = (0x02<<0), /* Medium priority */ AC_WINTLVL_HI_gc = (0x03<<0), /* High priority */ } AC_WINTLVL_t; /* Window mode state */ typedef enum AC_WSTATE_enum { AC_WSTATE_ABOVE_gc = (0x00<<6), /* Signal above window */ AC_WSTATE_INSIDE_gc = (0x01<<6), /* Signal inside window */ AC_WSTATE_BELOW_gc = (0x02<<6), /* Signal below window */ } AC_WSTATE_t; /* -------------------------------------------------------------------------- RTC - Real-Time Clounter -------------------------------------------------------------------------- */ /* Real-Time Counter */ typedef struct RTC_struct { register8_t CTRL; /* Control Register */ register8_t STATUS; /* Status Register */ register8_t INTCTRL; /* Interrupt Control Register */ register8_t INTFLAGS; /* Interrupt Flags */ register8_t TEMP; /* Temporary register */ register8_t reserved_0x05; register8_t CALIB; /* Calibration Register */ register8_t reserved_0x07; _WORDREGISTER(CNT); /* Count Register */ _WORDREGISTER(PER); /* Period Register */ _WORDREGISTER(COMP); /* Compare Register */ } RTC_t; /* Prescaler Factor */ typedef enum RTC_PRESCALER_enum { RTC_PRESCALER_OFF_gc = (0x00<<0), /* RTC Off */ RTC_PRESCALER_DIV1_gc = (0x01<<0), /* RTC Clock */ RTC_PRESCALER_DIV2_gc = (0x02<<0), /* RTC Clock / 2 */ RTC_PRESCALER_DIV8_gc = (0x03<<0), /* RTC Clock / 8 */ RTC_PRESCALER_DIV16_gc = (0x04<<0), /* RTC Clock / 16 */ RTC_PRESCALER_DIV64_gc = (0x05<<0), /* RTC Clock / 64 */ RTC_PRESCALER_DIV256_gc = (0x06<<0), /* RTC Clock / 256 */ RTC_PRESCALER_DIV1024_gc = (0x07<<0), /* RTC Clock / 1024 */ } RTC_PRESCALER_t; /* Compare Interrupt level */ typedef enum RTC_COMPINTLVL_enum { RTC_COMPINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */ RTC_COMPINTLVL_LO_gc = (0x01<<2), /* Low Level */ RTC_COMPINTLVL_MED_gc = (0x02<<2), /* Medium Level */ RTC_COMPINTLVL_HI_gc = (0x03<<2), /* High Level */ } RTC_COMPINTLVL_t; /* Overflow Interrupt level */ typedef enum RTC_OVFINTLVL_enum { RTC_OVFINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */ RTC_OVFINTLVL_LO_gc = (0x01<<0), /* Low Level */ RTC_OVFINTLVL_MED_gc = (0x02<<0), /* Medium Level */ RTC_OVFINTLVL_HI_gc = (0x03<<0), /* High Level */ } RTC_OVFINTLVL_t; /* -------------------------------------------------------------------------- XCL - XMEGA Custom Logic -------------------------------------------------------------------------- */ /* XMEGA Custom Logic */ typedef struct XCL_struct { register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t CTRLC; /* Control Register C */ register8_t CTRLD; /* Control Register D */ register8_t CTRLE; /* Control Register E */ register8_t CTRLF; /* Control Register F */ register8_t CTRLG; /* Control Register G */ register8_t INTCTRL; /* Interrupt Control Register */ register8_t INTFLAGS; /* Interrupt Flag Register */ register8_t PLC; /* Peripheral Lenght Control Register */ register8_t CNTL; /* Counter Register Low */ register8_t CNTH; /* Counter Register High */ register8_t CMPL; /* Compare Register Low */ register8_t CMPH; /* Compare Register High */ register8_t PERCAPTL; /* Period or Capture Register Low */ register8_t PERCAPTH; /* Period or Capture Register High */ } XCL_t; /* LUT0 Output Enable */ typedef enum XCL_LUTOUTEN_enum { XCL_LUTOUTEN_DISABLE_gc = (0x00<<6), /* LUT0 output disabled */ XCL_LUTOUTEN_PIN0_gc = (0x01<<6), /* LUT0 Output to pin 0 */ XCL_LUTOUTEN_PIN4_gc = (0x02<<6), /* LUT0 Output to pin 4 */ } XCL_LUTOUTEN_t; /* Port Selection */ typedef enum XCL_PORTSEL_enum { XCL_PORTSEL_PC_gc = (0x00<<4), /* Port C for LUT or USARTC0 for PEC */ XCL_PORTSEL_PD_gc = (0x01<<4), /* Port D for LUT or USARTD0 for PEC */ } XCL_PORTSEL_t; /* LUT Configuration */ typedef enum XCL_LUTCONF_enum { XCL_LUTCONF_2LUT2IN_gc = (0x00<<0), /* 2-Input two LUT */ XCL_LUTCONF_2LUT1IN_gc = (0x01<<0), /* Two LUT with duplicated input */ XCL_LUTCONF_2LUT3IN_gc = (0x02<<0), /* Two LUT with one common input */ XCL_LUTCONF_1LUT3IN_gc = (0x03<<0), /* 3-Input LUT */ XCL_LUTCONF_MUX_gc = (0x04<<0), /* One LUT Mux */ XCL_LUTCONF_DLATCH_gc = (0x05<<0), /* One D-Latch LUT */ XCL_LUTCONF_RSLATCH_gc = (0x06<<0), /* One RS-Latch LUT */ XCL_LUTCONF_DFF_gc = (0x07<<0), /* One DFF LUT */ } XCL_LUTCONF_t; /* Input Selection */ typedef enum XCL_INSEL_enum { XCL_INSEL_EVSYS_gc = (0x00<<6), /* Event system selected as source */ XCL_INSEL_XCL_gc = (0x01<<6), /* XCL selected as source */ XCL_INSEL_PINL_gc = (0x02<<6), /* LSB port pin selected as source */ XCL_INSEL_PINH_gc = (0x03<<6), /* MSB port pin selected as source */ } XCL_INSEL_t; /* Delay Configuration on LUT */ typedef enum XCL_DLYCONF_enum { XCL_DLYCONF_DISABLE_gc = (0x00<<2), /* Delay element disabled */ XCL_DLYCONF_IN_gc = (0x01<<2), /* Delay enabled on LUT input */ XCL_DLYCONF_OUT_gc = (0x02<<2), /* Delay enabled on LUT output */ } XCL_DLYCONF_t; /* Delay Selection */ typedef enum XCL_DLYSEL_enum { XCL_DLYSEL_DLY11_gc = (0x00<<4), /* One cycle delay for each LUT1 and LUT0 */ XCL_DLYSEL_DLY12_gc = (0x01<<4), /* One cycle delay for LUT1 and two cycles for LUT0 */ XCL_DLYSEL_DLY21_gc = (0x02<<4), /* Two cycles delay for LUT1 and one cycle for LUT0 */ XCL_DLYSEL_DLY22_gc = (0x03<<4), /* Two cycle delays for each LUT1 and LUT0 */ } XCL_DLYSEL_t; /* Clock Selection */ typedef enum XCL_CLKSEL_enum { XCL_CLKSEL_OFF_gc = (0x00<<0), /* OFF */ XCL_CLKSEL_DIV1_gc = (0x01<<0), /* Prescaler clk */ XCL_CLKSEL_DIV2_gc = (0x02<<0), /* Prescaler clk/2 */ XCL_CLKSEL_DIV4_gc = (0x03<<0), /* Prescaler clk/4 */ XCL_CLKSEL_DIV8_gc = (0x04<<0), /* Prescaler clk/8 */ XCL_CLKSEL_DIV64_gc = (0x05<<0), /* Prescaler clk/64 */ XCL_CLKSEL_DIV256_gc = (0x06<<0), /* Prescaler clk/256 */ XCL_CLKSEL_DIV1024_gc = (0x07<<0), /* Prescaler clk/1024 */ XCL_CLKSEL_EVCH0_gc = (0x08<<0), /* Event channel 0 */ XCL_CLKSEL_EVCH1_gc = (0x09<<0), /* Event channel 1 */ XCL_CLKSEL_EVCH2_gc = (0x0A<<0), /* Event channel 2 */ XCL_CLKSEL_EVCH3_gc = (0x0B<<0), /* Event channel 3 */ XCL_CLKSEL_EVCH4_gc = (0x0C<<0), /* Event channel 4 */ XCL_CLKSEL_EVCH5_gc = (0x0D<<0), /* Event channel 5 */ XCL_CLKSEL_EVCH6_gc = (0x0E<<0), /* Event channel 6 */ XCL_CLKSEL_EVCH7_gc = (0x0F<<0), /* Event channel 7 */ } XCL_CLKSEL_t; /* Timer/Counter Command Selection */ typedef enum XCL_CMDSEL_enum { XCL_CMDSEL_NONE_gc = (0x00<<7), /* None */ XCL_CMDSEL_RESTART_gc = (0x01<<7), /* Force restart */ } XCL_CMDSEL_t; /* Timer/Counter Selection */ typedef enum XCL_TCSEL_enum { XCL_TCSEL_TC16_gc = (0x00<<4), /* 16-bit timer/counter */ XCL_TCSEL_BTC0_gc = (0x01<<4), /* One 8-bit timer/counter */ XCL_TCSEL_BTC01_gc = (0x02<<4), /* Two 8-bit timer/counters */ XCL_TCSEL_BTC0PEC1_gc = (0x03<<4), /* One 8-bit timer/counter and one 8-bit peripheral counter */ XCL_TCSEL_PEC0BTC1_gc = (0x04<<4), /* One 8-bit timer/counter and one 8-bit peripheral counter */ XCL_TCSEL_PEC01_gc = (0x05<<4), /* Two 8-bit peripheral counters */ XCL_TCSEL_BTC0PEC2_gc = (0x06<<4), /* One 8-bit timer/counter and two 4-bit peripheral counters */ } XCL_TCSEL_t; /* Timer/Counter Mode */ typedef enum XCL_TCMODE_enum { XCL_TCMODE_NORMAL_gc = (0x00<<0), /* Normal mode with compare/period */ XCL_TCMODE_CAPT_gc = (0x01<<0), /* Capture mode */ XCL_TCMODE_PWM_gc = (0x02<<0), /* Single Slope PWM */ } XCL_TCMODE_t; /* Compare Output Value Timer */ typedef enum XCL_CMPEN_enum { XCL_CMPEN_CLEAR_gc = (0x00<<5), /* Clear WG Output */ XCL_CMPEN_SET_gc = (0x01<<5), /* Set WG Output */ } XCL_CMPEN_t; /* Command Enable */ typedef enum XCL_CMDEN_enum { XCL_CMDEN_DISABLE_gc = (0x00<<6), /* Command Ignored */ XCL_CMDEN_CMD0_gc = (0x01<<6), /* Command valid for timer/counter 0 */ XCL_CMDEN_CMD1_gc = (0x02<<6), /* Command valid for timer/counter 1 */ XCL_CMDEN_CMD01_gc = (0x03<<6), /* Command valid for both timer/counter 0 and 1 */ } XCL_CMDEN_t; /* Timer/Counter Event Source Selection */ typedef enum XCL_EVSRC_enum { XCL_EVSRC_EVCH0_gc = (0x00<<0), /* Event channel 0 */ XCL_EVSRC_EVCH1_gc = (0x01<<0), /* Event channel 1 */ XCL_EVSRC_EVCH2_gc = (0x02<<0), /* Event channel 2 */ XCL_EVSRC_EVCH3_gc = (0x03<<0), /* Event channel 3 */ XCL_EVSRC_EVCH4_gc = (0x04<<0), /* Event channel 4 */ XCL_EVSRC_EVCH5_gc = (0x05<<0), /* Event channel 5 */ XCL_EVSRC_EVCH6_gc = (0x06<<0), /* Event channel 6 */ XCL_EVSRC_EVCH7_gc = (0x07<<0), /* Event channel 7 */ } XCL_EVSRC_t; /* Timer/Counter Event Action Selection */ typedef enum XCL_EVACT_enum { XCL_EVACT_INPUT_gc = (0x00<<5), /* Input Capture */ XCL_EVACT_FREQ_gc = (0x01<<5), /* Frequency Capture */ XCL_EVACT_PW_gc = (0x02<<5), /* Pulse Width Capture */ XCL_EVACT_RESTART_gc = (0x03<<5), /* Restart timer/counter */ } XCL_EVACT_t; /* Underflow Interrupt level */ typedef enum XCL_UNF_INTLVL_enum { XCL_UNF_INTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */ XCL_UNF_INTLVL_LO_gc = (0x01<<2), /* Low Level */ XCL_UNF_INTLVL_MED_gc = (0x02<<2), /* Medium Level */ XCL_UNF_INTLVL_HI_gc = (0x03<<2), /* High Level */ } XCL_UNF_INTLVL_t; /* Compare/Capture Interrupt level */ typedef enum XCL_CC_INTLVL_enum { XCL_CC_INTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */ XCL_CC_INTLVL_LO_gc = (0x01<<0), /* Low Level */ XCL_CC_INTLVL_MED_gc = (0x02<<0), /* Medium Level */ XCL_CC_INTLVL_HI_gc = (0x03<<0), /* High Level */ } XCL_CC_INTLVL_t; /* -------------------------------------------------------------------------- TWI - Two-Wire Interface -------------------------------------------------------------------------- */ /* */ typedef struct TWI_MASTER_struct { register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t CTRLC; /* Control Register C */ register8_t STATUS; /* Status Register */ register8_t BAUD; /* Baurd Rate Control Register */ register8_t ADDR; /* Address Register */ register8_t DATA; /* Data Register */ } TWI_MASTER_t; /* */ typedef struct TWI_SLAVE_struct { register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t STATUS; /* Status Register */ register8_t ADDR; /* Address Register */ register8_t DATA; /* Data Register */ register8_t ADDRMASK; /* Address Mask Register */ } TWI_SLAVE_t; /* */ typedef struct TWI_TIMEOUT_struct { register8_t TOS; /* Timeout Status Register */ register8_t TOCONF; /* Timeout Configuration Register */ } TWI_TIMEOUT_t; /* Two-Wire Interface */ typedef struct TWI_struct { register8_t CTRL; /* TWI Common Control Register */ TWI_MASTER_t MASTER; /* TWI master module */ TWI_SLAVE_t SLAVE; /* TWI slave module */ TWI_TIMEOUT_t TIMEOUT; /* TWI SMBUS timeout module */ } TWI_t; /* SDA Hold Time */ typedef enum TWI_SDAHOLD_enum { TWI_SDAHOLD_OFF_gc = (0x00<<4), /* SDA Hold Time off */ TWI_SDAHOLD_50NS_gc = (0x01<<4), /* SDA Hold Time 50 ns */ TWI_SDAHOLD_300NS_gc = (0x02<<4), /* SDA Hold Time 300 ns */ TWI_SDAHOLD_400NS_gc = (0x03<<4), /* SDA Hold Time 400 ns */ } TWI_SDAHOLD_t; /* Master Interrupt Level */ typedef enum TWI_MASTER_INTLVL_enum { TWI_MASTER_INTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */ TWI_MASTER_INTLVL_LO_gc = (0x01<<6), /* Low Level */ TWI_MASTER_INTLVL_MED_gc = (0x02<<6), /* Medium Level */ TWI_MASTER_INTLVL_HI_gc = (0x03<<6), /* High Level */ } TWI_MASTER_INTLVL_t; /* Inactive Timeout */ typedef enum TWI_MASTER_TIMEOUT_enum { TWI_MASTER_TIMEOUT_DISABLED_gc = (0x00<<2), /* Bus Timeout Disabled */ TWI_MASTER_TIMEOUT_50US_gc = (0x01<<2), /* 50 Microseconds */ TWI_MASTER_TIMEOUT_100US_gc = (0x02<<2), /* 100 Microseconds */ TWI_MASTER_TIMEOUT_200US_gc = (0x03<<2), /* 200 Microseconds */ } TWI_MASTER_TIMEOUT_t; /* Master Command */ typedef enum TWI_MASTER_CMD_enum { TWI_MASTER_CMD_NOACT_gc = (0x00<<0), /* No Action */ TWI_MASTER_CMD_REPSTART_gc = (0x01<<0), /* Issue Repeated Start Condition */ TWI_MASTER_CMD_RECVTRANS_gc = (0x02<<0), /* Receive or Transmit Data */ TWI_MASTER_CMD_STOP_gc = (0x03<<0), /* Issue Stop Condition */ } TWI_MASTER_CMD_t; /* Master Bus State */ typedef enum TWI_MASTER_BUSSTATE_enum { TWI_MASTER_BUSSTATE_UNKNOWN_gc = (0x00<<0), /* Unknown Bus State */ TWI_MASTER_BUSSTATE_IDLE_gc = (0x01<<0), /* Bus is Idle */ TWI_MASTER_BUSSTATE_OWNER_gc = (0x02<<0), /* This Module Controls The Bus */ TWI_MASTER_BUSSTATE_BUSY_gc = (0x03<<0), /* The Bus is Busy */ } TWI_MASTER_BUSSTATE_t; /* Slave Interrupt Level */ typedef enum TWI_SLAVE_INTLVL_enum { TWI_SLAVE_INTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */ TWI_SLAVE_INTLVL_LO_gc = (0x01<<6), /* Low Level */ TWI_SLAVE_INTLVL_MED_gc = (0x02<<6), /* Medium Level */ TWI_SLAVE_INTLVL_HI_gc = (0x03<<6), /* High Level */ } TWI_SLAVE_INTLVL_t; /* Slave Command */ typedef enum TWI_SLAVE_CMD_enum { TWI_SLAVE_CMD_NOACT_gc = (0x00<<0), /* No Action */ TWI_SLAVE_CMD_COMPTRANS_gc = (0x02<<0), /* Used To Complete a Transaction */ TWI_SLAVE_CMD_RESPONSE_gc = (0x03<<0), /* Used in Response to Address/Data Interrupt */ } TWI_SLAVE_CMD_t; /* Master Timeout */ typedef enum TWI_MASTER_TTIMEOUT_enum { TWI_MASTER_TTIMEOUT_25MS_gc = (0x00<<0), /* 25 Milliseconds */ TWI_MASTER_TTIMEOUT_24MS_gc = (0x01<<0), /* 24 Milliseconds */ TWI_MASTER_TTIMEOUT_23MS_gc = (0x02<<0), /* 23 Milliseconds */ TWI_MASTER_TTIMEOUT_22MS_gc = (0x03<<0), /* 22 Milliseconds */ TWI_MASTER_TTIMEOUT_26MS_gc = (0x04<<0), /* 26 Milliseconds */ TWI_MASTER_TTIMEOUT_27MS_gc = (0x05<<0), /* 27 Milliseconds */ TWI_MASTER_TTIMEOUT_28MS_gc = (0x06<<0), /* 28 Milliseconds */ TWI_MASTER_TTIMEOUT_29MS_gc = (0x07<<0), /* 29 Milliseconds */ } TWI_MASTER_TTIMEOUT_t; /* Slave Ttimeout */ typedef enum TWI_SLAVE_TTIMEOUT_enum { TWI_SLAVE_TTIMEOUT_25MS_gc = (0x00<<5), /* 25 Milliseconds */ TWI_SLAVE_TTIMEOUT_24MS_gc = (0x01<<5), /* 24 Milliseconds */ TWI_SLAVE_TTIMEOUT_23MS_gc = (0x02<<5), /* 23 Milliseconds */ TWI_SLAVE_TTIMEOUT_22MS_gc = (0x03<<5), /* 22 Milliseconds */ TWI_SLAVE_TTIMEOUT_26MS_gc = (0x04<<5), /* 26 Milliseconds */ TWI_SLAVE_TTIMEOUT_27MS_gc = (0x05<<5), /* 27 Milliseconds */ TWI_SLAVE_TTIMEOUT_28MS_gc = (0x06<<5), /* 28 Milliseconds */ TWI_SLAVE_TTIMEOUT_29MS_gc = (0x07<<5), /* 29 Milliseconds */ } TWI_SLAVE_TTIMEOUT_t; /* Master/Slave Extend Timeout */ typedef enum TWI_MASTER_TMSEXT_enum { TWI_MASTER_TMSEXT_10MS25MS_gc = (0x00<<3), /* Tmext 10ms Tsext 25ms */ TWI_MASTER_TMSEXT_9MS24MS_gc = (0x01<<3), /* Tmext 9ms Tsext 24ms */ TWI_MASTER_TMSEXT_11MS26MS_gc = (0x02<<3), /* Tmext 11ms Tsext 26ms */ TWI_MASTER_TMSEXT_12MS27MS_gc = (0x03<<3), /* Tmext 12ms Tsext 27ms */ } TWI_MASTER_TMSEXT_t; /* -------------------------------------------------------------------------- PORT - Port Configuration -------------------------------------------------------------------------- */ /* I/O Ports */ typedef struct PORT_struct { register8_t DIR; /* I/O Port Data Direction */ register8_t DIRSET; /* I/O Port Data Direction Set */ register8_t DIRCLR; /* I/O Port Data Direction Clear */ register8_t DIRTGL; /* I/O Port Data Direction Toggle */ register8_t OUT; /* I/O Port Output */ register8_t OUTSET; /* I/O Port Output Set */ register8_t OUTCLR; /* I/O Port Output Clear */ register8_t OUTTGL; /* I/O Port Output Toggle */ register8_t IN; /* I/O port Input */ register8_t INTCTRL; /* Interrupt Control Register */ register8_t INTMASK; /* Port Interrupt Mask */ register8_t reserved_0x0B; register8_t INTFLAGS; /* Interrupt Flag Register */ register8_t reserved_0x0D; register8_t REMAP; /* Pin Remap Register */ register8_t reserved_0x0F; register8_t PIN0CTRL; /* Pin 0 Control Register */ register8_t PIN1CTRL; /* Pin 1 Control Register */ register8_t PIN2CTRL; /* Pin 2 Control Register */ register8_t PIN3CTRL; /* Pin 3 Control Register */ register8_t PIN4CTRL; /* Pin 4 Control Register */ register8_t PIN5CTRL; /* Pin 5 Control Register */ register8_t PIN6CTRL; /* Pin 6 Control Register */ register8_t PIN7CTRL; /* Pin 7 Control Register */ } PORT_t; /* Port Interrupt Level */ typedef enum PORT_INTLVL_enum { PORT_INTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */ PORT_INTLVL_LO_gc = (0x01<<0), /* Low Level */ PORT_INTLVL_MED_gc = (0x02<<0), /* Medium Level */ PORT_INTLVL_HI_gc = (0x03<<0), /* High Level */ } PORT_INTLVL_t; /* Output/Pull Configuration */ typedef enum PORT_OPC_enum { PORT_OPC_TOTEM_gc = (0x00<<3), /* Totempole */ PORT_OPC_BUSKEEPER_gc = (0x01<<3), /* Totempole w/ Bus keeper on Input and Output */ PORT_OPC_PULLDOWN_gc = (0x02<<3), /* Totempole w/ Pull-down on Input */ PORT_OPC_PULLUP_gc = (0x03<<3), /* Totempole w/ Pull-up on Input */ PORT_OPC_WIREDOR_gc = (0x04<<3), /* Wired OR */ PORT_OPC_WIREDAND_gc = (0x05<<3), /* Wired AND */ PORT_OPC_WIREDORPULL_gc = (0x06<<3), /* Wired OR w/ Pull-down */ PORT_OPC_WIREDANDPULL_gc = (0x07<<3), /* Wired AND w/ Pull-up */ } PORT_OPC_t; /* Input/Sense Configuration */ typedef enum PORT_ISC_enum { PORT_ISC_BOTHEDGES_gc = (0x00<<0), /* Sense Both Edges */ PORT_ISC_RISING_gc = (0x01<<0), /* Sense Rising Edge */ PORT_ISC_FALLING_gc = (0x02<<0), /* Sense Falling Edge */ PORT_ISC_LEVEL_gc = (0x03<<0), /* Sense Level (Transparent For Events) */ PORT_ISC_FORCE_ENABLE_gc = (0x06<<0), /* Digital Input Buffer Forced Enable */ PORT_ISC_INPUT_DISABLE_gc = (0x07<<0), /* Disable Digital Input Buffer */ } PORT_ISC_t; /* -------------------------------------------------------------------------- TC - 16-bit Timer/Counter With PWM -------------------------------------------------------------------------- */ /* 16-bit Timer/Counter 4 */ typedef struct TC4_struct { register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t CTRLC; /* Control register C */ register8_t CTRLD; /* Control Register D */ register8_t CTRLE; /* Control Register E */ register8_t CTRLF; /* Control Register F */ register8_t INTCTRLA; /* Interrupt Control Register A */ register8_t INTCTRLB; /* Interrupt Control Register B */ register8_t CTRLGCLR; /* Control Register G Clear */ register8_t CTRLGSET; /* Control Register G Set */ register8_t CTRLHCLR; /* Control Register H Clear */ register8_t CTRLHSET; /* Control Register H Set */ register8_t INTFLAGS; /* Interrupt Flag Register */ register8_t reserved_0x0D; register8_t reserved_0x0E; register8_t TEMP; /* Temporary Register For 16-bit Access */ register8_t reserved_0x10; register8_t reserved_0x11; register8_t reserved_0x12; register8_t reserved_0x13; register8_t reserved_0x14; register8_t reserved_0x15; register8_t reserved_0x16; register8_t reserved_0x17; register8_t reserved_0x18; register8_t reserved_0x19; register8_t reserved_0x1A; register8_t reserved_0x1B; register8_t reserved_0x1C; register8_t reserved_0x1D; register8_t reserved_0x1E; register8_t reserved_0x1F; _WORDREGISTER(CNT); /* Count */ register8_t reserved_0x22; register8_t reserved_0x23; register8_t reserved_0x24; register8_t reserved_0x25; _WORDREGISTER(PER); /* Period */ _WORDREGISTER(CCA); /* Compare or Capture A */ _WORDREGISTER(CCB); /* Compare or Capture B */ _WORDREGISTER(CCC); /* Compare or Capture C */ _WORDREGISTER(CCD); /* Compare or Capture D */ register8_t reserved_0x30; register8_t reserved_0x31; register8_t reserved_0x32; register8_t reserved_0x33; register8_t reserved_0x34; register8_t reserved_0x35; _WORDREGISTER(PERBUF); /* Period Buffer */ _WORDREGISTER(CCABUF); /* Compare Or Capture A Buffer */ _WORDREGISTER(CCBBUF); /* Compare Or Capture B Buffer */ _WORDREGISTER(CCCBUF); /* Compare Or Capture C Buffer */ _WORDREGISTER(CCDBUF); /* Compare Or Capture D Buffer */ } TC4_t; /* 16-bit Timer/Counter 5 */ typedef struct TC5_struct { register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t CTRLC; /* Control register C */ register8_t CTRLD; /* Control Register D */ register8_t CTRLE; /* Control Register E */ register8_t CTRLF; /* Control Register F */ register8_t INTCTRLA; /* Interrupt Control Register A */ register8_t INTCTRLB; /* Interrupt Control Register B */ register8_t CTRLGCLR; /* Control Register G Clear */ register8_t CTRLGSET; /* Control Register G Set */ register8_t CTRLHCLR; /* Control Register H Clear */ register8_t CTRLHSET; /* Control Register H Set */ register8_t INTFLAGS; /* Interrupt Flag Register */ register8_t reserved_0x0D; register8_t reserved_0x0E; register8_t TEMP; /* Temporary Register For 16-bit Access */ register8_t reserved_0x10; register8_t reserved_0x11; register8_t reserved_0x12; register8_t reserved_0x13; register8_t reserved_0x14; register8_t reserved_0x15; register8_t reserved_0x16; register8_t reserved_0x17; register8_t reserved_0x18; register8_t reserved_0x19; register8_t reserved_0x1A; register8_t reserved_0x1B; register8_t reserved_0x1C; register8_t reserved_0x1D; register8_t reserved_0x1E; register8_t reserved_0x1F; _WORDREGISTER(CNT); /* Count */ register8_t reserved_0x22; register8_t reserved_0x23; register8_t reserved_0x24; register8_t reserved_0x25; _WORDREGISTER(PER); /* Period */ _WORDREGISTER(CCA); /* Compare or Capture A */ _WORDREGISTER(CCB); /* Compare or Capture B */ register8_t reserved_0x2C; register8_t reserved_0x2D; register8_t reserved_0x2E; register8_t reserved_0x2F; register8_t reserved_0x30; register8_t reserved_0x31; register8_t reserved_0x32; register8_t reserved_0x33; register8_t reserved_0x34; register8_t reserved_0x35; _WORDREGISTER(PERBUF); /* Period Buffer */ _WORDREGISTER(CCABUF); /* Compare Or Capture A Buffer */ _WORDREGISTER(CCBBUF); /* Compare Or Capture B Buffer */ register8_t reserved_0x3C; register8_t reserved_0x3D; register8_t reserved_0x3E; register8_t reserved_0x3F; } TC5_t; /* Clock Selection */ typedef enum TC45_CLKSEL_enum { TC45_CLKSEL_OFF_gc = (0x00<<0), /* Timer Off */ TC45_CLKSEL_DIV1_gc = (0x01<<0), /* System Clock */ TC45_CLKSEL_DIV2_gc = (0x02<<0), /* System Clock / 2 */ TC45_CLKSEL_DIV4_gc = (0x03<<0), /* System Clock / 4 */ TC45_CLKSEL_DIV8_gc = (0x04<<0), /* System Clock / 8 */ TC45_CLKSEL_DIV64_gc = (0x05<<0), /* System Clock / 64 */ TC45_CLKSEL_DIV256_gc = (0x06<<0), /* System Clock / 256 */ TC45_CLKSEL_DIV1024_gc = (0x07<<0), /* System Clock / 1024 */ TC45_CLKSEL_EVCH0_gc = (0x08<<0), /* Event Channel 0 */ TC45_CLKSEL_EVCH1_gc = (0x09<<0), /* Event Channel 1 */ TC45_CLKSEL_EVCH2_gc = (0x0A<<0), /* Event Channel 2 */ TC45_CLKSEL_EVCH3_gc = (0x0B<<0), /* Event Channel 3 */ TC45_CLKSEL_EVCH4_gc = (0x0C<<0), /* Event Channel 4 */ TC45_CLKSEL_EVCH5_gc = (0x0D<<0), /* Event Channel 5 */ TC45_CLKSEL_EVCH6_gc = (0x0E<<0), /* Event Channel 6 */ TC45_CLKSEL_EVCH7_gc = (0x0F<<0), /* Event Channel 7 */ } TC45_CLKSEL_t; /* Byte Mode */ typedef enum TC45_BYTEM_enum { TC45_BYTEM_NORMAL_gc = (0x00<<6), /* 16-bit mode */ TC45_BYTEM_BYTEMODE_gc = (0x01<<6), /* Timer/Counter Operating in Byte Mode Only */ } TC45_BYTEM_t; /* Circular Enable Mode */ typedef enum TC45_CIRCEN_enum { TC45_CIRCEN_DISABLE_gc = (0x00<<4), /* Circular Buffer Disabled */ TC45_CIRCEN_PER_gc = (0x01<<4), /* Circular Buffer Enabled on PER/PERBUF */ TC45_CIRCEN_CCA_gc = (0x02<<4), /* Circular Buffer Enabled on CCA/CCABUF */ TC45_CIRCEN_BOTH_gc = (0x03<<4), /* Circular Buffer Enabled on All Buffered Registers */ } TC45_CIRCEN_t; /* Waveform Generation Mode */ typedef enum TC45_WGMODE_enum { TC45_WGMODE_NORMAL_gc = (0x00<<0), /* Normal Mode */ TC45_WGMODE_FRQ_gc = (0x01<<0), /* Frequency Generation Mode */ TC45_WGMODE_SINGLESLOPE_gc = (0x03<<0), /* Single Slope */ TC45_WGMODE_DSTOP_gc = (0x05<<0), /* Dual Slope, Update on TOP */ TC45_WGMODE_DSBOTH_gc = (0x06<<0), /* Dual Slope, Both */ TC45_WGMODE_DSBOTTOM_gc = (0x07<<0), /* Dual Slope, Update on BOTTOM */ } TC45_WGMODE_t; /* Event Action */ typedef enum TC45_EVACT_enum { TC45_EVACT_OFF_gc = (0x00<<5), /* No Event Action */ TC45_EVACT_FMODE1_gc = (0x01<<5), /* Fault Mode 1 capture */ TC45_EVACT_FMODE2_gc = (0x02<<5), /* Fault Mode 2 capture */ TC45_EVACT_UPDOWN_gc = (0x03<<5), /* Up/down count */ TC45_EVACT_QDEC_gc = (0x04<<5), /* Quadrature decode */ TC45_EVACT_RESTART_gc = (0x05<<5), /* Restart */ TC45_EVACT_PWF_gc = (0x06<<5), /* Pulse-width Capture */ } TC45_EVACT_t; /* Event Selection */ typedef enum TC45_EVSEL_enum { TC45_EVSEL_OFF_gc = (0x00<<0), /* No Event Source */ TC45_EVSEL_CH0_gc = (0x08<<0), /* Event Channel 0 */ TC45_EVSEL_CH1_gc = (0x09<<0), /* Event Channel 1 */ TC45_EVSEL_CH2_gc = (0x0A<<0), /* Event Channel 2 */ TC45_EVSEL_CH3_gc = (0x0B<<0), /* Event Channel 3 */ TC45_EVSEL_CH4_gc = (0x0C<<0), /* Event Channel 4 */ TC45_EVSEL_CH5_gc = (0x0D<<0), /* Event Channel 5 */ TC45_EVSEL_CH6_gc = (0x0E<<0), /* Event Channel 6 */ TC45_EVSEL_CH7_gc = (0x0F<<0), /* Event Channel 7 */ } TC45_EVSEL_t; /* Compare or Capture Channel A Mode */ typedef enum TC45_CCAMODE_enum { TC45_CCAMODE_DISABLE_gc = (0x00<<0), /* Channel Disabled */ TC45_CCAMODE_COMP_gc = (0x01<<0), /* Ouput Compare enabled */ TC45_CCAMODE_CAPT_gc = (0x02<<0), /* Input Capture enabled */ TC45_CCAMODE_BOTHCC_gc = (0x03<<0), /* Both Compare and Capture enabled */ } TC45_CCAMODE_t; /* Compare or Capture Channel B Mode */ typedef enum TC45_CCBMODE_enum { TC45_CCBMODE_DISABLE_gc = (0x00<<2), /* Channel Disabled */ TC45_CCBMODE_COMP_gc = (0x01<<2), /* Ouput Compare enabled */ TC45_CCBMODE_CAPT_gc = (0x02<<2), /* Input Capture enabled */ TC45_CCBMODE_BOTHCC_gc = (0x03<<2), /* Both Compare and Capture enabled */ } TC45_CCBMODE_t; /* Compare or Capture Channel C Mode */ typedef enum TC45_CCCMODE_enum { TC45_CCCMODE_DISABLE_gc = (0x00<<4), /* Channel Disabled */ TC45_CCCMODE_COMP_gc = (0x01<<4), /* Ouput Compare enabled */ TC45_CCCMODE_CAPT_gc = (0x02<<4), /* Input Capture enabled */ TC45_CCCMODE_BOTHCC_gc = (0x03<<4), /* Both Compare and Capture enabled */ } TC45_CCCMODE_t; /* Compare or Capture Channel D Mode */ typedef enum TC45_CCDMODE_enum { TC45_CCDMODE_DISABLE_gc = (0x00<<6), /* Channel Disabled */ TC45_CCDMODE_COMP_gc = (0x01<<6), /* Ouput Compare enabled */ TC45_CCDMODE_CAPT_gc = (0x02<<6), /* Input Capture enabled */ TC45_CCDMODE_BOTHCC_gc = (0x03<<6), /* Both Compare and Capture enabled */ } TC45_CCDMODE_t; /* Compare or Capture Low Channel A Mode */ typedef enum TC45_LCCAMODE_enum { TC45_LCCAMODE_DISABLE_gc = (0x00<<0), /* Channel Disabled */ TC45_LCCAMODE_COMP_gc = (0x01<<0), /* Ouput Compare enabled */ TC45_LCCAMODE_CAPT_gc = (0x02<<0), /* Input Capture enabled */ TC45_LCCAMODE_BOTHCC_gc = (0x03<<0), /* Both Compare and Capture enabled */ } TC45_LCCAMODE_t; /* Compare or Capture Low Channel B Mode */ typedef enum TC45_LCCBMODE_enum { TC45_LCCBMODE_DISABLE_gc = (0x00<<2), /* Channel Disabled */ TC45_LCCBMODE_COMP_gc = (0x01<<2), /* Ouput Compare enabled */ TC45_LCCBMODE_CAPT_gc = (0x02<<2), /* Input Capture enabled */ TC45_LCCBMODE_BOTHCC_gc = (0x03<<2), /* Both Compare and Capture enabled */ } TC45_LCCBMODE_t; /* Compare or Capture Low Channel C Mode */ typedef enum TC45_LCCCMODE_enum { TC45_LCCCMODE_DISABLE_gc = (0x00<<4), /* Channel Disabled */ TC45_LCCCMODE_COMP_gc = (0x01<<4), /* Ouput Compare enabled */ TC45_LCCCMODE_CAPT_gc = (0x02<<4), /* Input Capture enabled */ TC45_LCCCMODE_BOTHCC_gc = (0x03<<4), /* Both Compare and Capture enabled */ } TC45_LCCCMODE_t; /* Compare or Capture Low Channel D Mode */ typedef enum TC45_LCCDMODE_enum { TC45_LCCDMODE_DISABLE_gc = (0x00<<6), /* Channel Disabled */ TC45_LCCDMODE_COMP_gc = (0x01<<6), /* Ouput Compare enabled */ TC45_LCCDMODE_CAPT_gc = (0x02<<6), /* Input Capture enabled */ TC45_LCCDMODE_BOTHCC_gc = (0x03<<6), /* Both Compare and Capture enabled */ } TC45_LCCDMODE_t; /* Compare or Capture High Channel A Mode */ typedef enum TC45_HCCAMODE_enum { TC45_HCCAMODE_DISABLE_gc = (0x00<<0), /* Channel Disabled */ TC45_HCCAMODE_COMP_gc = (0x01<<0), /* Ouput Compare enabled */ TC45_HCCAMODE_CAPT_gc = (0x02<<0), /* Input Capture enabled */ TC45_HCCAMODE_BOTHCC_gc = (0x03<<0), /* Both Compare and Capture enabled */ } TC45_HCCAMODE_t; /* Compare or Capture High Channel B Mode */ typedef enum TC45_HCCBMODE_enum { TC45_HCCBMODE_DISABLE_gc = (0x00<<2), /* Channel Disabled */ TC45_HCCBMODE_COMP_gc = (0x01<<2), /* Ouput Compare enabled */ TC45_HCCBMODE_CAPT_gc = (0x02<<2), /* Input Capture enabled */ TC45_HCCBMODE_BOTHCC_gc = (0x03<<2), /* Both Compare and Capture enabled */ } TC45_HCCBMODE_t; /* Compare or Capture High Channel C Mode */ typedef enum TC45_HCCCMODE_enum { TC45_HCCCMODE_DISABLE_gc = (0x00<<4), /* Channel Disabled */ TC45_HCCCMODE_COMP_gc = (0x01<<4), /* Ouput Compare enabled */ TC45_HCCCMODE_CAPT_gc = (0x02<<4), /* Input Capture enabled */ TC45_HCCCMODE_BOTHCC_gc = (0x03<<4), /* Both Compare and Capture enabled */ } TC45_HCCCMODE_t; /* Compare or Capture High Channel D Mode */ typedef enum TC45_HCCDMODE_enum { TC45_HCCDMODE_DISABLE_gc = (0x00<<6), /* Channel Disabled */ TC45_HCCDMODE_COMP_gc = (0x01<<6), /* Ouput Compare enabled */ TC45_HCCDMODE_CAPT_gc = (0x02<<6), /* Input Capture enabled */ TC45_HCCDMODE_BOTHCC_gc = (0x03<<6), /* Both Compare and Capture enabled */ } TC45_HCCDMODE_t; /* Timer Trigger Restart Interrupt Level */ typedef enum TC45_TRGINTLVL_enum { TC45_TRGINTLVL_OFF_gc = (0x00<<4), /* Interrupt Disabled */ TC45_TRGINTLVL_LO_gc = (0x01<<4), /* Low Level */ TC45_TRGINTLVL_MED_gc = (0x02<<4), /* Medium Level */ TC45_TRGINTLVL_HI_gc = (0x03<<4), /* High Level */ } TC45_TRGINTLVL_t; /* Error Interrupt Level */ typedef enum TC45_ERRINTLVL_enum { TC45_ERRINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */ TC45_ERRINTLVL_LO_gc = (0x01<<2), /* Low Level */ TC45_ERRINTLVL_MED_gc = (0x02<<2), /* Medium Level */ TC45_ERRINTLVL_HI_gc = (0x03<<2), /* High Level */ } TC45_ERRINTLVL_t; /* Overflow Interrupt Level */ typedef enum TC45_OVFINTLVL_enum { TC45_OVFINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */ TC45_OVFINTLVL_LO_gc = (0x01<<0), /* Low Level */ TC45_OVFINTLVL_MED_gc = (0x02<<0), /* Medium Level */ TC45_OVFINTLVL_HI_gc = (0x03<<0), /* High Level */ } TC45_OVFINTLVL_t; /* Compare or Capture Channel A Interrupt Level */ typedef enum TC45_CCAINTLVL_enum { TC45_CCAINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */ TC45_CCAINTLVL_LO_gc = (0x01<<0), /* Low Level */ TC45_CCAINTLVL_MED_gc = (0x02<<0), /* Medium Level */ TC45_CCAINTLVL_HI_gc = (0x03<<0), /* High Level */ } TC45_CCAINTLVL_t; /* Compare or Capture Channel B Interrupt Level */ typedef enum TC45_CCBINTLVL_enum { TC45_CCBINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */ TC45_CCBINTLVL_LO_gc = (0x01<<2), /* Low Level */ TC45_CCBINTLVL_MED_gc = (0x02<<2), /* Medium Level */ TC45_CCBINTLVL_HI_gc = (0x03<<2), /* High Level */ } TC45_CCBINTLVL_t; /* Compare or Capture Channel C Interrupt Level */ typedef enum TC45_CCCINTLVL_enum { TC45_CCCINTLVL_OFF_gc = (0x00<<4), /* Interrupt Disabled */ TC45_CCCINTLVL_LO_gc = (0x01<<4), /* Low Level */ TC45_CCCINTLVL_MED_gc = (0x02<<4), /* Medium Level */ TC45_CCCINTLVL_HI_gc = (0x03<<4), /* High Level */ } TC45_CCCINTLVL_t; /* Compare or Capture Channel D Interrupt Level */ typedef enum TC45_CCDINTLVL_enum { TC45_CCDINTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */ TC45_CCDINTLVL_LO_gc = (0x01<<6), /* Low Level */ TC45_CCDINTLVL_MED_gc = (0x02<<6), /* Medium Level */ TC45_CCDINTLVL_HI_gc = (0x03<<6), /* High Level */ } TC45_CCDINTLVL_t; /* Compare or Capture Low Channel A Interrupt Level */ typedef enum TC45_LCCAINTLVL_enum { TC45_LCCAINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */ TC45_LCCAINTLVL_LO_gc = (0x01<<0), /* Low Level */ TC45_LCCAINTLVL_MED_gc = (0x02<<0), /* Medium Level */ TC45_LCCAINTLVL_HI_gc = (0x03<<0), /* High Level */ } TC45_LCCAINTLVL_t; /* Compare or Capture Low Channel B Interrupt Level */ typedef enum TC45_LCCBINTLVL_enum { TC45_LCCBINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */ TC45_LCCBINTLVL_LO_gc = (0x01<<2), /* Low Level */ TC45_LCCBINTLVL_MED_gc = (0x02<<2), /* Medium Level */ TC45_LCCBINTLVL_HI_gc = (0x03<<2), /* High Level */ } TC45_LCCBINTLVL_t; /* Compare or Capture Low Channel C Interrupt Level */ typedef enum TC45_LCCCINTLVL_enum { TC45_LCCCINTLVL_OFF_gc = (0x00<<4), /* Interrupt Disabled */ TC45_LCCCINTLVL_LO_gc = (0x01<<4), /* Low Level */ TC45_LCCCINTLVL_MED_gc = (0x02<<4), /* Medium Level */ TC45_LCCCINTLVL_HI_gc = (0x03<<4), /* High Level */ } TC45_LCCCINTLVL_t; /* Compare or Capture Low Channel D Interrupt Level */ typedef enum TC45_LCCDINTLVL_enum { TC45_LCCDINTLVL_OFF_gc = (0x00<<6), /* Interrupt Disabled */ TC45_LCCDINTLVL_LO_gc = (0x01<<6), /* Low Level */ TC45_LCCDINTLVL_MED_gc = (0x02<<6), /* Medium Level */ TC45_LCCDINTLVL_HI_gc = (0x03<<6), /* High Level */ } TC45_LCCDINTLVL_t; /* Timer/Counter Command */ typedef enum TC45_CMD_enum { TC45_CMD_NONE_gc = (0x00<<2), /* No Command */ TC45_CMD_UPDATE_gc = (0x01<<2), /* Force Update */ TC45_CMD_RESTART_gc = (0x02<<2), /* Force Restart */ TC45_CMD_RESET_gc = (0x03<<2), /* Force Hard Reset */ } TC45_CMD_t; /* -------------------------------------------------------------------------- FAULT - Fault Extension -------------------------------------------------------------------------- */ /* Fault Extension */ typedef struct FAULT_struct { register8_t CTRLA; /* Control A Register */ register8_t CTRLB; /* Control B Register */ register8_t CTRLC; /* Control C Register */ register8_t CTRLD; /* Control D Register */ register8_t CTRLE; /* Control E Register */ register8_t STATUS; /* Status Register */ register8_t CTRLGCLR; /* Control Register G Clear */ register8_t CTRLGSET; /* Control Register G set */ } FAULT_t; /* Ramp Mode Selection */ typedef enum FAULT_RAMP_enum { FAULT_RAMP_RAMP1_gc = (0x00<<6), /* Normal Mode */ FAULT_RAMP_RAMP2_gc = (0x02<<6), /* RAMP2 Mode */ } FAULT_RAMP_t; /* Fault E Input Source Selection */ typedef enum FAULT_SRCE_enum { FAULT_SRCE_DISABLE_gc = (0x00<<0), /* Fault Protection Disabled */ FAULT_SRCE_CHN_gc = (0x01<<0), /* Event Channel n */ FAULT_SRCE_CHN1_gc = (0x02<<0), /* Event Channel n+1 */ FAULT_SRCE_CHN2_gc = (0x03<<0), /* Event Channel n+2 */ } FAULT_SRCE_t; /* Fault A Halt Action Selection */ typedef enum FAULT_HALTA_enum { FAULT_HALTA_DISABLE_gc = (0x00<<5), /* Halt Action Disabled */ FAULT_HALTA_HW_gc = (0x01<<5), /* Hardware Halt Action */ FAULT_HALTA_SW_gc = (0x02<<5), /* Software Halt Action */ } FAULT_HALTA_t; /* Fault A Source Selection */ typedef enum FAULT_SRCA_enum { FAULT_SRCA_DISABLE_gc = (0x00<<0), /* Fault A Disabled */ FAULT_SRCA_CHN_gc = (0x01<<0), /* Event Channel n */ FAULT_SRCA_CHN1_gc = (0x02<<0), /* Event Channel n+1 */ FAULT_SRCA_LINK_gc = (0x03<<0), /* Fault A linked to Fault B State from previous cycle */ } FAULT_SRCA_t; /* Fault B Halt Action Selection */ typedef enum FAULT_HALTB_enum { FAULT_HALTB_DISABLE_gc = (0x00<<5), /* Halt Action Disabled */ FAULT_HALTB_HW_gc = (0x01<<5), /* Hardware Halt Action */ FAULT_HALTB_SW_gc = (0x02<<5), /* Software Halt Action */ } FAULT_HALTB_t; /* Fault B Source Selection */ typedef enum FAULT_SRCB_enum { FAULT_SRCB_DISABLE_gc = (0x00<<0), /* Fault B disabled */ FAULT_SRCB_CHN_gc = (0x01<<0), /* Event Channel n */ FAULT_SRCB_CHN1_gc = (0x02<<0), /* Event Channel n+1 */ FAULT_SRCB_LINK_gc = (0x03<<0), /* Fault B linked to Fault A State from previous cycle */ } FAULT_SRCB_t; /* Channel index Command */ typedef enum FAULT_IDXCMD_enum { FAULT_IDXCMD_DISABLE_gc = (0x00<<3), /* Command Disabled */ FAULT_IDXCMD_SET_gc = (0x01<<3), /* Force Cycle B in Next Cycle */ FAULT_IDXCMD_CLEAR_gc = (0x02<<3), /* Force Cycle A in Next Cycle */ FAULT_IDXCMD_HOLD_gc = (0x03<<3), /* Hold Current Cycle Index in Next Cycle */ } FAULT_IDXCMD_t; /* -------------------------------------------------------------------------- WEX - Waveform Extension -------------------------------------------------------------------------- */ /* Waveform Extension */ typedef struct WEX_struct { register8_t CTRL; /* Control Register */ register8_t DTBOTH; /* Dead-time Concurrent Write to Both Sides Register */ register8_t DTLS; /* Dead-time Low Side Register */ register8_t DTHS; /* Dead-time High Side Register */ register8_t STATUSCLR; /* Status Clear Register */ register8_t STATUSSET; /* Status Set Register */ register8_t SWAP; /* Swap Register */ register8_t PGO; /* Pattern Generation Override Register */ register8_t PGV; /* Pattern Generation Value Register */ register8_t reserved_0x09; register8_t SWAPBUF; /* Dead Time Low Side Buffer */ register8_t PGOBUF; /* Pattern Generation Overwrite Buffer Register */ register8_t PGVBUF; /* Pattern Generation Value Buffer Register */ register8_t reserved_0x0D; register8_t reserved_0x0E; register8_t OUTOVDIS; /* Output Override Disable Register */ } WEX_t; /* Output Matrix Mode */ typedef enum WEX_OTMX_enum { WEX_OTMX_DEFAULT_gc = (0x00<<4), /* Default Ouput Matrix Mode */ WEX_OTMX_FIRST_gc = (0x01<<4), /* First Output matrix Mode */ WEX_OTMX_SECOND_gc = (0x02<<4), /* Second Output matrix Mode */ WEX_OTMX_THIRD_gc = (0x03<<4), /* Third Output matrix Mode */ WEX_OTMX_FOURTH_gc = (0x04<<4), /* Fourth Output matrix Mode */ } WEX_OTMX_t; /* -------------------------------------------------------------------------- HIRES - High-Resolution Extension -------------------------------------------------------------------------- */ /* High-Resolution Extension */ typedef struct HIRES_struct { register8_t CTRLA; /* Control Register A */ } HIRES_t; /* High Resolution Plus Mode */ typedef enum HIRES_HRPLUS_enum { HIRES_HRPLUS_NONE_gc = (0x00<<2), /* No Hi-Res Plus */ HIRES_HRPLUS_HRP4_gc = (0x01<<2), /* Hi-Res Plus enabled on Timer 4 */ HIRES_HRPLUS_HRP5_gc = (0x02<<2), /* Hi-Res Plus enabled on Timer 5 */ HIRES_HRPLUS_BOTH_gc = (0x03<<2), /* Hi-Res Plus enabled on Timer 4 and 5 */ } HIRES_HRPLUS_t; /* High Resolution Mode */ typedef enum HIRES_HREN_enum { HIRES_HREN_NONE_gc = (0x00<<0), /* No Hi-Res */ HIRES_HREN_HRP4_gc = (0x01<<0), /* Hi-Res enabled on Timer 4 */ HIRES_HREN_HRP5_gc = (0x02<<0), /* Hi-Res enabled on Timer 5 */ HIRES_HREN_BOTH_gc = (0x03<<0), /* Hi-Res enabled on Timer 4 and 5 */ } HIRES_HREN_t; /* -------------------------------------------------------------------------- USART - Universal Asynchronous Receiver-Transmitter -------------------------------------------------------------------------- */ /* Universal Synchronous/Asynchronous Receiver/Transmitter */ typedef struct USART_struct { register8_t DATA; /* Data Register */ register8_t STATUS; /* Status Register */ register8_t CTRLA; /* Control Register A */ register8_t CTRLB; /* Control Register B */ register8_t CTRLC; /* Control Register C */ register8_t CTRLD; /* Control Register D */ register8_t BAUDCTRLA; /* Baud Rate Control Register A */ register8_t BAUDCTRLB; /* Baud Rate Control Register B */ } USART_t; /* Receive Start Interrupt level */ typedef enum USART_RXSINTLVL_enum { USART_RXSINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */ USART_RXSINTLVL_LO_gc = (0x01<<0), /* Low Level */ USART_RXSINTLVL_MED_gc = (0x02<<0), /* Medium Level */ USART_RXSINTLVL_HI_gc = (0x03<<0), /* High Level */ } USART_RXSINTLVL_t; /* Receive Complete Interrupt level */ typedef enum USART_RXCINTLVL_enum { USART_RXCINTLVL_OFF_gc = (0x00<<4), /* Interrupt Disabled */ USART_RXCINTLVL_LO_gc = (0x01<<4), /* Low Level */ USART_RXCINTLVL_MED_gc = (0x02<<4), /* Medium Level */ USART_RXCINTLVL_HI_gc = (0x03<<4), /* High Level */ } USART_RXCINTLVL_t; /* Transmit Complete Interrupt level */ typedef enum USART_TXCINTLVL_enum { USART_TXCINTLVL_OFF_gc = (0x00<<2), /* Interrupt Disabled */ USART_TXCINTLVL_LO_gc = (0x01<<2), /* Low Level */ USART_TXCINTLVL_MED_gc = (0x02<<2), /* Medium Level */ USART_TXCINTLVL_HI_gc = (0x03<<2), /* High Level */ } USART_TXCINTLVL_t; /* Data Register Empty Interrupt level */ typedef enum USART_DREINTLVL_enum { USART_DREINTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */ USART_DREINTLVL_LO_gc = (0x01<<0), /* Low Level */ USART_DREINTLVL_MED_gc = (0x02<<0), /* Medium Level */ USART_DREINTLVL_HI_gc = (0x03<<0), /* High Level */ } USART_DREINTLVL_t; /* Character Size */ typedef enum USART_CHSIZE_enum { USART_CHSIZE_5BIT_gc = (0x00<<0), /* Character size: 5 bit */ USART_CHSIZE_6BIT_gc = (0x01<<0), /* Character size: 6 bit */ USART_CHSIZE_7BIT_gc = (0x02<<0), /* Character size: 7 bit */ USART_CHSIZE_8BIT_gc = (0x03<<0), /* Character size: 8 bit */ USART_CHSIZE_9BIT_gc = (0x07<<0), /* Character size: 9 bit */ } USART_CHSIZE_t; /* Communication Mode */ typedef enum USART_CMODE_enum { USART_CMODE_ASYNCHRONOUS_gc = (0x00<<6), /* Asynchronous Mode */ USART_CMODE_SYNCHRONOUS_gc = (0x01<<6), /* Synchronous Mode */ USART_CMODE_IRDA_gc = (0x02<<6), /* IrDA Mode */ USART_CMODE_MSPI_gc = (0x03<<6), /* Master SPI Mode */ } USART_CMODE_t; /* Parity Mode */ typedef enum USART_PMODE_enum { USART_PMODE_DISABLED_gc = (0x00<<4), /* No Parity */ USART_PMODE_EVEN_gc = (0x02<<4), /* Even Parity */ USART_PMODE_ODD_gc = (0x03<<4), /* Odd Parity */ } USART_PMODE_t; /* Encoding and Decoding Type */ typedef enum USART_DECTYPE_enum { USART_DECTYPE_DATA_gc = (0x00<<4), /* DATA Field Encoding */ USART_DECTYPE_SDATA_gc = (0x02<<4), /* Start and Data Fields Encoding */ USART_DECTYPE_NOTSDATA_gc = (0x03<<4), /* Start and Data Fields Encoding, with invertion in START field */ } USART_DECTYPE_t; /* XCL LUT Action */ typedef enum USART_LUTACT_enum { USART_LUTACT_OFF_gc = (0x00<<2), /* Standard Frame Configuration */ USART_LUTACT_RX_gc = (0x01<<2), /* Receiver Decoding Enabled */ USART_LUTACT_TX_gc = (0x02<<2), /* Transmitter Encoding Enabled */ USART_LUTACT_BOTH_gc = (0x03<<2), /* Both Encoding and Decoding Enabled */ } USART_LUTACT_t; /* XCL Peripheral Counter Action */ typedef enum USART_PECACT_enum { USART_PECACT_OFF_gc = (0x00<<0), /* Standard Mode */ USART_PECACT_PEC0_gc = (0x01<<0), /* Variable Data Lenght in Reception */ USART_PECACT_PEC1_gc = (0x02<<0), /* Variable Data Lenght in Transmission */ USART_PECACT_PERC01_gc = (0x03<<0), /* Variable Data Lenght in both Reception and Transmission */ } USART_PECACT_t; /* -------------------------------------------------------------------------- SPI - Serial Peripheral Interface -------------------------------------------------------------------------- */ /* Serial Peripheral Interface with Buffer Modes */ typedef struct SPI_struct { register8_t CTRL; /* Control Register */ register8_t INTCTRL; /* Interrupt Control Register */ register8_t STATUS; /* Status Register */ register8_t DATA; /* Data Register */ register8_t CTRLB; /* Control Register B */ } SPI_t; /* SPI Mode */ typedef enum SPI_MODE_enum { SPI_MODE_0_gc = (0x00<<2), /* SPI Mode 0, base clock at "0", sampling on leading edge (rising) & set-up on trailling edge (falling). */ SPI_MODE_1_gc = (0x01<<2), /* SPI Mode 1, base clock at "0", set-up on leading edge (rising) & sampling on trailling edge (falling). */ SPI_MODE_2_gc = (0x02<<2), /* SPI Mode 2, base clock at "1", sampling on leading edge (falling) & set-up on trailling edge (rising). */ SPI_MODE_3_gc = (0x03<<2), /* SPI Mode 3, base clock at "1", set-up on leading edge (falling) & sampling on trailling edge (rising). */ } SPI_MODE_t; /* Prescaler setting */ typedef enum SPI_PRESCALER_enum { SPI_PRESCALER_DIV4_gc = (0x00<<0), /* If CLK2X=1 CLKper/2, else (CLK2X=0) CLKper/4. */ SPI_PRESCALER_DIV16_gc = (0x01<<0), /* If CLK2X=1 CLKper/8, else (CLK2X=0) CLKper/16. */ SPI_PRESCALER_DIV64_gc = (0x02<<0), /* If CLK2X=1 CLKper/32, else (CLK2X=0) CLKper/64. */ SPI_PRESCALER_DIV128_gc = (0x03<<0), /* If CLK2X=1 CLKper/64, else (CLK2X=0) CLKper/128. */ } SPI_PRESCALER_t; /* Interrupt level */ typedef enum SPI_INTLVL_enum { SPI_INTLVL_OFF_gc = (0x00<<0), /* Interrupt Disabled */ SPI_INTLVL_LO_gc = (0x01<<0), /* Low Level */ SPI_INTLVL_MED_gc = (0x02<<0), /* Medium Level */ SPI_INTLVL_HI_gc = (0x03<<0), /* High Level */ } SPI_INTLVL_t; /* Buffer Modes */ typedef enum SPI_BUFMODE_enum { SPI_BUFMODE_OFF_gc = (0x00<<6), /* SPI Unbuffered Mode */ SPI_BUFMODE_BUFMODE1_gc = (0x02<<6), /* Buffer Mode 1 (with dummy byte) */ SPI_BUFMODE_BUFMODE2_gc = (0x03<<6), /* Buffer Mode 2 (no dummy byte) */ } SPI_BUFMODE_t; /* -------------------------------------------------------------------------- IRCOM - IR Communication Module -------------------------------------------------------------------------- */ /* IR Communication Module */ typedef struct IRCOM_struct { register8_t CTRL; /* Control Register */ register8_t TXPLCTRL; /* IrDA Transmitter Pulse Length Control Register */ register8_t RXPLCTRL; /* IrDA Receiver Pulse Length Control Register */ } IRCOM_t; /* Event channel selection */ typedef enum IRDA_EVSEL_enum { IRDA_EVSEL_OFF_gc = (0x00<<0), /* No Event Source */ IRDA_EVSEL_0_gc = (0x08<<0), /* Event Channel 0 */ IRDA_EVSEL_1_gc = (0x09<<0), /* Event Channel 1 */ IRDA_EVSEL_2_gc = (0x0A<<0), /* Event Channel 2 */ IRDA_EVSEL_3_gc = (0x0B<<0), /* Event Channel 3 */ IRDA_EVSEL_4_gc = (0x0C<<0), /* Event Channel 4 */ IRDA_EVSEL_5_gc = (0x0D<<0), /* Event Channel 5 */ IRDA_EVSEL_6_gc = (0x0E<<0), /* Event Channel 6 */ IRDA_EVSEL_7_gc = (0x0F<<0), /* Event Channel 7 */ } IRDA_EVSEL_t; /* -------------------------------------------------------------------------- FUSE - Fuses and Lockbits -------------------------------------------------------------------------- */ /* Lock Bits */ typedef struct NVM_LOCKBITS_struct { register8_t LOCKBITS; /* Lock Bits */ } NVM_LOCKBITS_t; /* Fuses */ typedef struct NVM_FUSES_struct { register8_t reserved_0x00; register8_t FUSEBYTE1; /* Watchdog Configuration */ register8_t FUSEBYTE2; /* Reset Configuration */ register8_t reserved_0x03; register8_t FUSEBYTE4; /* Start-up Configuration */ register8_t FUSEBYTE5; /* EESAVE and BOD Level */ register8_t FUSEBYTE6; /* Fault State */ } NVM_FUSES_t; /* Boot lock bits - boot setcion */ typedef enum FUSE_BLBB_enum { FUSE_BLBB_RWLOCK_gc = (0x00<<6), /* Read and write not allowed */ FUSE_BLBB_RLOCK_gc = (0x01<<6), /* Read not allowed */ FUSE_BLBB_WLOCK_gc = (0x02<<6), /* Write not allowed */ FUSE_BLBB_NOLOCK_gc = (0x03<<6), /* No locks */ } FUSE_BLBB_t; /* Boot lock bits - application section */ typedef enum FUSE_BLBA_enum { FUSE_BLBA_RWLOCK_gc = (0x00<<4), /* Read and write not allowed */ FUSE_BLBA_RLOCK_gc = (0x01<<4), /* Read not allowed */ FUSE_BLBA_WLOCK_gc = (0x02<<4), /* Write not allowed */ FUSE_BLBA_NOLOCK_gc = (0x03<<4), /* No locks */ } FUSE_BLBA_t; /* Boot lock bits - application table section */ typedef enum FUSE_BLBAT_enum { FUSE_BLBAT_RWLOCK_gc = (0x00<<2), /* Read and write not allowed */ FUSE_BLBAT_RLOCK_gc = (0x01<<2), /* Read not allowed */ FUSE_BLBAT_WLOCK_gc = (0x02<<2), /* Write not allowed */ FUSE_BLBAT_NOLOCK_gc = (0x03<<2), /* No locks */ } FUSE_BLBAT_t; /* Lock bits */ typedef enum FUSE_LB_enum { FUSE_LB_RWLOCK_gc = (0x00<<0), /* Read and write not allowed */ FUSE_LB_WLOCK_gc = (0x02<<0), /* Write not allowed */ FUSE_LB_NOLOCK_gc = (0x03<<0), /* No locks */ } FUSE_LB_t; /* Boot Loader Section Reset Vector */ typedef enum BOOTRST_enum { BOOTRST_BOOTLDR_gc = (0x00<<6), /* Boot Loader Reset */ BOOTRST_APPLICATION_gc = (0x01<<6), /* Application Reset */ } BOOTRST_t; /* BOD operation */ typedef enum BOD_enum { BOD_SAMPLED_gc = (0x01<<4), /* BOD enabled in sampled mode */ BOD_CONTINUOUS_gc = (0x02<<4), /* BOD enabled continuously */ BOD_DISABLED_gc = (0x03<<4), /* BOD Disabled */ } BOD_t; /* Watchdog (Window) Timeout Period */ typedef enum WD_enum { WD_8CLK_gc = (0x00<<4), /* 8 cycles (8ms @ 3.3V) */ WD_16CLK_gc = (0x01<<4), /* 16 cycles (16ms @ 3.3V) */ WD_32CLK_gc = (0x02<<4), /* 32 cycles (32ms @ 3.3V) */ WD_64CLK_gc = (0x03<<4), /* 64 cycles (64ms @ 3.3V) */ WD_128CLK_gc = (0x04<<4), /* 128 cycles (0.125s @ 3.3V) */ WD_256CLK_gc = (0x05<<4), /* 256 cycles (0.25s @ 3.3V) */ WD_512CLK_gc = (0x06<<4), /* 512 cycles (0.5s @ 3.3V) */ WD_1KCLK_gc = (0x07<<4), /* 1K cycles (1s @ 3.3V) */ WD_2KCLK_gc = (0x08<<4), /* 2K cycles (2s @ 3.3V) */ WD_4KCLK_gc = (0x09<<4), /* 4K cycles (4s @ 3.3V) */ WD_8KCLK_gc = (0x0A<<4), /* 8K cycles (8s @ 3.3V) */ } WD_t; /* Start-up Time */ typedef enum SUT_enum { SUT_0MS_gc = (0x03<<2), /* 0 ms */ SUT_4MS_gc = (0x01<<2), /* 4 ms */ SUT_64MS_gc = (0x00<<2), /* 64 ms */ } SUT_t; /* Brownout Detection Voltage Level */ typedef enum BODLVL_enum { BODLVL_1V6_gc = (0x07<<0), /* 1.6 V */ BODLVL_1V8_gc = (0x06<<0), /* 1.8 V */ BODLVL_2V0_gc = (0x05<<0), /* 2.0 V */ BODLVL_2V2_gc = (0x04<<0), /* 2.2 V */ BODLVL_2V4_gc = (0x03<<0), /* 2.4 V */ BODLVL_2V6_gc = (0x02<<0), /* 2.6 V */ BODLVL_2V8_gc = (0x01<<0), /* 2.8 V */ BODLVL_3V0_gc = (0x00<<0), /* 3.0 V */ } BODLVL_t; /* -------------------------------------------------------------------------- SIGROW - Signature Row -------------------------------------------------------------------------- */ /* Production Signatures */ typedef struct NVM_PROD_SIGNATURES_struct { register8_t RCOSC8M; /* RCOSC 8MHz Calibration Value */ register8_t reserved_0x01; register8_t RCOSC32K; /* RCOSC 32.768 kHz Calibration Value */ register8_t RCOSC32M; /* RCOSC 32 MHz Calibration Value B */ register8_t RCOSC32MA; /* RCOSC 32 MHz Calibration Value A */ register8_t reserved_0x05; register8_t reserved_0x06; register8_t reserved_0x07; register8_t LOTNUM0; /* Lot Number Byte 0, ASCII */ register8_t LOTNUM1; /* Lot Number Byte 1, ASCII */ register8_t LOTNUM2; /* Lot Number Byte 2, ASCII */ register8_t LOTNUM3; /* Lot Number Byte 3, ASCII */ register8_t LOTNUM4; /* Lot Number Byte 4, ASCII */ register8_t LOTNUM5; /* Lot Number Byte 5, ASCII */ register8_t reserved_0x0E; register8_t reserved_0x0F; register8_t WAFNUM; /* Wafer Number */ register8_t reserved_0x11; register8_t COORDX0; /* Wafer Coordinate X Byte 0 */ register8_t COORDX1; /* Wafer Coordinate X Byte 1 */ register8_t COORDY0; /* Wafer Coordinate Y Byte 0 */ register8_t COORDY1; /* Wafer Coordinate Y Byte 1 */ register8_t reserved_0x16; register8_t reserved_0x17; register8_t reserved_0x18; register8_t reserved_0x19; register8_t reserved_0x1A; register8_t reserved_0x1B; register8_t reserved_0x1C; register8_t reserved_0x1D; register8_t ROOMTEMP; /* Temperature corresponds to TEMPSENSE3/2 */ register8_t HOTTEMP; /* Temperature corresponds to TEMPSENSE1/0 */ register8_t ADCACAL0; /* ADCA Calibration Byte 0 */ register8_t ADCACAL1; /* ADCA Calibration Byte 1 */ register8_t reserved_0x22; register8_t reserved_0x23; register8_t reserved_0x24; register8_t reserved_0x25; register8_t reserved_0x26; register8_t reserved_0x27; register8_t ACACURRCAL; /* ACA Current Calibration Byte */ register8_t reserved_0x29; register8_t reserved_0x2A; register8_t reserved_0x2B; register8_t TEMPSENSE2; /* Temperature Sensor Calibration Byte 2 */ register8_t TEMPSENSE3; /* Temperature Sensor Calibration Byte 3 */ register8_t TEMPSENSE0; /* Temperature Sensor Calibration Byte 0 */ register8_t TEMPSENSE1; /* Temperature Sensor Calibration Byte 1 */ register8_t DACA0OFFCAL; /* DACA0 Calibration Byte 0 */ register8_t DACA0GAINCAL; /* DACA0 Calibration Byte 1 */ register8_t reserved_0x32; register8_t reserved_0x33; register8_t DACA1OFFCAL; /* DACA1 Calibration Byte 0 */ register8_t DACA1GAINCAL; /* DACA1 Calibration Byte 1 */ register8_t reserved_0x36; register8_t reserved_0x37; register8_t reserved_0x38; register8_t reserved_0x39; register8_t reserved_0x3A; register8_t reserved_0x3B; register8_t reserved_0x3C; register8_t reserved_0x3D; register8_t reserved_0x3E; register8_t reserved_0x3F; } NVM_PROD_SIGNATURES_t; /* ========================================================================== IO Module Instances. Mapped to memory. ========================================================================== */ #define VPORT0 (*(VPORT_t *) 0x0010) /* Virtual Port */ #define VPORT1 (*(VPORT_t *) 0x0014) /* Virtual Port */ #define VPORT2 (*(VPORT_t *) 0x0018) /* Virtual Port */ #define VPORT3 (*(VPORT_t *) 0x001C) /* Virtual Port */ #define OCD (*(OCD_t *) 0x002E) /* On-Chip Debug System */ #define CLK (*(CLK_t *) 0x0040) /* Clock System */ #define SLEEP (*(SLEEP_t *) 0x0048) /* Sleep Controller */ #define OSC (*(OSC_t *) 0x0050) /* Oscillator */ #define DFLLRC32M (*(DFLL_t *) 0x0060) /* DFLL */ #define PR (*(PR_t *) 0x0070) /* Power Reduction */ #define RST (*(RST_t *) 0x0078) /* Reset */ #define WDT (*(WDT_t *) 0x0080) /* Watch-Dog Timer */ #define MCU (*(MCU_t *) 0x0090) /* MCU Control */ #define PMIC (*(PMIC_t *) 0x00A0) /* Programmable Multi-level Interrupt Controller */ #define PORTCFG (*(PORTCFG_t *) 0x00B0) /* I/O port Configuration */ #define CRC (*(CRC_t *) 0x00D0) /* Cyclic Redundancy Checker */ #define EDMA (*(EDMA_t *) 0x0100) /* Enhanced DMA Controller */ #define EVSYS (*(EVSYS_t *) 0x0180) /* Event System */ #define NVM (*(NVM_t *) 0x01C0) /* Non-volatile Memory Controller */ #define ADCA (*(ADC_t *) 0x0200) /* Analog-to-Digital Converter */ #define DACA (*(DAC_t *) 0x0300) /* Digital-to-Analog Converter */ #define ACA (*(AC_t *) 0x0380) /* Analog Comparator */ #define RTC (*(RTC_t *) 0x0400) /* Real-Time Counter */ #define XCL (*(XCL_t *) 0x0460) /* XMEGA Custom Logic */ #define TWIC (*(TWI_t *) 0x0480) /* Two-Wire Interface */ #define PORTA (*(PORT_t *) 0x0600) /* I/O Ports */ #define PORTC (*(PORT_t *) 0x0640) /* I/O Ports */ #define PORTD (*(PORT_t *) 0x0660) /* I/O Ports */ #define PORTR (*(PORT_t *) 0x07E0) /* I/O Ports */ #define TCC4 (*(TC4_t *) 0x0800) /* 16-bit Timer/Counter 4 */ #define TCC5 (*(TC5_t *) 0x0840) /* 16-bit Timer/Counter 5 */ #define FAULTC4 (*(FAULT_t *) 0x0880) /* Fault Extension */ #define FAULTC5 (*(FAULT_t *) 0x0890) /* Fault Extension */ #define WEXC (*(WEX_t *) 0x08A0) /* Waveform Extension */ #define HIRESC (*(HIRES_t *) 0x08B0) /* High-Resolution Extension */ #define USARTC0 (*(USART_t *) 0x08C0) /* Universal Synchronous/Asynchronous Receiver/Transmitter */ #define SPIC (*(SPI_t *) 0x08E0) /* Serial Peripheral Interface with Buffer Modes */ #define IRCOM (*(IRCOM_t *) 0x08F8) /* IR Communication Module */ #define TCD5 (*(TC5_t *) 0x0940) /* 16-bit Timer/Counter 5 */ #define USARTD0 (*(USART_t *) 0x09C0) /* Universal Synchronous/Asynchronous Receiver/Transmitter */ #endif /* !defined (__ASSEMBLER__) */ /* ========== Flattened fully qualified IO register names ========== */ /* GPIO - General Purpose IO Registers */ #define GPIO_GPIOR0 _SFR_MEM8(0x0000) #define GPIO_GPIOR1 _SFR_MEM8(0x0001) #define GPIO_GPIOR2 _SFR_MEM8(0x0002) #define GPIO_GPIOR3 _SFR_MEM8(0x0003) /* Deprecated */ #define GPIO_GPIO0 _SFR_MEM8(0x0000) #define GPIO_GPIO1 _SFR_MEM8(0x0001) #define GPIO_GPIO2 _SFR_MEM8(0x0002) #define GPIO_GPIO3 _SFR_MEM8(0x0003) /* NVM_FUSES - Fuses */ #define FUSE_FUSEBYTE1 _SFR_MEM8(0x0001) #define FUSE_FUSEBYTE2 _SFR_MEM8(0x0002) #define FUSE_FUSEBYTE4 _SFR_MEM8(0x0004) #define FUSE_FUSEBYTE5 _SFR_MEM8(0x0005) #define FUSE_FUSEBYTE6 _SFR_MEM8(0x0006) /* NVM_LOCKBITS - Lock Bits */ #define LOCKBIT_LOCKBITS _SFR_MEM8(0x0000) /* NVM_PROD_SIGNATURES - Production Signatures */ #define PRODSIGNATURES_RCOSC8M _SFR_MEM8(0x0000) #define PRODSIGNATURES_RCOSC32K _SFR_MEM8(0x0002) #define PRODSIGNATURES_RCOSC32M _SFR_MEM8(0x0003) #define PRODSIGNATURES_RCOSC32MA _SFR_MEM8(0x0004) #define PRODSIGNATURES_LOTNUM0 _SFR_MEM8(0x0008) #define PRODSIGNATURES_LOTNUM1 _SFR_MEM8(0x0009) #define PRODSIGNATURES_LOTNUM2 _SFR_MEM8(0x000A) #define PRODSIGNATURES_LOTNUM3 _SFR_MEM8(0x000B) #define PRODSIGNATURES_LOTNUM4 _SFR_MEM8(0x000C) #define PRODSIGNATURES_LOTNUM5 _SFR_MEM8(0x000D) #define PRODSIGNATURES_WAFNUM _SFR_MEM8(0x0010) #define PRODSIGNATURES_COORDX0 _SFR_MEM8(0x0012) #define PRODSIGNATURES_COORDX1 _SFR_MEM8(0x0013) #define PRODSIGNATURES_COORDY0 _SFR_MEM8(0x0014) #define PRODSIGNATURES_COORDY1 _SFR_MEM8(0x0015) #define PRODSIGNATURES_ROOMTEMP _SFR_MEM8(0x001E) #define PRODSIGNATURES_HOTTEMP _SFR_MEM8(0x001F) #define PRODSIGNATURES_ADCACAL0 _SFR_MEM8(0x0020) #define PRODSIGNATURES_ADCACAL1 _SFR_MEM8(0x0021) #define PRODSIGNATURES_ACACURRCAL _SFR_MEM8(0x0028) #define PRODSIGNATURES_TEMPSENSE2 _SFR_MEM8(0x002C) #define PRODSIGNATURES_TEMPSENSE3 _SFR_MEM8(0x002D) #define PRODSIGNATURES_TEMPSENSE0 _SFR_MEM8(0x002E) #define PRODSIGNATURES_TEMPSENSE1 _SFR_MEM8(0x002F) #define PRODSIGNATURES_DACA0OFFCAL _SFR_MEM8(0x0030) #define PRODSIGNATURES_DACA0GAINCAL _SFR_MEM8(0x0031) #define PRODSIGNATURES_DACA1OFFCAL _SFR_MEM8(0x0034) #define PRODSIGNATURES_DACA1GAINCAL _SFR_MEM8(0x0035) /* VPORT - Virtual Port */ #define VPORT0_DIR _SFR_MEM8(0x0010) #define VPORT0_OUT _SFR_MEM8(0x0011) #define VPORT0_IN _SFR_MEM8(0x0012) #define VPORT0_INTFLAGS _SFR_MEM8(0x0013) /* VPORT - Virtual Port */ #define VPORT1_DIR _SFR_MEM8(0x0014) #define VPORT1_OUT _SFR_MEM8(0x0015) #define VPORT1_IN _SFR_MEM8(0x0016) #define VPORT1_INTFLAGS _SFR_MEM8(0x0017) /* VPORT - Virtual Port */ #define VPORT2_DIR _SFR_MEM8(0x0018) #define VPORT2_OUT _SFR_MEM8(0x0019) #define VPORT2_IN _SFR_MEM8(0x001A) #define VPORT2_INTFLAGS _SFR_MEM8(0x001B) /* VPORT - Virtual Port */ #define VPORT3_DIR _SFR_MEM8(0x001C) #define VPORT3_OUT _SFR_MEM8(0x001D) #define VPORT3_IN _SFR_MEM8(0x001E) #define VPORT3_INTFLAGS _SFR_MEM8(0x001F) /* OCD - On-Chip Debug System */ #define OCD_OCDR0 _SFR_MEM8(0x002E) #define OCD_OCDR1 _SFR_MEM8(0x002F) /* CPU - CPU registers */ #define CPU_CCP _SFR_MEM8(0x0034) #define CPU_RAMPD _SFR_MEM8(0x0038) #define CPU_RAMPX _SFR_MEM8(0x0039) #define CPU_RAMPY _SFR_MEM8(0x003A) #define CPU_RAMPZ _SFR_MEM8(0x003B) #define CPU_EIND _SFR_MEM8(0x003C) #define CPU_SPL _SFR_MEM8(0x003D) #define CPU_SPH _SFR_MEM8(0x003E) #define CPU_SREG _SFR_MEM8(0x003F) /* CLK - Clock System */ #define CLK_CTRL _SFR_MEM8(0x0040) #define CLK_PSCTRL _SFR_MEM8(0x0041) #define CLK_LOCK _SFR_MEM8(0x0042) #define CLK_RTCCTRL _SFR_MEM8(0x0043) /* SLEEP - Sleep Controller */ #define SLEEP_CTRL _SFR_MEM8(0x0048) /* OSC - Oscillator */ #define OSC_CTRL _SFR_MEM8(0x0050) #define OSC_STATUS _SFR_MEM8(0x0051) #define OSC_XOSCCTRL _SFR_MEM8(0x0052) #define OSC_XOSCFAIL _SFR_MEM8(0x0053) #define OSC_RC32KCAL _SFR_MEM8(0x0054) #define OSC_PLLCTRL _SFR_MEM8(0x0055) #define OSC_DFLLCTRL _SFR_MEM8(0x0056) #define OSC_RC8MCAL _SFR_MEM8(0x0057) /* DFLL - DFLL */ #define DFLLRC32M_CTRL _SFR_MEM8(0x0060) #define DFLLRC32M_CALA _SFR_MEM8(0x0062) #define DFLLRC32M_CALB _SFR_MEM8(0x0063) #define DFLLRC32M_COMP0 _SFR_MEM8(0x0064) #define DFLLRC32M_COMP1 _SFR_MEM8(0x0065) #define DFLLRC32M_COMP2 _SFR_MEM8(0x0066) /* PR - Power Reduction */ #define PR_PRGEN _SFR_MEM8(0x0070) #define PR_PRPA _SFR_MEM8(0x0071) #define PR_PRPC _SFR_MEM8(0x0073) #define PR_PRPD _SFR_MEM8(0x0074) /* RST - Reset */ #define RST_STATUS _SFR_MEM8(0x0078) #define RST_CTRL _SFR_MEM8(0x0079) /* WDT - Watch-Dog Timer */ #define WDT_CTRL _SFR_MEM8(0x0080) #define WDT_WINCTRL _SFR_MEM8(0x0081) #define WDT_STATUS _SFR_MEM8(0x0082) /* MCU - MCU Control */ #define MCU_DEVID0 _SFR_MEM8(0x0090) #define MCU_DEVID1 _SFR_MEM8(0x0091) #define MCU_DEVID2 _SFR_MEM8(0x0092) #define MCU_REVID _SFR_MEM8(0x0093) #define MCU_ANAINIT _SFR_MEM8(0x0097) #define MCU_EVSYSLOCK _SFR_MEM8(0x0098) #define MCU_WEXLOCK _SFR_MEM8(0x0099) #define MCU_FAULTLOCK _SFR_MEM8(0x009A) /* PMIC - Programmable Multi-level Interrupt Controller */ #define PMIC_STATUS _SFR_MEM8(0x00A0) #define PMIC_INTPRI _SFR_MEM8(0x00A1) #define PMIC_CTRL _SFR_MEM8(0x00A2) /* PORTCFG - I/O port Configuration */ #define PORTCFG_MPCMASK _SFR_MEM8(0x00B0) #define PORTCFG_CLKOUT _SFR_MEM8(0x00B4) #define PORTCFG_ACEVOUT _SFR_MEM8(0x00B6) #define PORTCFG_SRLCTRL _SFR_MEM8(0x00B7) /* CRC - Cyclic Redundancy Checker */ #define CRC_CTRL _SFR_MEM8(0x00D0) #define CRC_STATUS _SFR_MEM8(0x00D1) #define CRC_DATAIN _SFR_MEM8(0x00D3) #define CRC_CHECKSUM0 _SFR_MEM8(0x00D4) #define CRC_CHECKSUM1 _SFR_MEM8(0x00D5) #define CRC_CHECKSUM2 _SFR_MEM8(0x00D6) #define CRC_CHECKSUM3 _SFR_MEM8(0x00D7) /* EDMA - Enhanced DMA Controller */ #define EDMA_CTRL _SFR_MEM8(0x0100) #define EDMA_INTFLAGS _SFR_MEM8(0x0103) #define EDMA_STATUS _SFR_MEM8(0x0104) #define EDMA_TEMP _SFR_MEM8(0x0106) #define EDMA_CH0_CTRLA _SFR_MEM8(0x0110) #define EDMA_CH0_CTRLB _SFR_MEM8(0x0111) #define EDMA_CH0_ADDRCTRL _SFR_MEM8(0x0112) #define EDMA_CH0_DESTADDRCTRL _SFR_MEM8(0x0113) #define EDMA_CH0_TRIGSRC _SFR_MEM8(0x0114) #define EDMA_CH0_TRFCNT _SFR_MEM16(0x0116) #define EDMA_CH0_ADDR _SFR_MEM16(0x0118) #define EDMA_CH0_DESTADDR _SFR_MEM16(0x011C) #define EDMA_CH1_CTRLA _SFR_MEM8(0x0120) #define EDMA_CH1_CTRLB _SFR_MEM8(0x0121) #define EDMA_CH1_ADDRCTRL _SFR_MEM8(0x0122) #define EDMA_CH1_DESTADDRCTRL _SFR_MEM8(0x0123) #define EDMA_CH1_TRIGSRC _SFR_MEM8(0x0124) #define EDMA_CH1_TRFCNT _SFR_MEM16(0x0126) #define EDMA_CH1_ADDR _SFR_MEM16(0x0128) #define EDMA_CH1_DESTADDR _SFR_MEM16(0x012C) #define EDMA_CH2_CTRLA _SFR_MEM8(0x0130) #define EDMA_CH2_CTRLB _SFR_MEM8(0x0131) #define EDMA_CH2_ADDRCTRL _SFR_MEM8(0x0132) #define EDMA_CH2_DESTADDRCTRL _SFR_MEM8(0x0133) #define EDMA_CH2_TRIGSRC _SFR_MEM8(0x0134) #define EDMA_CH2_TRFCNT _SFR_MEM16(0x0136) #define EDMA_CH2_ADDR _SFR_MEM16(0x0138) #define EDMA_CH2_DESTADDR _SFR_MEM16(0x013C) #define EDMA_CH3_CTRLA _SFR_MEM8(0x0140) #define EDMA_CH3_CTRLB _SFR_MEM8(0x0141) #define EDMA_CH3_ADDRCTRL _SFR_MEM8(0x0142) #define EDMA_CH3_DESTADDRCTRL _SFR_MEM8(0x0143) #define EDMA_CH3_TRIGSRC _SFR_MEM8(0x0144) #define EDMA_CH3_TRFCNT _SFR_MEM16(0x0146) #define EDMA_CH3_ADDR _SFR_MEM16(0x0148) #define EDMA_CH3_DESTADDR _SFR_MEM16(0x014C) /* EVSYS - Event System */ #define EVSYS_CH0MUX _SFR_MEM8(0x0180) #define EVSYS_CH1MUX _SFR_MEM8(0x0181) #define EVSYS_CH2MUX _SFR_MEM8(0x0182) #define EVSYS_CH3MUX _SFR_MEM8(0x0183) #define EVSYS_CH4MUX _SFR_MEM8(0x0184) #define EVSYS_CH5MUX _SFR_MEM8(0x0185) #define EVSYS_CH6MUX _SFR_MEM8(0x0186) #define EVSYS_CH7MUX _SFR_MEM8(0x0187) #define EVSYS_CH0CTRL _SFR_MEM8(0x0188) #define EVSYS_CH1CTRL _SFR_MEM8(0x0189) #define EVSYS_CH2CTRL _SFR_MEM8(0x018A) #define EVSYS_CH3CTRL _SFR_MEM8(0x018B) #define EVSYS_CH4CTRL _SFR_MEM8(0x018C) #define EVSYS_CH5CTRL _SFR_MEM8(0x018D) #define EVSYS_CH6CTRL _SFR_MEM8(0x018E) #define EVSYS_CH7CTRL _SFR_MEM8(0x018F) #define EVSYS_STROBE _SFR_MEM8(0x0190) #define EVSYS_DATA _SFR_MEM8(0x0191) #define EVSYS_DFCTRL _SFR_MEM8(0x0192) /* NVM - Non-volatile Memory Controller */ #define NVM_ADDR0 _SFR_MEM8(0x01C0) #define NVM_ADDR1 _SFR_MEM8(0x01C1) #define NVM_ADDR2 _SFR_MEM8(0x01C2) #define NVM_DATA0 _SFR_MEM8(0x01C4) #define NVM_DATA1 _SFR_MEM8(0x01C5) #define NVM_DATA2 _SFR_MEM8(0x01C6) #define NVM_CMD _SFR_MEM8(0x01CA) #define NVM_CTRLA _SFR_MEM8(0x01CB) #define NVM_CTRLB _SFR_MEM8(0x01CC) #define NVM_INTCTRL _SFR_MEM8(0x01CD) #define NVM_STATUS _SFR_MEM8(0x01CF) #define NVM_LOCKBITS _SFR_MEM8(0x01D0) /* ADC - Analog-to-Digital Converter */ #define ADCA_CTRLA _SFR_MEM8(0x0200) #define ADCA_CTRLB _SFR_MEM8(0x0201) #define ADCA_REFCTRL _SFR_MEM8(0x0202) #define ADCA_EVCTRL _SFR_MEM8(0x0203) #define ADCA_PRESCALER _SFR_MEM8(0x0204) #define ADCA_INTFLAGS _SFR_MEM8(0x0206) #define ADCA_TEMP _SFR_MEM8(0x0207) #define ADCA_SAMPCTRL _SFR_MEM8(0x0208) #define ADCA_CAL _SFR_MEM16(0x020C) #define ADCA_CH0RES _SFR_MEM16(0x0210) #define ADCA_CMP _SFR_MEM16(0x0218) #define ADCA_CH0_CTRL _SFR_MEM8(0x0220) #define ADCA_CH0_MUXCTRL _SFR_MEM8(0x0221) #define ADCA_CH0_INTCTRL _SFR_MEM8(0x0222) #define ADCA_CH0_INTFLAGS _SFR_MEM8(0x0223) #define ADCA_CH0_RES _SFR_MEM16(0x0224) #define ADCA_CH0_SCAN _SFR_MEM8(0x0226) #define ADCA_CH0_CORRCTRL _SFR_MEM8(0x0227) #define ADCA_CH0_OFFSETCORR0 _SFR_MEM8(0x0228) #define ADCA_CH0_OFFSETCORR1 _SFR_MEM8(0x0229) #define ADCA_CH0_GAINCORR0 _SFR_MEM8(0x022A) #define ADCA_CH0_GAINCORR1 _SFR_MEM8(0x022B) #define ADCA_CH0_AVGCTRL _SFR_MEM8(0x022C) /* DAC - Digital-to-Analog Converter */ #define DACA_CTRLA _SFR_MEM8(0x0300) #define DACA_CTRLB _SFR_MEM8(0x0301) #define DACA_CTRLC _SFR_MEM8(0x0302) #define DACA_EVCTRL _SFR_MEM8(0x0303) #define DACA_STATUS _SFR_MEM8(0x0305) #define DACA_CH0GAINCAL _SFR_MEM8(0x0308) #define DACA_CH0OFFSETCAL _SFR_MEM8(0x0309) #define DACA_CH1GAINCAL _SFR_MEM8(0x030A) #define DACA_CH1OFFSETCAL _SFR_MEM8(0x030B) #define DACA_CH0DATA _SFR_MEM16(0x0318) #define DACA_CH1DATA _SFR_MEM16(0x031A) /* AC - Analog Comparator */ #define ACA_AC0CTRL _SFR_MEM8(0x0380) #define ACA_AC1CTRL _SFR_MEM8(0x0381) #define ACA_AC0MUXCTRL _SFR_MEM8(0x0382) #define ACA_AC1MUXCTRL _SFR_MEM8(0x0383) #define ACA_CTRLA _SFR_MEM8(0x0384) #define ACA_CTRLB _SFR_MEM8(0x0385) #define ACA_WINCTRL _SFR_MEM8(0x0386) #define ACA_STATUS _SFR_MEM8(0x0387) #define ACA_CURRCTRL _SFR_MEM8(0x0388) #define ACA_CURRCALIB _SFR_MEM8(0x0389) /* RTC - Real-Time Counter */ #define RTC_CTRL _SFR_MEM8(0x0400) #define RTC_STATUS _SFR_MEM8(0x0401) #define RTC_INTCTRL _SFR_MEM8(0x0402) #define RTC_INTFLAGS _SFR_MEM8(0x0403) #define RTC_TEMP _SFR_MEM8(0x0404) #define RTC_CALIB _SFR_MEM8(0x0406) #define RTC_CNT _SFR_MEM16(0x0408) #define RTC_PER _SFR_MEM16(0x040A) #define RTC_COMP _SFR_MEM16(0x040C) /* XCL - XMEGA Custom Logic */ #define XCL_CTRLA _SFR_MEM8(0x0460) #define XCL_CTRLB _SFR_MEM8(0x0461) #define XCL_CTRLC _SFR_MEM8(0x0462) #define XCL_CTRLD _SFR_MEM8(0x0463) #define XCL_CTRLE _SFR_MEM8(0x0464) #define XCL_CTRLF _SFR_MEM8(0x0465) #define XCL_CTRLG _SFR_MEM8(0x0466) #define XCL_INTCTRL _SFR_MEM8(0x0467) #define XCL_INTFLAGS _SFR_MEM8(0x0468) #define XCL_PLC _SFR_MEM8(0x0469) #define XCL_CNTL _SFR_MEM8(0x046A) #define XCL_CNTH _SFR_MEM8(0x046B) #define XCL_CMPL _SFR_MEM8(0x046C) #define XCL_CMPH _SFR_MEM8(0x046D) #define XCL_PERCAPTL _SFR_MEM8(0x046E) #define XCL_PERCAPTH _SFR_MEM8(0x046F) /* TWI - Two-Wire Interface */ #define TWIC_CTRL _SFR_MEM8(0x0480) #define TWIC_MASTER_CTRLA _SFR_MEM8(0x0481) #define TWIC_MASTER_CTRLB _SFR_MEM8(0x0482) #define TWIC_MASTER_CTRLC _SFR_MEM8(0x0483) #define TWIC_MASTER_STATUS _SFR_MEM8(0x0484) #define TWIC_MASTER_BAUD _SFR_MEM8(0x0485) #define TWIC_MASTER_ADDR _SFR_MEM8(0x0486) #define TWIC_MASTER_DATA _SFR_MEM8(0x0487) #define TWIC_SLAVE_CTRLA _SFR_MEM8(0x0488) #define TWIC_SLAVE_CTRLB _SFR_MEM8(0x0489) #define TWIC_SLAVE_STATUS _SFR_MEM8(0x048A) #define TWIC_SLAVE_ADDR _SFR_MEM8(0x048B) #define TWIC_SLAVE_DATA _SFR_MEM8(0x048C) #define TWIC_SLAVE_ADDRMASK _SFR_MEM8(0x048D) #define TWIC_TIMEOUT_TOS _SFR_MEM8(0x048E) #define TWIC_TIMEOUT_TOCONF _SFR_MEM8(0x048F) /* PORT - I/O Ports */ #define PORTA_DIR _SFR_MEM8(0x0600) #define PORTA_DIRSET _SFR_MEM8(0x0601) #define PORTA_DIRCLR _SFR_MEM8(0x0602) #define PORTA_DIRTGL _SFR_MEM8(0x0603) #define PORTA_OUT _SFR_MEM8(0x0604) #define PORTA_OUTSET _SFR_MEM8(0x0605) #define PORTA_OUTCLR _SFR_MEM8(0x0606) #define PORTA_OUTTGL _SFR_MEM8(0x0607) #define PORTA_IN _SFR_MEM8(0x0608) #define PORTA_INTCTRL _SFR_MEM8(0x0609) #define PORTA_INTMASK _SFR_MEM8(0x060A) #define PORTA_INTFLAGS _SFR_MEM8(0x060C) #define PORTA_REMAP _SFR_MEM8(0x060E) #define PORTA_PIN0CTRL _SFR_MEM8(0x0610) #define PORTA_PIN1CTRL _SFR_MEM8(0x0611) #define PORTA_PIN2CTRL _SFR_MEM8(0x0612) #define PORTA_PIN3CTRL _SFR_MEM8(0x0613) #define PORTA_PIN4CTRL _SFR_MEM8(0x0614) #define PORTA_PIN5CTRL _SFR_MEM8(0x0615) #define PORTA_PIN6CTRL _SFR_MEM8(0x0616) #define PORTA_PIN7CTRL _SFR_MEM8(0x0617) /* PORT - I/O Ports */ #define PORTC_DIR _SFR_MEM8(0x0640) #define PORTC_DIRSET _SFR_MEM8(0x0641) #define PORTC_DIRCLR _SFR_MEM8(0x0642) #define PORTC_DIRTGL _SFR_MEM8(0x0643) #define PORTC_OUT _SFR_MEM8(0x0644) #define PORTC_OUTSET _SFR_MEM8(0x0645) #define PORTC_OUTCLR _SFR_MEM8(0x0646) #define PORTC_OUTTGL _SFR_MEM8(0x0647) #define PORTC_IN _SFR_MEM8(0x0648) #define PORTC_INTCTRL _SFR_MEM8(0x0649) #define PORTC_INTMASK _SFR_MEM8(0x064A) #define PORTC_INTFLAGS _SFR_MEM8(0x064C) #define PORTC_REMAP _SFR_MEM8(0x064E) #define PORTC_PIN0CTRL _SFR_MEM8(0x0650) #define PORTC_PIN1CTRL _SFR_MEM8(0x0651) #define PORTC_PIN2CTRL _SFR_MEM8(0x0652) #define PORTC_PIN3CTRL _SFR_MEM8(0x0653) #define PORTC_PIN4CTRL _SFR_MEM8(0x0654) #define PORTC_PIN5CTRL _SFR_MEM8(0x0655) #define PORTC_PIN6CTRL _SFR_MEM8(0x0656) #define PORTC_PIN7CTRL _SFR_MEM8(0x0657) /* PORT - I/O Ports */ #define PORTD_DIR _SFR_MEM8(0x0660) #define PORTD_DIRSET _SFR_MEM8(0x0661) #define PORTD_DIRCLR _SFR_MEM8(0x0662) #define PORTD_DIRTGL _SFR_MEM8(0x0663) #define PORTD_OUT _SFR_MEM8(0x0664) #define PORTD_OUTSET _SFR_MEM8(0x0665) #define PORTD_OUTCLR _SFR_MEM8(0x0666) #define PORTD_OUTTGL _SFR_MEM8(0x0667) #define PORTD_IN _SFR_MEM8(0x0668) #define PORTD_INTCTRL _SFR_MEM8(0x0669) #define PORTD_INTMASK _SFR_MEM8(0x066A) #define PORTD_INTFLAGS _SFR_MEM8(0x066C) #define PORTD_REMAP _SFR_MEM8(0x066E) #define PORTD_PIN0CTRL _SFR_MEM8(0x0670) #define PORTD_PIN1CTRL _SFR_MEM8(0x0671) #define PORTD_PIN2CTRL _SFR_MEM8(0x0672) #define PORTD_PIN3CTRL _SFR_MEM8(0x0673) #define PORTD_PIN4CTRL _SFR_MEM8(0x0674) #define PORTD_PIN5CTRL _SFR_MEM8(0x0675) #define PORTD_PIN6CTRL _SFR_MEM8(0x0676) #define PORTD_PIN7CTRL _SFR_MEM8(0x0677) /* PORT - I/O Ports */ #define PORTR_DIR _SFR_MEM8(0x07E0) #define PORTR_DIRSET _SFR_MEM8(0x07E1) #define PORTR_DIRCLR _SFR_MEM8(0x07E2) #define PORTR_DIRTGL _SFR_MEM8(0x07E3) #define PORTR_OUT _SFR_MEM8(0x07E4) #define PORTR_OUTSET _SFR_MEM8(0x07E5) #define PORTR_OUTCLR _SFR_MEM8(0x07E6) #define PORTR_OUTTGL _SFR_MEM8(0x07E7) #define PORTR_IN _SFR_MEM8(0x07E8) #define PORTR_INTCTRL _SFR_MEM8(0x07E9) #define PORTR_INTMASK _SFR_MEM8(0x07EA) #define PORTR_INTFLAGS _SFR_MEM8(0x07EC) #define PORTR_REMAP _SFR_MEM8(0x07EE) #define PORTR_PIN0CTRL _SFR_MEM8(0x07F0) #define PORTR_PIN1CTRL _SFR_MEM8(0x07F1) #define PORTR_PIN2CTRL _SFR_MEM8(0x07F2) #define PORTR_PIN3CTRL _SFR_MEM8(0x07F3) #define PORTR_PIN4CTRL _SFR_MEM8(0x07F4) #define PORTR_PIN5CTRL _SFR_MEM8(0x07F5) #define PORTR_PIN6CTRL _SFR_MEM8(0x07F6) #define PORTR_PIN7CTRL _SFR_MEM8(0x07F7) /* TC4 - 16-bit Timer/Counter 4 */ #define TCC4_CTRLA _SFR_MEM8(0x0800) #define TCC4_CTRLB _SFR_MEM8(0x0801) #define TCC4_CTRLC _SFR_MEM8(0x0802) #define TCC4_CTRLD _SFR_MEM8(0x0803) #define TCC4_CTRLE _SFR_MEM8(0x0804) #define TCC4_CTRLF _SFR_MEM8(0x0805) #define TCC4_INTCTRLA _SFR_MEM8(0x0806) #define TCC4_INTCTRLB _SFR_MEM8(0x0807) #define TCC4_CTRLGCLR _SFR_MEM8(0x0808) #define TCC4_CTRLGSET _SFR_MEM8(0x0809) #define TCC4_CTRLHCLR _SFR_MEM8(0x080A) #define TCC4_CTRLHSET _SFR_MEM8(0x080B) #define TCC4_INTFLAGS _SFR_MEM8(0x080C) #define TCC4_TEMP _SFR_MEM8(0x080F) #define TCC4_CNT _SFR_MEM16(0x0820) #define TCC4_PER _SFR_MEM16(0x0826) #define TCC4_CCA _SFR_MEM16(0x0828) #define TCC4_CCB _SFR_MEM16(0x082A) #define TCC4_CCC _SFR_MEM16(0x082C) #define TCC4_CCD _SFR_MEM16(0x082E) #define TCC4_PERBUF _SFR_MEM16(0x0836) #define TCC4_CCABUF _SFR_MEM16(0x0838) #define TCC4_CCBBUF _SFR_MEM16(0x083A) #define TCC4_CCCBUF _SFR_MEM16(0x083C) #define TCC4_CCDBUF _SFR_MEM16(0x083E) /* TC5 - 16-bit Timer/Counter 5 */ #define TCC5_CTRLA _SFR_MEM8(0x0840) #define TCC5_CTRLB _SFR_MEM8(0x0841) #define TCC5_CTRLC _SFR_MEM8(0x0842) #define TCC5_CTRLD _SFR_MEM8(0x0843) #define TCC5_CTRLE _SFR_MEM8(0x0844) #define TCC5_CTRLF _SFR_MEM8(0x0845) #define TCC5_INTCTRLA _SFR_MEM8(0x0846) #define TCC5_INTCTRLB _SFR_MEM8(0x0847) #define TCC5_CTRLGCLR _SFR_MEM8(0x0848) #define TCC5_CTRLGSET _SFR_MEM8(0x0849) #define TCC5_CTRLHCLR _SFR_MEM8(0x084A) #define TCC5_CTRLHSET _SFR_MEM8(0x084B) #define TCC5_INTFLAGS _SFR_MEM8(0x084C) #define TCC5_TEMP _SFR_MEM8(0x084F) #define TCC5_CNT _SFR_MEM16(0x0860) #define TCC5_PER _SFR_MEM16(0x0866) #define TCC5_CCA _SFR_MEM16(0x0868) #define TCC5_CCB _SFR_MEM16(0x086A) #define TCC5_PERBUF _SFR_MEM16(0x0876) #define TCC5_CCABUF _SFR_MEM16(0x0878) #define TCC5_CCBBUF _SFR_MEM16(0x087A) /* FAULT - Fault Extension */ #define FAULTC4_CTRLA _SFR_MEM8(0x0880) #define FAULTC4_CTRLB _SFR_MEM8(0x0881) #define FAULTC4_CTRLC _SFR_MEM8(0x0882) #define FAULTC4_CTRLD _SFR_MEM8(0x0883) #define FAULTC4_CTRLE _SFR_MEM8(0x0884) #define FAULTC4_STATUS _SFR_MEM8(0x0885) #define FAULTC4_CTRLGCLR _SFR_MEM8(0x0886) #define FAULTC4_CTRLGSET _SFR_MEM8(0x0887) /* FAULT - Fault Extension */ #define FAULTC5_CTRLA _SFR_MEM8(0x0890) #define FAULTC5_CTRLB _SFR_MEM8(0x0891) #define FAULTC5_CTRLC _SFR_MEM8(0x0892) #define FAULTC5_CTRLD _SFR_MEM8(0x0893) #define FAULTC5_CTRLE _SFR_MEM8(0x0894) #define FAULTC5_STATUS _SFR_MEM8(0x0895) #define FAULTC5_CTRLGCLR _SFR_MEM8(0x0896) #define FAULTC5_CTRLGSET _SFR_MEM8(0x0897) /* WEX - Waveform Extension */ #define WEXC_CTRL _SFR_MEM8(0x08A0) #define WEXC_DTBOTH _SFR_MEM8(0x08A1) #define WEXC_DTLS _SFR_MEM8(0x08A2) #define WEXC_DTHS _SFR_MEM8(0x08A3) #define WEXC_STATUSCLR _SFR_MEM8(0x08A4) #define WEXC_STATUSSET _SFR_MEM8(0x08A5) #define WEXC_SWAP _SFR_MEM8(0x08A6) #define WEXC_PGO _SFR_MEM8(0x08A7) #define WEXC_PGV _SFR_MEM8(0x08A8) #define WEXC_SWAPBUF _SFR_MEM8(0x08AA) #define WEXC_PGOBUF _SFR_MEM8(0x08AB) #define WEXC_PGVBUF _SFR_MEM8(0x08AC) #define WEXC_OUTOVDIS _SFR_MEM8(0x08AF) /* HIRES - High-Resolution Extension */ #define HIRESC_CTRLA _SFR_MEM8(0x08B0) /* USART - Universal Synchronous/Asynchronous Receiver/Transmitter */ #define USARTC0_DATA _SFR_MEM8(0x08C0) #define USARTC0_STATUS _SFR_MEM8(0x08C1) #define USARTC0_CTRLA _SFR_MEM8(0x08C2) #define USARTC0_CTRLB _SFR_MEM8(0x08C3) #define USARTC0_CTRLC _SFR_MEM8(0x08C4) #define USARTC0_CTRLD _SFR_MEM8(0x08C5) #define USARTC0_BAUDCTRLA _SFR_MEM8(0x08C6) #define USARTC0_BAUDCTRLB _SFR_MEM8(0x08C7) /* SPI - Serial Peripheral Interface with Buffer Modes */ #define SPIC_CTRL _SFR_MEM8(0x08E0) #define SPIC_INTCTRL _SFR_MEM8(0x08E1) #define SPIC_STATUS _SFR_MEM8(0x08E2) #define SPIC_DATA _SFR_MEM8(0x08E3) #define SPIC_CTRLB _SFR_MEM8(0x08E4) /* IRCOM - IR Communication Module */ #define IRCOM_CTRL _SFR_MEM8(0x08F8) #define IRCOM_TXPLCTRL _SFR_MEM8(0x08F9) #define IRCOM_RXPLCTRL _SFR_MEM8(0x08FA) /* TC5 - 16-bit Timer/Counter 5 */ #define TCD5_CTRLA _SFR_MEM8(0x0940) #define TCD5_CTRLB _SFR_MEM8(0x0941) #define TCD5_CTRLC _SFR_MEM8(0x0942) #define TCD5_CTRLD _SFR_MEM8(0x0943) #define TCD5_CTRLE _SFR_MEM8(0x0944) #define TCD5_CTRLF _SFR_MEM8(0x0945) #define TCD5_INTCTRLA _SFR_MEM8(0x0946) #define TCD5_INTCTRLB _SFR_MEM8(0x0947) #define TCD5_CTRLGCLR _SFR_MEM8(0x0948) #define TCD5_CTRLGSET _SFR_MEM8(0x0949) #define TCD5_CTRLHCLR _SFR_MEM8(0x094A) #define TCD5_CTRLHSET _SFR_MEM8(0x094B) #define TCD5_INTFLAGS _SFR_MEM8(0x094C) #define TCD5_TEMP _SFR_MEM8(0x094F) #define TCD5_CNT _SFR_MEM16(0x0960) #define TCD5_PER _SFR_MEM16(0x0966) #define TCD5_CCA _SFR_MEM16(0x0968) #define TCD5_CCB _SFR_MEM16(0x096A) #define TCD5_PERBUF _SFR_MEM16(0x0976) #define TCD5_CCABUF _SFR_MEM16(0x0978) #define TCD5_CCBBUF _SFR_MEM16(0x097A) /* USART - Universal Synchronous/Asynchronous Receiver/Transmitter */ #define USARTD0_DATA _SFR_MEM8(0x09C0) #define USARTD0_STATUS _SFR_MEM8(0x09C1) #define USARTD0_CTRLA _SFR_MEM8(0x09C2) #define USARTD0_CTRLB _SFR_MEM8(0x09C3) #define USARTD0_CTRLC _SFR_MEM8(0x09C4) #define USARTD0_CTRLD _SFR_MEM8(0x09C5) #define USARTD0_BAUDCTRLA _SFR_MEM8(0x09C6) #define USARTD0_BAUDCTRLB _SFR_MEM8(0x09C7) /*================== Bitfield Definitions ================== */ /* VPORT - Virtual Ports */ /* VPORT.INTFLAGS bit masks and bit positions */ #define VPORT_INT7IF_bm 0x80 /* Interrupt Pin 7 Flag bit mask. */ #define VPORT_INT7IF_bp 7 /* Interrupt Pin 7 Flag bit position. */ #define VPORT_INT6IF_bm 0x40 /* Interrupt Pin 6 Flag bit mask. */ #define VPORT_INT6IF_bp 6 /* Interrupt Pin 6 Flag bit position. */ #define VPORT_INT5IF_bm 0x20 /* Interrupt Pin 5 Flag bit mask. */ #define VPORT_INT5IF_bp 5 /* Interrupt Pin 5 Flag bit position. */ #define VPORT_INT4IF_bm 0x10 /* Interrupt Pin 4 Flag bit mask. */ #define VPORT_INT4IF_bp 4 /* Interrupt Pin 4 Flag bit position. */ #define VPORT_INT3IF_bm 0x08 /* Interrupt Pin 3 Flag bit mask. */ #define VPORT_INT3IF_bp 3 /* Interrupt Pin 3 Flag bit position. */ #define VPORT_INT2IF_bm 0x04 /* Interrupt Pin 2 Flag bit mask. */ #define VPORT_INT2IF_bp 2 /* Interrupt Pin 2 Flag bit position. */ #define VPORT_INT1IF_bm 0x02 /* Interrupt Pin 1 Flag bit mask. */ #define VPORT_INT1IF_bp 1 /* Interrupt Pin 1 Flag bit position. */ #define VPORT_INT0IF_bm 0x01 /* Interrupt Pin 0 Flag bit mask. */ #define VPORT_INT0IF_bp 0 /* Interrupt Pin 0 Flag bit position. */ /* XOCD - On-Chip Debug System */ /* OCD.OCDR0 bit masks and bit positions */ #define OCD_OCDRD_gm 0xFF /* OCDR Dirty group mask. */ #define OCD_OCDRD_gp 0 /* OCDR Dirty group position. */ #define OCD_OCDRD0_bm (1<<0) /* OCDR Dirty bit 0 mask. */ #define OCD_OCDRD0_bp 0 /* OCDR Dirty bit 0 position. */ #define OCD_OCDRD1_bm (1<<1) /* OCDR Dirty bit 1 mask. */ #define OCD_OCDRD1_bp 1 /* OCDR Dirty bit 1 position. */ #define OCD_OCDRD2_bm (1<<2) /* OCDR Dirty bit 2 mask. */ #define OCD_OCDRD2_bp 2 /* OCDR Dirty bit 2 position. */ #define OCD_OCDRD3_bm (1<<3) /* OCDR Dirty bit 3 mask. */ #define OCD_OCDRD3_bp 3 /* OCDR Dirty bit 3 position. */ #define OCD_OCDRD4_bm (1<<4) /* OCDR Dirty bit 4 mask. */ #define OCD_OCDRD4_bp 4 /* OCDR Dirty bit 4 position. */ #define OCD_OCDRD5_bm (1<<5) /* OCDR Dirty bit 5 mask. */ #define OCD_OCDRD5_bp 5 /* OCDR Dirty bit 5 position. */ #define OCD_OCDRD6_bm (1<<6) /* OCDR Dirty bit 6 mask. */ #define OCD_OCDRD6_bp 6 /* OCDR Dirty bit 6 position. */ #define OCD_OCDRD7_bm (1<<7) /* OCDR Dirty bit 7 mask. */ #define OCD_OCDRD7_bp 7 /* OCDR Dirty bit 7 position. */ /* OCD.OCDR1 bit masks and bit positions */ /* OCD_OCDRD Predefined. */ /* OCD_OCDRD Predefined. */ /* CPU - CPU */ /* CPU.CCP bit masks and bit positions */ #define CPU_CCP_gm 0xFF /* CCP signature group mask. */ #define CPU_CCP_gp 0 /* CCP signature group position. */ #define CPU_CCP0_bm (1<<0) /* CCP signature bit 0 mask. */ #define CPU_CCP0_bp 0 /* CCP signature bit 0 position. */ #define CPU_CCP1_bm (1<<1) /* CCP signature bit 1 mask. */ #define CPU_CCP1_bp 1 /* CCP signature bit 1 position. */ #define CPU_CCP2_bm (1<<2) /* CCP signature bit 2 mask. */ #define CPU_CCP2_bp 2 /* CCP signature bit 2 position. */ #define CPU_CCP3_bm (1<<3) /* CCP signature bit 3 mask. */ #define CPU_CCP3_bp 3 /* CCP signature bit 3 position. */ #define CPU_CCP4_bm (1<<4) /* CCP signature bit 4 mask. */ #define CPU_CCP4_bp 4 /* CCP signature bit 4 position. */ #define CPU_CCP5_bm (1<<5) /* CCP signature bit 5 mask. */ #define CPU_CCP5_bp 5 /* CCP signature bit 5 position. */ #define CPU_CCP6_bm (1<<6) /* CCP signature bit 6 mask. */ #define CPU_CCP6_bp 6 /* CCP signature bit 6 position. */ #define CPU_CCP7_bm (1<<7) /* CCP signature bit 7 mask. */ #define CPU_CCP7_bp 7 /* CCP signature bit 7 position. */ /* CPU.SREG bit masks and bit positions */ #define CPU_I_bm 0x80 /* Global Interrupt Enable Flag bit mask. */ #define CPU_I_bp 7 /* Global Interrupt Enable Flag bit position. */ #define CPU_T_bm 0x40 /* Transfer Bit bit mask. */ #define CPU_T_bp 6 /* Transfer Bit bit position. */ #define CPU_H_bm 0x20 /* Half Carry Flag bit mask. */ #define CPU_H_bp 5 /* Half Carry Flag bit position. */ #define CPU_S_bm 0x10 /* N Exclusive Or V Flag bit mask. */ #define CPU_S_bp 4 /* N Exclusive Or V Flag bit position. */ #define CPU_V_bm 0x08 /* Two's Complement Overflow Flag bit mask. */ #define CPU_V_bp 3 /* Two's Complement Overflow Flag bit position. */ #define CPU_N_bm 0x04 /* Negative Flag bit mask. */ #define CPU_N_bp 2 /* Negative Flag bit position. */ #define CPU_Z_bm 0x02 /* Zero Flag bit mask. */ #define CPU_Z_bp 1 /* Zero Flag bit position. */ #define CPU_C_bm 0x01 /* Carry Flag bit mask. */ #define CPU_C_bp 0 /* Carry Flag bit position. */ /* CLK - Clock System */ /* CLK.CTRL bit masks and bit positions */ #define CLK_SCLKSEL_gm 0x07 /* System Clock Selection group mask. */ #define CLK_SCLKSEL_gp 0 /* System Clock Selection group position. */ #define CLK_SCLKSEL0_bm (1<<0) /* System Clock Selection bit 0 mask. */ #define CLK_SCLKSEL0_bp 0 /* System Clock Selection bit 0 position. */ #define CLK_SCLKSEL1_bm (1<<1) /* System Clock Selection bit 1 mask. */ #define CLK_SCLKSEL1_bp 1 /* System Clock Selection bit 1 position. */ #define CLK_SCLKSEL2_bm (1<<2) /* System Clock Selection bit 2 mask. */ #define CLK_SCLKSEL2_bp 2 /* System Clock Selection bit 2 position. */ /* CLK.PSCTRL bit masks and bit positions */ #define CLK_PSADIV_gm 0x7C /* Prescaler A Division Factor group mask. */ #define CLK_PSADIV_gp 2 /* Prescaler A Division Factor group position. */ #define CLK_PSADIV0_bm (1<<2) /* Prescaler A Division Factor bit 0 mask. */ #define CLK_PSADIV0_bp 2 /* Prescaler A Division Factor bit 0 position. */ #define CLK_PSADIV1_bm (1<<3) /* Prescaler A Division Factor bit 1 mask. */ #define CLK_PSADIV1_bp 3 /* Prescaler A Division Factor bit 1 position. */ #define CLK_PSADIV2_bm (1<<4) /* Prescaler A Division Factor bit 2 mask. */ #define CLK_PSADIV2_bp 4 /* Prescaler A Division Factor bit 2 position. */ #define CLK_PSADIV3_bm (1<<5) /* Prescaler A Division Factor bit 3 mask. */ #define CLK_PSADIV3_bp 5 /* Prescaler A Division Factor bit 3 position. */ #define CLK_PSADIV4_bm (1<<6) /* Prescaler A Division Factor bit 4 mask. */ #define CLK_PSADIV4_bp 6 /* Prescaler A Division Factor bit 4 position. */ #define CLK_PSBCDIV_gm 0x03 /* Prescaler B and C Division factor group mask. */ #define CLK_PSBCDIV_gp 0 /* Prescaler B and C Division factor group position. */ #define CLK_PSBCDIV0_bm (1<<0) /* Prescaler B and C Division factor bit 0 mask. */ #define CLK_PSBCDIV0_bp 0 /* Prescaler B and C Division factor bit 0 position. */ #define CLK_PSBCDIV1_bm (1<<1) /* Prescaler B and C Division factor bit 1 mask. */ #define CLK_PSBCDIV1_bp 1 /* Prescaler B and C Division factor bit 1 position. */ /* CLK.LOCK bit masks and bit positions */ #define CLK_LOCK_bm 0x01 /* Clock System Lock bit mask. */ #define CLK_LOCK_bp 0 /* Clock System Lock bit position. */ /* CLK.RTCCTRL bit masks and bit positions */ #define CLK_RTCSRC_gm 0x0E /* Clock Source group mask. */ #define CLK_RTCSRC_gp 1 /* Clock Source group position. */ #define CLK_RTCSRC0_bm (1<<1) /* Clock Source bit 0 mask. */ #define CLK_RTCSRC0_bp 1 /* Clock Source bit 0 position. */ #define CLK_RTCSRC1_bm (1<<2) /* Clock Source bit 1 mask. */ #define CLK_RTCSRC1_bp 2 /* Clock Source bit 1 position. */ #define CLK_RTCSRC2_bm (1<<3) /* Clock Source bit 2 mask. */ #define CLK_RTCSRC2_bp 3 /* Clock Source bit 2 position. */ #define CLK_RTCEN_bm 0x01 /* Clock Source Enable bit mask. */ #define CLK_RTCEN_bp 0 /* Clock Source Enable bit position. */ /* PR.PRGEN bit masks and bit positions */ #define PR_XCL_bm 0x80 /* XMEGA Custom Logic bit mask. */ #define PR_XCL_bp 7 /* XMEGA Custom Logic bit position. */ #define PR_RTC_bm 0x04 /* Real-time Counter bit mask. */ #define PR_RTC_bp 2 /* Real-time Counter bit position. */ #define PR_EVSYS_bm 0x02 /* Event System bit mask. */ #define PR_EVSYS_bp 1 /* Event System bit position. */ #define PR_EDMA_bm 0x01 /* Enhanced DMA-Controller bit mask. */ #define PR_EDMA_bp 0 /* Enhanced DMA-Controller bit position. */ /* PR.PRPA bit masks and bit positions */ #define PR_DAC_bm 0x04 /* Port A DAC bit mask. */ #define PR_DAC_bp 2 /* Port A DAC bit position. */ #define PR_ADC_bm 0x02 /* Port A ADC bit mask. */ #define PR_ADC_bp 1 /* Port A ADC bit position. */ #define PR_AC_bm 0x01 /* Port A Analog Comparator bit mask. */ #define PR_AC_bp 0 /* Port A Analog Comparator bit position. */ /* PR.PRPC bit masks and bit positions */ #define PR_TWI_bm 0x40 /* Port C Two-wire Interface bit mask. */ #define PR_TWI_bp 6 /* Port C Two-wire Interface bit position. */ #define PR_USART0_bm 0x10 /* Port C USART0 bit mask. */ #define PR_USART0_bp 4 /* Port C USART0 bit position. */ #define PR_SPI_bm 0x08 /* Port C SPI bit mask. */ #define PR_SPI_bp 3 /* Port C SPI bit position. */ #define PR_HIRES_bm 0x04 /* Port C WEX bit mask. */ #define PR_HIRES_bp 2 /* Port C WEX bit position. */ #define PR_TC5_bm 0x02 /* Port C Timer/Counter5 bit mask. */ #define PR_TC5_bp 1 /* Port C Timer/Counter5 bit position. */ #define PR_TC4_bm 0x01 /* Port C Timer/Counter4 bit mask. */ #define PR_TC4_bp 0 /* Port C Timer/Counter4 bit position. */ /* PR.PRPD bit masks and bit positions */ /* PR_USART0 Predefined. */ /* PR_USART0 Predefined. */ /* PR_TC5 Predefined. */ /* PR_TC5 Predefined. */ /* SLEEP - Sleep Controller */ /* SLEEP.CTRL bit masks and bit positions */ #define SLEEP_SMODE_gm 0x0E /* Sleep Mode group mask. */ #define SLEEP_SMODE_gp 1 /* Sleep Mode group position. */ #define SLEEP_SMODE0_bm (1<<1) /* Sleep Mode bit 0 mask. */ #define SLEEP_SMODE0_bp 1 /* Sleep Mode bit 0 position. */ #define SLEEP_SMODE1_bm (1<<2) /* Sleep Mode bit 1 mask. */ #define SLEEP_SMODE1_bp 2 /* Sleep Mode bit 1 position. */ #define SLEEP_SMODE2_bm (1<<3) /* Sleep Mode bit 2 mask. */ #define SLEEP_SMODE2_bp 3 /* Sleep Mode bit 2 position. */ #define SLEEP_SEN_bm 0x01 /* Sleep Enable bit mask. */ #define SLEEP_SEN_bp 0 /* Sleep Enable bit position. */ /* OSC - Oscillator */ /* OSC.CTRL bit masks and bit positions */ #define OSC_RC8MLPM_bm 0x40 /* Internal 8 MHz RC Low Power Mode Enable bit mask. */ #define OSC_RC8MLPM_bp 6 /* Internal 8 MHz RC Low Power Mode Enable bit position. */ #define OSC_RC8MEN_bm 0x20 /* Internal 8 MHz RC Oscillator Enable bit mask. */ #define OSC_RC8MEN_bp 5 /* Internal 8 MHz RC Oscillator Enable bit position. */ #define OSC_PLLEN_bm 0x10 /* PLL Enable bit mask. */ #define OSC_PLLEN_bp 4 /* PLL Enable bit position. */ #define OSC_XOSCEN_bm 0x08 /* External Oscillator Enable bit mask. */ #define OSC_XOSCEN_bp 3 /* External Oscillator Enable bit position. */ #define OSC_RC32KEN_bm 0x04 /* Internal 32.768 kHz RC Oscillator Enable bit mask. */ #define OSC_RC32KEN_bp 2 /* Internal 32.768 kHz RC Oscillator Enable bit position. */ #define OSC_RC32MEN_bm 0x02 /* Internal 32 MHz RC Oscillator Enable bit mask. */ #define OSC_RC32MEN_bp 1 /* Internal 32 MHz RC Oscillator Enable bit position. */ #define OSC_RC2MEN_bm 0x01 /* Internal 2 MHz RC Oscillator Enable bit mask. */ #define OSC_RC2MEN_bp 0 /* Internal 2 MHz RC Oscillator Enable bit position. */ /* OSC.STATUS bit masks and bit positions */ #define OSC_RC8MRDY_bm 0x20 /* Internal 8 MHz RC Oscillator Ready bit mask. */ #define OSC_RC8MRDY_bp 5 /* Internal 8 MHz RC Oscillator Ready bit position. */ #define OSC_PLLRDY_bm 0x10 /* PLL Ready bit mask. */ #define OSC_PLLRDY_bp 4 /* PLL Ready bit position. */ #define OSC_XOSCRDY_bm 0x08 /* External Oscillator Ready bit mask. */ #define OSC_XOSCRDY_bp 3 /* External Oscillator Ready bit position. */ #define OSC_RC32KRDY_bm 0x04 /* Internal 32.768 kHz RC Oscillator Ready bit mask. */ #define OSC_RC32KRDY_bp 2 /* Internal 32.768 kHz RC Oscillator Ready bit position. */ #define OSC_RC32MRDY_bm 0x02 /* Internal 32 MHz RC Oscillator Ready bit mask. */ #define OSC_RC32MRDY_bp 1 /* Internal 32 MHz RC Oscillator Ready bit position. */ #define OSC_RC2MRDY_bm 0x01 /* Internal 2 MHz RC Oscillator Ready bit mask. */ #define OSC_RC2MRDY_bp 0 /* Internal 2 MHz RC Oscillator Ready bit position. */ /* OSC.XOSCCTRL bit masks and bit positions */ #define OSC_FRQRANGE_gm 0xC0 /* Frequency Range group mask. */ #define OSC_FRQRANGE_gp 6 /* Frequency Range group position. */ #define OSC_FRQRANGE0_bm (1<<6) /* Frequency Range bit 0 mask. */ #define OSC_FRQRANGE0_bp 6 /* Frequency Range bit 0 position. */ #define OSC_FRQRANGE1_bm (1<<7) /* Frequency Range bit 1 mask. */ #define OSC_FRQRANGE1_bp 7 /* Frequency Range bit 1 position. */ #define OSC_X32KLPM_bm 0x20 /* 32.768 kHz XTAL OSC Low-power Mode bit mask. */ #define OSC_X32KLPM_bp 5 /* 32.768 kHz XTAL OSC Low-power Mode bit position. */ #define OSC_XOSCPWR_bm 0x10 /* 16 MHz Crystal Oscillator High Power mode bit mask. */ #define OSC_XOSCPWR_bp 4 /* 16 MHz Crystal Oscillator High Power mode bit position. */ #define OSC_XOSCSEL_gm 0x1F /* External Oscillator Selection and Startup Time group mask. */ #define OSC_XOSCSEL_gp 0 /* External Oscillator Selection and Startup Time group position. */ #define OSC_XOSCSEL0_bm (1<<0) /* External Oscillator Selection and Startup Time bit 0 mask. */ #define OSC_XOSCSEL0_bp 0 /* External Oscillator Selection and Startup Time bit 0 position. */ #define OSC_XOSCSEL1_bm (1<<1) /* External Oscillator Selection and Startup Time bit 1 mask. */ #define OSC_XOSCSEL1_bp 1 /* External Oscillator Selection and Startup Time bit 1 position. */ #define OSC_XOSCSEL2_bm (1<<2) /* External Oscillator Selection and Startup Time bit 2 mask. */ #define OSC_XOSCSEL2_bp 2 /* External Oscillator Selection and Startup Time bit 2 position. */ #define OSC_XOSCSEL3_bm (1<<3) /* External Oscillator Selection and Startup Time bit 3 mask. */ #define OSC_XOSCSEL3_bp 3 /* External Oscillator Selection and Startup Time bit 3 position. */ #define OSC_XOSCSEL4_bm (1<<4) /* External Oscillator Selection and Startup Time bit 4 mask. */ #define OSC_XOSCSEL4_bp 4 /* External Oscillator Selection and Startup Time bit 4 position. */ /* OSC.XOSCFAIL bit masks and bit positions */ #define OSC_PLLFDIF_bm 0x08 /* PLL Failure Detection Interrupt Flag bit mask. */ #define OSC_PLLFDIF_bp 3 /* PLL Failure Detection Interrupt Flag bit position. */ #define OSC_PLLFDEN_bm 0x04 /* PLL Failure Detection Enable bit mask. */ #define OSC_PLLFDEN_bp 2 /* PLL Failure Detection Enable bit position. */ #define OSC_XOSCFDIF_bm 0x02 /* XOSC Failure Detection Interrupt Flag bit mask. */ #define OSC_XOSCFDIF_bp 1 /* XOSC Failure Detection Interrupt Flag bit position. */ #define OSC_XOSCFDEN_bm 0x01 /* XOSC Failure Detection Enable bit mask. */ #define OSC_XOSCFDEN_bp 0 /* XOSC Failure Detection Enable bit position. */ /* OSC.PLLCTRL bit masks and bit positions */ #define OSC_PLLSRC_gm 0xC0 /* Clock Source group mask. */ #define OSC_PLLSRC_gp 6 /* Clock Source group position. */ #define OSC_PLLSRC0_bm (1<<6) /* Clock Source bit 0 mask. */ #define OSC_PLLSRC0_bp 6 /* Clock Source bit 0 position. */ #define OSC_PLLSRC1_bm (1<<7) /* Clock Source bit 1 mask. */ #define OSC_PLLSRC1_bp 7 /* Clock Source bit 1 position. */ #define OSC_PLLDIV_bm 0x20 /* Divide by 2 bit mask. */ #define OSC_PLLDIV_bp 5 /* Divide by 2 bit position. */ #define OSC_PLLFAC_gm 0x1F /* Multiplication Factor group mask. */ #define OSC_PLLFAC_gp 0 /* Multiplication Factor group position. */ #define OSC_PLLFAC0_bm (1<<0) /* Multiplication Factor bit 0 mask. */ #define OSC_PLLFAC0_bp 0 /* Multiplication Factor bit 0 position. */ #define OSC_PLLFAC1_bm (1<<1) /* Multiplication Factor bit 1 mask. */ #define OSC_PLLFAC1_bp 1 /* Multiplication Factor bit 1 position. */ #define OSC_PLLFAC2_bm (1<<2) /* Multiplication Factor bit 2 mask. */ #define OSC_PLLFAC2_bp 2 /* Multiplication Factor bit 2 position. */ #define OSC_PLLFAC3_bm (1<<3) /* Multiplication Factor bit 3 mask. */ #define OSC_PLLFAC3_bp 3 /* Multiplication Factor bit 3 position. */ #define OSC_PLLFAC4_bm (1<<4) /* Multiplication Factor bit 4 mask. */ #define OSC_PLLFAC4_bp 4 /* Multiplication Factor bit 4 position. */ /* OSC.DFLLCTRL bit masks and bit positions */ #define OSC_RC32MCREF_gm 0x06 /* 32 MHz DFLL Calibration Reference group mask. */ #define OSC_RC32MCREF_gp 1 /* 32 MHz DFLL Calibration Reference group position. */ #define OSC_RC32MCREF0_bm (1<<1) /* 32 MHz DFLL Calibration Reference bit 0 mask. */ #define OSC_RC32MCREF0_bp 1 /* 32 MHz DFLL Calibration Reference bit 0 position. */ #define OSC_RC32MCREF1_bm (1<<2) /* 32 MHz DFLL Calibration Reference bit 1 mask. */ #define OSC_RC32MCREF1_bp 2 /* 32 MHz DFLL Calibration Reference bit 1 position. */ /* OSC.RC8MCAL bit masks and bit positions */ #define OSC_RC8MCAL_gm 0xFF /* Calibration Bits group mask. */ #define OSC_RC8MCAL_gp 0 /* Calibration Bits group position. */ #define OSC_RC8MCAL0_bm (1<<0) /* Calibration Bits bit 0 mask. */ #define OSC_RC8MCAL0_bp 0 /* Calibration Bits bit 0 position. */ #define OSC_RC8MCAL1_bm (1<<1) /* Calibration Bits bit 1 mask. */ #define OSC_RC8MCAL1_bp 1 /* Calibration Bits bit 1 position. */ #define OSC_RC8MCAL2_bm (1<<2) /* Calibration Bits bit 2 mask. */ #define OSC_RC8MCAL2_bp 2 /* Calibration Bits bit 2 position. */ #define OSC_RC8MCAL3_bm (1<<3) /* Calibration Bits bit 3 mask. */ #define OSC_RC8MCAL3_bp 3 /* Calibration Bits bit 3 position. */ #define OSC_RC8MCAL4_bm (1<<4) /* Calibration Bits bit 4 mask. */ #define OSC_RC8MCAL4_bp 4 /* Calibration Bits bit 4 position. */ #define OSC_RC8MCAL5_bm (1<<5) /* Calibration Bits bit 5 mask. */ #define OSC_RC8MCAL5_bp 5 /* Calibration Bits bit 5 position. */ #define OSC_RC8MCAL6_bm (1<<6) /* Calibration Bits bit 6 mask. */ #define OSC_RC8MCAL6_bp 6 /* Calibration Bits bit 6 position. */ #define OSC_RC8MCAL7_bm (1<<7) /* Calibration Bits bit 7 mask. */ #define OSC_RC8MCAL7_bp 7 /* Calibration Bits bit 7 position. */ /* DFLL - DFLL */ /* DFLL.CTRL bit masks and bit positions */ #define DFLL_ENABLE_bm 0x01 /* DFLL Enable bit mask. */ #define DFLL_ENABLE_bp 0 /* DFLL Enable bit position. */ /* DFLL.CALA bit masks and bit positions */ #define DFLL_CALL_gm 0x7F /* DFLL Calibration Value A group mask. */ #define DFLL_CALL_gp 0 /* DFLL Calibration Value A group position. */ #define DFLL_CALL0_bm (1<<0) /* DFLL Calibration Value A bit 0 mask. */ #define DFLL_CALL0_bp 0 /* DFLL Calibration Value A bit 0 position. */ #define DFLL_CALL1_bm (1<<1) /* DFLL Calibration Value A bit 1 mask. */ #define DFLL_CALL1_bp 1 /* DFLL Calibration Value A bit 1 position. */ #define DFLL_CALL2_bm (1<<2) /* DFLL Calibration Value A bit 2 mask. */ #define DFLL_CALL2_bp 2 /* DFLL Calibration Value A bit 2 position. */ #define DFLL_CALL3_bm (1<<3) /* DFLL Calibration Value A bit 3 mask. */ #define DFLL_CALL3_bp 3 /* DFLL Calibration Value A bit 3 position. */ #define DFLL_CALL4_bm (1<<4) /* DFLL Calibration Value A bit 4 mask. */ #define DFLL_CALL4_bp 4 /* DFLL Calibration Value A bit 4 position. */ #define DFLL_CALL5_bm (1<<5) /* DFLL Calibration Value A bit 5 mask. */ #define DFLL_CALL5_bp 5 /* DFLL Calibration Value A bit 5 position. */ #define DFLL_CALL6_bm (1<<6) /* DFLL Calibration Value A bit 6 mask. */ #define DFLL_CALL6_bp 6 /* DFLL Calibration Value A bit 6 position. */ /* DFLL.CALB bit masks and bit positions */ #define DFLL_CALH_gm 0x3F /* DFLL Calibration Value B group mask. */ #define DFLL_CALH_gp 0 /* DFLL Calibration Value B group position. */ #define DFLL_CALH0_bm (1<<0) /* DFLL Calibration Value B bit 0 mask. */ #define DFLL_CALH0_bp 0 /* DFLL Calibration Value B bit 0 position. */ #define DFLL_CALH1_bm (1<<1) /* DFLL Calibration Value B bit 1 mask. */ #define DFLL_CALH1_bp 1 /* DFLL Calibration Value B bit 1 position. */ #define DFLL_CALH2_bm (1<<2) /* DFLL Calibration Value B bit 2 mask. */ #define DFLL_CALH2_bp 2 /* DFLL Calibration Value B bit 2 position. */ #define DFLL_CALH3_bm (1<<3) /* DFLL Calibration Value B bit 3 mask. */ #define DFLL_CALH3_bp 3 /* DFLL Calibration Value B bit 3 position. */ #define DFLL_CALH4_bm (1<<4) /* DFLL Calibration Value B bit 4 mask. */ #define DFLL_CALH4_bp 4 /* DFLL Calibration Value B bit 4 position. */ #define DFLL_CALH5_bm (1<<5) /* DFLL Calibration Value B bit 5 mask. */ #define DFLL_CALH5_bp 5 /* DFLL Calibration Value B bit 5 position. */ /* RST - Reset */ /* RST.STATUS bit masks and bit positions */ #define RST_SDRF_bm 0x40 /* Spike Detection Reset Flag bit mask. */ #define RST_SDRF_bp 6 /* Spike Detection Reset Flag bit position. */ #define RST_SRF_bm 0x20 /* Software Reset Flag bit mask. */ #define RST_SRF_bp 5 /* Software Reset Flag bit position. */ #define RST_PDIRF_bm 0x10 /* Programming and Debug Interface Interface Reset Flag bit mask. */ #define RST_PDIRF_bp 4 /* Programming and Debug Interface Interface Reset Flag bit position. */ #define RST_WDRF_bm 0x08 /* Watchdog Reset Flag bit mask. */ #define RST_WDRF_bp 3 /* Watchdog Reset Flag bit position. */ #define RST_BORF_bm 0x04 /* Brown-out Reset Flag bit mask. */ #define RST_BORF_bp 2 /* Brown-out Reset Flag bit position. */ #define RST_EXTRF_bm 0x02 /* External Reset Flag bit mask. */ #define RST_EXTRF_bp 1 /* External Reset Flag bit position. */ #define RST_PORF_bm 0x01 /* Power-on Reset Flag bit mask. */ #define RST_PORF_bp 0 /* Power-on Reset Flag bit position. */ /* RST.CTRL bit masks and bit positions */ #define RST_SWRST_bm 0x01 /* Software Reset bit mask. */ #define RST_SWRST_bp 0 /* Software Reset bit position. */ /* WDT - Watch-Dog Timer */ /* WDT.CTRL bit masks and bit positions */ #define WDT_PER_gm 0x3C /* Period group mask. */ #define WDT_PER_gp 2 /* Period group position. */ #define WDT_PER0_bm (1<<2) /* Period bit 0 mask. */ #define WDT_PER0_bp 2 /* Period bit 0 position. */ #define WDT_PER1_bm (1<<3) /* Period bit 1 mask. */ #define WDT_PER1_bp 3 /* Period bit 1 position. */ #define WDT_PER2_bm (1<<4) /* Period bit 2 mask. */ #define WDT_PER2_bp 4 /* Period bit 2 position. */ #define WDT_PER3_bm (1<<5) /* Period bit 3 mask. */ #define WDT_PER3_bp 5 /* Period bit 3 position. */ #define WDT_ENABLE_bm 0x02 /* Enable bit mask. */ #define WDT_ENABLE_bp 1 /* Enable bit position. */ #define WDT_CEN_bm 0x01 /* Change Enable bit mask. */ #define WDT_CEN_bp 0 /* Change Enable bit position. */ /* WDT.WINCTRL bit masks and bit positions */ #define WDT_WPER_gm 0x3C /* Windowed Mode Period group mask. */ #define WDT_WPER_gp 2 /* Windowed Mode Period group position. */ #define WDT_WPER0_bm (1<<2) /* Windowed Mode Period bit 0 mask. */ #define WDT_WPER0_bp 2 /* Windowed Mode Period bit 0 position. */ #define WDT_WPER1_bm (1<<3) /* Windowed Mode Period bit 1 mask. */ #define WDT_WPER1_bp 3 /* Windowed Mode Period bit 1 position. */ #define WDT_WPER2_bm (1<<4) /* Windowed Mode Period bit 2 mask. */ #define WDT_WPER2_bp 4 /* Windowed Mode Period bit 2 position. */ #define WDT_WPER3_bm (1<<5) /* Windowed Mode Period bit 3 mask. */ #define WDT_WPER3_bp 5 /* Windowed Mode Period bit 3 position. */ #define WDT_WEN_bm 0x02 /* Windowed Mode Enable bit mask. */ #define WDT_WEN_bp 1 /* Windowed Mode Enable bit position. */ #define WDT_WCEN_bm 0x01 /* Windowed Mode Change Enable bit mask. */ #define WDT_WCEN_bp 0 /* Windowed Mode Change Enable bit position. */ /* WDT.STATUS bit masks and bit positions */ #define WDT_SYNCBUSY_bm 0x01 /* Syncronization busy bit mask. */ #define WDT_SYNCBUSY_bp 0 /* Syncronization busy bit position. */ /* MCU - MCU Control */ /* MCU.ANAINIT bit masks and bit positions */ #define MCU_STARTUPDLYA_gm 0x03 /* Analog startup delay Port A group mask. */ #define MCU_STARTUPDLYA_gp 0 /* Analog startup delay Port A group position. */ #define MCU_STARTUPDLYA0_bm (1<<0) /* Analog startup delay Port A bit 0 mask. */ #define MCU_STARTUPDLYA0_bp 0 /* Analog startup delay Port A bit 0 position. */ #define MCU_STARTUPDLYA1_bm (1<<1) /* Analog startup delay Port A bit 1 mask. */ #define MCU_STARTUPDLYA1_bp 1 /* Analog startup delay Port A bit 1 position. */ /* MCU.EVSYSLOCK bit masks and bit positions */ #define MCU_EVSYS1LOCK_bm 0x10 /* Event Channel 4-7 Lock bit mask. */ #define MCU_EVSYS1LOCK_bp 4 /* Event Channel 4-7 Lock bit position. */ #define MCU_EVSYS0LOCK_bm 0x01 /* Event Channel 0-3 Lock bit mask. */ #define MCU_EVSYS0LOCK_bp 0 /* Event Channel 0-3 Lock bit position. */ /* MCU.WEXLOCK bit masks and bit positions */ #define MCU_WEXCLOCK_bm 0x01 /* WeX on T/C C4 Lock bit mask. */ #define MCU_WEXCLOCK_bp 0 /* WeX on T/C C4 Lock bit position. */ /* MCU.FAULTLOCK bit masks and bit positions */ #define MCU_FAULTC5LOCK_bm 0x02 /* Fault on T/C C5 Lock bit mask. */ #define MCU_FAULTC5LOCK_bp 1 /* Fault on T/C C5 Lock bit position. */ #define MCU_FAULTC4LOCK_bm 0x01 /* Fault on T/C C4 Lock bit mask. */ #define MCU_FAULTC4LOCK_bp 0 /* Fault on T/C C4 Lock bit position. */ /* PMIC - Programmable Multi-level Interrupt Controller */ /* PMIC.STATUS bit masks and bit positions */ #define PMIC_NMIEX_bm 0x80 /* Non-maskable Interrupt Executing bit mask. */ #define PMIC_NMIEX_bp 7 /* Non-maskable Interrupt Executing bit position. */ #define PMIC_HILVLEX_bm 0x04 /* High Level Interrupt Executing bit mask. */ #define PMIC_HILVLEX_bp 2 /* High Level Interrupt Executing bit position. */ #define PMIC_MEDLVLEX_bm 0x02 /* Medium Level Interrupt Executing bit mask. */ #define PMIC_MEDLVLEX_bp 1 /* Medium Level Interrupt Executing bit position. */ #define PMIC_LOLVLEX_bm 0x01 /* Low Level Interrupt Executing bit mask. */ #define PMIC_LOLVLEX_bp 0 /* Low Level Interrupt Executing bit position. */ /* PMIC.INTPRI bit masks and bit positions */ #define PMIC_INTPRI_gm 0xFF /* Interrupt Priority group mask. */ #define PMIC_INTPRI_gp 0 /* Interrupt Priority group position. */ #define PMIC_INTPRI0_bm (1<<0) /* Interrupt Priority bit 0 mask. */ #define PMIC_INTPRI0_bp 0 /* Interrupt Priority bit 0 position. */ #define PMIC_INTPRI1_bm (1<<1) /* Interrupt Priority bit 1 mask. */ #define PMIC_INTPRI1_bp 1 /* Interrupt Priority bit 1 position. */ #define PMIC_INTPRI2_bm (1<<2) /* Interrupt Priority bit 2 mask. */ #define PMIC_INTPRI2_bp 2 /* Interrupt Priority bit 2 position. */ #define PMIC_INTPRI3_bm (1<<3) /* Interrupt Priority bit 3 mask. */ #define PMIC_INTPRI3_bp 3 /* Interrupt Priority bit 3 position. */ #define PMIC_INTPRI4_bm (1<<4) /* Interrupt Priority bit 4 mask. */ #define PMIC_INTPRI4_bp 4 /* Interrupt Priority bit 4 position. */ #define PMIC_INTPRI5_bm (1<<5) /* Interrupt Priority bit 5 mask. */ #define PMIC_INTPRI5_bp 5 /* Interrupt Priority bit 5 position. */ #define PMIC_INTPRI6_bm (1<<6) /* Interrupt Priority bit 6 mask. */ #define PMIC_INTPRI6_bp 6 /* Interrupt Priority bit 6 position. */ #define PMIC_INTPRI7_bm (1<<7) /* Interrupt Priority bit 7 mask. */ #define PMIC_INTPRI7_bp 7 /* Interrupt Priority bit 7 position. */ /* PMIC.CTRL bit masks and bit positions */ #define PMIC_RREN_bm 0x80 /* Round-Robin Priority Enable bit mask. */ #define PMIC_RREN_bp 7 /* Round-Robin Priority Enable bit position. */ #define PMIC_IVSEL_bm 0x40 /* Interrupt Vector Select bit mask. */ #define PMIC_IVSEL_bp 6 /* Interrupt Vector Select bit position. */ #define PMIC_HILVLEN_bm 0x04 /* High Level Enable bit mask. */ #define PMIC_HILVLEN_bp 2 /* High Level Enable bit position. */ #define PMIC_MEDLVLEN_bm 0x02 /* Medium Level Enable bit mask. */ #define PMIC_MEDLVLEN_bp 1 /* Medium Level Enable bit position. */ #define PMIC_LOLVLEN_bm 0x01 /* Low Level Enable bit mask. */ #define PMIC_LOLVLEN_bp 0 /* Low Level Enable bit position. */ /* PORTCFG - Port Configuration */ /* PORTCFG.CLKOUT bit masks and bit positions */ #define PORTCFG_CLKEVPIN_bm 0x80 /* Clock and Event Output Pin Select bit mask. */ #define PORTCFG_CLKEVPIN_bp 7 /* Clock and Event Output Pin Select bit position. */ #define PORTCFG_RTCOUT_gm 0x60 /* RTC Clock Output Enable group mask. */ #define PORTCFG_RTCOUT_gp 5 /* RTC Clock Output Enable group position. */ #define PORTCFG_RTCOUT0_bm (1<<5) /* RTC Clock Output Enable bit 0 mask. */ #define PORTCFG_RTCOUT0_bp 5 /* RTC Clock Output Enable bit 0 position. */ #define PORTCFG_RTCOUT1_bm (1<<6) /* RTC Clock Output Enable bit 1 mask. */ #define PORTCFG_RTCOUT1_bp 6 /* RTC Clock Output Enable bit 1 position. */ #define PORTCFG_CLKOUTSEL_gm 0x0C /* Clock Output Select group mask. */ #define PORTCFG_CLKOUTSEL_gp 2 /* Clock Output Select group position. */ #define PORTCFG_CLKOUTSEL0_bm (1<<2) /* Clock Output Select bit 0 mask. */ #define PORTCFG_CLKOUTSEL0_bp 2 /* Clock Output Select bit 0 position. */ #define PORTCFG_CLKOUTSEL1_bm (1<<3) /* Clock Output Select bit 1 mask. */ #define PORTCFG_CLKOUTSEL1_bp 3 /* Clock Output Select bit 1 position. */ #define PORTCFG_CLKOUT_gm 0x03 /* Clock Output Port group mask. */ #define PORTCFG_CLKOUT_gp 0 /* Clock Output Port group position. */ #define PORTCFG_CLKOUT0_bm (1<<0) /* Clock Output Port bit 0 mask. */ #define PORTCFG_CLKOUT0_bp 0 /* Clock Output Port bit 0 position. */ #define PORTCFG_CLKOUT1_bm (1<<1) /* Clock Output Port bit 1 mask. */ #define PORTCFG_CLKOUT1_bp 1 /* Clock Output Port bit 1 position. */ /* PORTCFG.ACEVOUT bit masks and bit positions */ #define PORTCFG_ACOUT_gm 0xC0 /* Analog Comparator Output Port group mask. */ #define PORTCFG_ACOUT_gp 6 /* Analog Comparator Output Port group position. */ #define PORTCFG_ACOUT0_bm (1<<6) /* Analog Comparator Output Port bit 0 mask. */ #define PORTCFG_ACOUT0_bp 6 /* Analog Comparator Output Port bit 0 position. */ #define PORTCFG_ACOUT1_bm (1<<7) /* Analog Comparator Output Port bit 1 mask. */ #define PORTCFG_ACOUT1_bp 7 /* Analog Comparator Output Port bit 1 position. */ #define PORTCFG_EVOUT_gm 0x30 /* Event Channel Output Port group mask. */ #define PORTCFG_EVOUT_gp 4 /* Event Channel Output Port group position. */ #define PORTCFG_EVOUT0_bm (1<<4) /* Event Channel Output Port bit 0 mask. */ #define PORTCFG_EVOUT0_bp 4 /* Event Channel Output Port bit 0 position. */ #define PORTCFG_EVOUT1_bm (1<<5) /* Event Channel Output Port bit 1 mask. */ #define PORTCFG_EVOUT1_bp 5 /* Event Channel Output Port bit 1 position. */ #define PORTCFG_EVASYEN_bm 0x08 /* Asynchronous Event Enabled bit mask. */ #define PORTCFG_EVASYEN_bp 3 /* Asynchronous Event Enabled bit position. */ #define PORTCFG_EVOUTSEL_gm 0x07 /* Event Channel Output Selection group mask. */ #define PORTCFG_EVOUTSEL_gp 0 /* Event Channel Output Selection group position. */ #define PORTCFG_EVOUTSEL0_bm (1<<0) /* Event Channel Output Selection bit 0 mask. */ #define PORTCFG_EVOUTSEL0_bp 0 /* Event Channel Output Selection bit 0 position. */ #define PORTCFG_EVOUTSEL1_bm (1<<1) /* Event Channel Output Selection bit 1 mask. */ #define PORTCFG_EVOUTSEL1_bp 1 /* Event Channel Output Selection bit 1 position. */ #define PORTCFG_EVOUTSEL2_bm (1<<2) /* Event Channel Output Selection bit 2 mask. */ #define PORTCFG_EVOUTSEL2_bp 2 /* Event Channel Output Selection bit 2 position. */ /* PORTCFG.SRLCTRL bit masks and bit positions */ #define PORTCFG_SRLENRA_bm 0x01 /* Slew Rate Limit Enable on PORTA bit mask. */ #define PORTCFG_SRLENRA_bp 0 /* Slew Rate Limit Enable on PORTA bit position. */ #define PORTCFG_SRLENRC_bm 0x04 /* Slew Rate Limit Enable on PORTC bit mask. */ #define PORTCFG_SRLENRC_bp 2 /* Slew Rate Limit Enable on PORTC bit position. */ #define PORTCFG_SRLENRD_bm 0x08 /* Slew Rate Limit Enable on PORTD bit mask. */ #define PORTCFG_SRLENRD_bp 3 /* Slew Rate Limit Enable on PORTD bit position. */ #define PORTCFG_SRLENRR_bm 0x80 /* Slew Rate Limit Enable on PORTR bit mask. */ #define PORTCFG_SRLENRR_bp 7 /* Slew Rate Limit Enable on PORTR bit position. */ /* CRC - Cyclic Redundancy Checker */ /* CRC.CTRL bit masks and bit positions */ #define CRC_RESET_gm 0xC0 /* Reset group mask. */ #define CRC_RESET_gp 6 /* Reset group position. */ #define CRC_RESET0_bm (1<<6) /* Reset bit 0 mask. */ #define CRC_RESET0_bp 6 /* Reset bit 0 position. */ #define CRC_RESET1_bm (1<<7) /* Reset bit 1 mask. */ #define CRC_RESET1_bp 7 /* Reset bit 1 position. */ #define CRC_CRC32_bm 0x20 /* CRC Mode bit mask. */ #define CRC_CRC32_bp 5 /* CRC Mode bit position. */ #define CRC_SOURCE_gm 0x0F /* Input Source group mask. */ #define CRC_SOURCE_gp 0 /* Input Source group position. */ #define CRC_SOURCE0_bm (1<<0) /* Input Source bit 0 mask. */ #define CRC_SOURCE0_bp 0 /* Input Source bit 0 position. */ #define CRC_SOURCE1_bm (1<<1) /* Input Source bit 1 mask. */ #define CRC_SOURCE1_bp 1 /* Input Source bit 1 position. */ #define CRC_SOURCE2_bm (1<<2) /* Input Source bit 2 mask. */ #define CRC_SOURCE2_bp 2 /* Input Source bit 2 position. */ #define CRC_SOURCE3_bm (1<<3) /* Input Source bit 3 mask. */ #define CRC_SOURCE3_bp 3 /* Input Source bit 3 position. */ /* CRC.STATUS bit masks and bit positions */ #define CRC_ZERO_bm 0x02 /* Zero detection bit mask. */ #define CRC_ZERO_bp 1 /* Zero detection bit position. */ #define CRC_BUSY_bm 0x01 /* Busy bit mask. */ #define CRC_BUSY_bp 0 /* Busy bit position. */ /* EDMA - Enhanced DMA Controller */ /* EDMA.CTRL bit masks and bit positions */ #define EDMA_ENABLE_bm 0x80 /* Enable bit mask. */ #define EDMA_ENABLE_bp 7 /* Enable bit position. */ #define EDMA_RESET_bm 0x40 /* Software Reset bit mask. */ #define EDMA_RESET_bp 6 /* Software Reset bit position. */ #define EDMA_CHMODE_gm 0x30 /* Channel Mode group mask. */ #define EDMA_CHMODE_gp 4 /* Channel Mode group position. */ #define EDMA_CHMODE0_bm (1<<4) /* Channel Mode bit 0 mask. */ #define EDMA_CHMODE0_bp 4 /* Channel Mode bit 0 position. */ #define EDMA_CHMODE1_bm (1<<5) /* Channel Mode bit 1 mask. */ #define EDMA_CHMODE1_bp 5 /* Channel Mode bit 1 position. */ #define EDMA_DBUFMODE_gm 0x0C /* Double Buffer Mode group mask. */ #define EDMA_DBUFMODE_gp 2 /* Double Buffer Mode group position. */ #define EDMA_DBUFMODE0_bm (1<<2) /* Double Buffer Mode bit 0 mask. */ #define EDMA_DBUFMODE0_bp 2 /* Double Buffer Mode bit 0 position. */ #define EDMA_DBUFMODE1_bm (1<<3) /* Double Buffer Mode bit 1 mask. */ #define EDMA_DBUFMODE1_bp 3 /* Double Buffer Mode bit 1 position. */ #define EDMA_PRIMODE_gm 0x03 /* Priority Mode group mask. */ #define EDMA_PRIMODE_gp 0 /* Priority Mode group position. */ #define EDMA_PRIMODE0_bm (1<<0) /* Priority Mode bit 0 mask. */ #define EDMA_PRIMODE0_bp 0 /* Priority Mode bit 0 position. */ #define EDMA_PRIMODE1_bm (1<<1) /* Priority Mode bit 1 mask. */ #define EDMA_PRIMODE1_bp 1 /* Priority Mode bit 1 position. */ /* EDMA.INTFLAGS bit masks and bit positions */ #define EDMA_CH3ERRIF_bm 0x80 /* Channel 3 Transaction Error Interrupt Flag bit mask. */ #define EDMA_CH3ERRIF_bp 7 /* Channel 3 Transaction Error Interrupt Flag bit position. */ #define EDMA_CH2ERRIF_bm 0x40 /* Channel 2 Transaction Error Interrupt Flag bit mask. */ #define EDMA_CH2ERRIF_bp 6 /* Channel 2 Transaction Error Interrupt Flag bit position. */ #define EDMA_CH1ERRIF_bm 0x20 /* Channel 1 Transaction Error Interrupt Flag bit mask. */ #define EDMA_CH1ERRIF_bp 5 /* Channel 1 Transaction Error Interrupt Flag bit position. */ #define EDMA_CH0ERRIF_bm 0x10 /* Channel 0 Transaction Error Interrupt Flag bit mask. */ #define EDMA_CH0ERRIF_bp 4 /* Channel 0 Transaction Error Interrupt Flag bit position. */ #define EDMA_CH3TRNFIF_bm 0x08 /* Channel 3 Transaction Complete Interrupt Flag bit mask. */ #define EDMA_CH3TRNFIF_bp 3 /* Channel 3 Transaction Complete Interrupt Flag bit position. */ #define EDMA_CH2TRNFIF_bm 0x04 /* Channel 2 Transaction Complete Interrupt Flag bit mask. */ #define EDMA_CH2TRNFIF_bp 2 /* Channel 2 Transaction Complete Interrupt Flag bit position. */ #define EDMA_CH1TRNFIF_bm 0x02 /* Channel 1 Transaction Complete Interrupt Flag bit mask. */ #define EDMA_CH1TRNFIF_bp 1 /* Channel 1 Transaction Complete Interrupt Flag bit position. */ #define EDMA_CH0TRNFIF_bm 0x01 /* Channel 0 Transaction Complete Interrupt Flag bit mask. */ #define EDMA_CH0TRNFIF_bp 0 /* Channel 0 Transaction Complete Interrupt Flag bit position. */ /* EDMA.STATUS bit masks and bit positions */ #define EDMA_CH3BUSY_bm 0x80 /* Channel 3 Busy Flag bit mask. */ #define EDMA_CH3BUSY_bp 7 /* Channel 3 Busy Flag bit position. */ #define EDMA_CH2BUSY_bm 0x40 /* Channel 2 Busy Flag bit mask. */ #define EDMA_CH2BUSY_bp 6 /* Channel 2 Busy Flag bit position. */ #define EDMA_CH1BUSY_bm 0x20 /* Channel 1 Busy Flag bit mask. */ #define EDMA_CH1BUSY_bp 5 /* Channel 1 Busy Flag bit position. */ #define EDMA_CH0BUSY_bm 0x10 /* Channel 0 Busy Flag bit mask. */ #define EDMA_CH0BUSY_bp 4 /* Channel 0 Busy Flag bit position. */ #define EDMA_CH3PEND_bm 0x08 /* Channel 3 Pending Flag bit mask. */ #define EDMA_CH3PEND_bp 3 /* Channel 3 Pending Flag bit position. */ #define EDMA_CH2PEND_bm 0x04 /* Channel 2 Pending Flag bit mask. */ #define EDMA_CH2PEND_bp 2 /* Channel 2 Pending Flag bit position. */ #define EDMA_CH1PEND_bm 0x02 /* Channel 1 Pending Flag bit mask. */ #define EDMA_CH1PEND_bp 1 /* Channel 1 Pending Flag bit position. */ #define EDMA_CH0PEND_bm 0x01 /* Channel 0 Pending Flag bit mask. */ #define EDMA_CH0PEND_bp 0 /* Channel 0 Pending Flag bit position. */ /* EDMA_CH.CTRLA bit masks and bit positions */ #define EDMA_CH_ENABLE_bm 0x80 /* Channel Enable bit mask. */ #define EDMA_CH_ENABLE_bp 7 /* Channel Enable bit position. */ #define EDMA_CH_RESET_bm 0x40 /* Channel Software Reset bit mask. */ #define EDMA_CH_RESET_bp 6 /* Channel Software Reset bit position. */ #define EDMA_CH_REPEAT_bm 0x20 /* Channel Repeat Mode bit mask. */ #define EDMA_CH_REPEAT_bp 5 /* Channel Repeat Mode bit position. */ #define EDMA_CH_TRFREQ_bm 0x10 /* Channel Transfer Request bit mask. */ #define EDMA_CH_TRFREQ_bp 4 /* Channel Transfer Request bit position. */ #define EDMA_CH_SINGLE_bm 0x04 /* Channel Single Shot Data Transfer bit mask. */ #define EDMA_CH_SINGLE_bp 2 /* Channel Single Shot Data Transfer bit position. */ #define EDMA_CH_BURSTLEN_bm 0x01 /* Channel 2-bytes Burst Length bit mask. */ #define EDMA_CH_BURSTLEN_bp 0 /* Channel 2-bytes Burst Length bit position. */ /* EDMA_CH.CTRLB bit masks and bit positions */ #define EDMA_CH_CHBUSY_bm 0x80 /* Channel Block Transfer Busy bit mask. */ #define EDMA_CH_CHBUSY_bp 7 /* Channel Block Transfer Busy bit position. */ #define EDMA_CH_CHPEND_bm 0x40 /* Channel Block Transfer Pending bit mask. */ #define EDMA_CH_CHPEND_bp 6 /* Channel Block Transfer Pending bit position. */ #define EDMA_CH_ERRIF_bm 0x20 /* Channel Transaction Error Interrupt Flag bit mask. */ #define EDMA_CH_ERRIF_bp 5 /* Channel Transaction Error Interrupt Flag bit position. */ #define EDMA_CH_TRNIF_bm 0x10 /* Channel Transaction Complete Interrup Flag bit mask. */ #define EDMA_CH_TRNIF_bp 4 /* Channel Transaction Complete Interrup Flag bit position. */ #define EDMA_CH_ERRINTLVL_gm 0x0C /* Channel Transaction Error Interrupt Level group mask. */ #define EDMA_CH_ERRINTLVL_gp 2 /* Channel Transaction Error Interrupt Level group position. */ #define EDMA_CH_ERRINTLVL0_bm (1<<2) /* Channel Transaction Error Interrupt Level bit 0 mask. */ #define EDMA_CH_ERRINTLVL0_bp 2 /* Channel Transaction Error Interrupt Level bit 0 position. */ #define EDMA_CH_ERRINTLVL1_bm (1<<3) /* Channel Transaction Error Interrupt Level bit 1 mask. */ #define EDMA_CH_ERRINTLVL1_bp 3 /* Channel Transaction Error Interrupt Level bit 1 position. */ #define EDMA_CH_TRNINTLVL_gm 0x03 /* Channel Transaction Complete Interrupt Level group mask. */ #define EDMA_CH_TRNINTLVL_gp 0 /* Channel Transaction Complete Interrupt Level group position. */ #define EDMA_CH_TRNINTLVL0_bm (1<<0) /* Channel Transaction Complete Interrupt Level bit 0 mask. */ #define EDMA_CH_TRNINTLVL0_bp 0 /* Channel Transaction Complete Interrupt Level bit 0 position. */ #define EDMA_CH_TRNINTLVL1_bm (1<<1) /* Channel Transaction Complete Interrupt Level bit 1 mask. */ #define EDMA_CH_TRNINTLVL1_bp 1 /* Channel Transaction Complete Interrupt Level bit 1 position. */ /* EDMA_CH.ADDRCTRL bit masks and bit positions */ #define EDMA_CH_RELOAD_gm 0x30 /* Memory Address Reload for Peripheral Ch., or Source Address Reload for Standard Ch. group mask. */ #define EDMA_CH_RELOAD_gp 4 /* Memory Address Reload for Peripheral Ch., or Source Address Reload for Standard Ch. group position. */ #define EDMA_CH_RELOAD0_bm (1<<4) /* Memory Address Reload for Peripheral Ch., or Source Address Reload for Standard Ch. bit 0 mask. */ #define EDMA_CH_RELOAD0_bp 4 /* Memory Address Reload for Peripheral Ch., or Source Address Reload for Standard Ch. bit 0 position. */ #define EDMA_CH_RELOAD1_bm (1<<5) /* Memory Address Reload for Peripheral Ch., or Source Address Reload for Standard Ch. bit 1 mask. */ #define EDMA_CH_RELOAD1_bp 5 /* Memory Address Reload for Peripheral Ch., or Source Address Reload for Standard Ch. bit 1 position. */ #define EDMA_CH_DIR_gm 0x07 /* Memory Address Mode for Peripheral Ch., or Source Address Mode for Standard Ch. group mask. */ #define EDMA_CH_DIR_gp 0 /* Memory Address Mode for Peripheral Ch., or Source Address Mode for Standard Ch. group position. */ #define EDMA_CH_DIR0_bm (1<<0) /* Memory Address Mode for Peripheral Ch., or Source Address Mode for Standard Ch. bit 0 mask. */ #define EDMA_CH_DIR0_bp 0 /* Memory Address Mode for Peripheral Ch., or Source Address Mode for Standard Ch. bit 0 position. */ #define EDMA_CH_DIR1_bm (1<<1) /* Memory Address Mode for Peripheral Ch., or Source Address Mode for Standard Ch. bit 1 mask. */ #define EDMA_CH_DIR1_bp 1 /* Memory Address Mode for Peripheral Ch., or Source Address Mode for Standard Ch. bit 1 position. */ #define EDMA_CH_DIR2_bm (1<<2) /* Memory Address Mode for Peripheral Ch., or Source Address Mode for Standard Ch. bit 2 mask. */ #define EDMA_CH_DIR2_bp 2 /* Memory Address Mode for Peripheral Ch., or Source Address Mode for Standard Ch. bit 2 position. */ /* EDMA_CH.DESTADDRCTRL bit masks and bit positions */ #define EDMA_CH_DESTRELOAD_gm 0x30 /* Destination Address Reload for Standard Channels Only. group mask. */ #define EDMA_CH_DESTRELOAD_gp 4 /* Destination Address Reload for Standard Channels Only. group position. */ #define EDMA_CH_DESTRELOAD0_bm (1<<4) /* Destination Address Reload for Standard Channels Only. bit 0 mask. */ #define EDMA_CH_DESTRELOAD0_bp 4 /* Destination Address Reload for Standard Channels Only. bit 0 position. */ #define EDMA_CH_DESTRELOAD1_bm (1<<5) /* Destination Address Reload for Standard Channels Only. bit 1 mask. */ #define EDMA_CH_DESTRELOAD1_bp 5 /* Destination Address Reload for Standard Channels Only. bit 1 position. */ #define EDMA_CH_DESTDIR_gm 0x07 /* Destination Address Mode for Standard Channels Only. group mask. */ #define EDMA_CH_DESTDIR_gp 0 /* Destination Address Mode for Standard Channels Only. group position. */ #define EDMA_CH_DESTDIR0_bm (1<<0) /* Destination Address Mode for Standard Channels Only. bit 0 mask. */ #define EDMA_CH_DESTDIR0_bp 0 /* Destination Address Mode for Standard Channels Only. bit 0 position. */ #define EDMA_CH_DESTDIR1_bm (1<<1) /* Destination Address Mode for Standard Channels Only. bit 1 mask. */ #define EDMA_CH_DESTDIR1_bp 1 /* Destination Address Mode for Standard Channels Only. bit 1 position. */ #define EDMA_CH_DESTDIR2_bm (1<<2) /* Destination Address Mode for Standard Channels Only. bit 2 mask. */ #define EDMA_CH_DESTDIR2_bp 2 /* Destination Address Mode for Standard Channels Only. bit 2 position. */ /* EDMA_CH.TRIGSRC bit masks and bit positions */ #define EDMA_CH_TRIGSRC_gm 0xFF /* Channel Trigger Source group mask. */ #define EDMA_CH_TRIGSRC_gp 0 /* Channel Trigger Source group position. */ #define EDMA_CH_TRIGSRC0_bm (1<<0) /* Channel Trigger Source bit 0 mask. */ #define EDMA_CH_TRIGSRC0_bp 0 /* Channel Trigger Source bit 0 position. */ #define EDMA_CH_TRIGSRC1_bm (1<<1) /* Channel Trigger Source bit 1 mask. */ #define EDMA_CH_TRIGSRC1_bp 1 /* Channel Trigger Source bit 1 position. */ #define EDMA_CH_TRIGSRC2_bm (1<<2) /* Channel Trigger Source bit 2 mask. */ #define EDMA_CH_TRIGSRC2_bp 2 /* Channel Trigger Source bit 2 position. */ #define EDMA_CH_TRIGSRC3_bm (1<<3) /* Channel Trigger Source bit 3 mask. */ #define EDMA_CH_TRIGSRC3_bp 3 /* Channel Trigger Source bit 3 position. */ #define EDMA_CH_TRIGSRC4_bm (1<<4) /* Channel Trigger Source bit 4 mask. */ #define EDMA_CH_TRIGSRC4_bp 4 /* Channel Trigger Source bit 4 position. */ #define EDMA_CH_TRIGSRC5_bm (1<<5) /* Channel Trigger Source bit 5 mask. */ #define EDMA_CH_TRIGSRC5_bp 5 /* Channel Trigger Source bit 5 position. */ #define EDMA_CH_TRIGSRC6_bm (1<<6) /* Channel Trigger Source bit 6 mask. */ #define EDMA_CH_TRIGSRC6_bp 6 /* Channel Trigger Source bit 6 position. */ #define EDMA_CH_TRIGSRC7_bm (1<<7) /* Channel Trigger Source bit 7 mask. */ #define EDMA_CH_TRIGSRC7_bp 7 /* Channel Trigger Source bit 7 position. */ /* EVSYS - Event System */ /* EVSYS.CH0MUX bit masks and bit positions */ #define EVSYS_CHMUX_gm 0xFF /* Event Channel 0 Multiplexer group mask. */ #define EVSYS_CHMUX_gp 0 /* Event Channel 0 Multiplexer group position. */ #define EVSYS_CHMUX0_bm (1<<0) /* Event Channel 0 Multiplexer bit 0 mask. */ #define EVSYS_CHMUX0_bp 0 /* Event Channel 0 Multiplexer bit 0 position. */ #define EVSYS_CHMUX1_bm (1<<1) /* Event Channel 0 Multiplexer bit 1 mask. */ #define EVSYS_CHMUX1_bp 1 /* Event Channel 0 Multiplexer bit 1 position. */ #define EVSYS_CHMUX2_bm (1<<2) /* Event Channel 0 Multiplexer bit 2 mask. */ #define EVSYS_CHMUX2_bp 2 /* Event Channel 0 Multiplexer bit 2 position. */ #define EVSYS_CHMUX3_bm (1<<3) /* Event Channel 0 Multiplexer bit 3 mask. */ #define EVSYS_CHMUX3_bp 3 /* Event Channel 0 Multiplexer bit 3 position. */ #define EVSYS_CHMUX4_bm (1<<4) /* Event Channel 0 Multiplexer bit 4 mask. */ #define EVSYS_CHMUX4_bp 4 /* Event Channel 0 Multiplexer bit 4 position. */ #define EVSYS_CHMUX5_bm (1<<5) /* Event Channel 0 Multiplexer bit 5 mask. */ #define EVSYS_CHMUX5_bp 5 /* Event Channel 0 Multiplexer bit 5 position. */ #define EVSYS_CHMUX6_bm (1<<6) /* Event Channel 0 Multiplexer bit 6 mask. */ #define EVSYS_CHMUX6_bp 6 /* Event Channel 0 Multiplexer bit 6 position. */ #define EVSYS_CHMUX7_bm (1<<7) /* Event Channel 0 Multiplexer bit 7 mask. */ #define EVSYS_CHMUX7_bp 7 /* Event Channel 0 Multiplexer bit 7 position. */ /* EVSYS.CH1MUX bit masks and bit positions */ /* EVSYS_CHMUX Predefined. */ /* EVSYS_CHMUX Predefined. */ /* EVSYS.CH2MUX bit masks and bit positions */ /* EVSYS_CHMUX Predefined. */ /* EVSYS_CHMUX Predefined. */ /* EVSYS.CH3MUX bit masks and bit positions */ /* EVSYS_CHMUX Predefined. */ /* EVSYS_CHMUX Predefined. */ /* EVSYS.CH4MUX bit masks and bit positions */ /* EVSYS_CHMUX Predefined. */ /* EVSYS_CHMUX Predefined. */ /* EVSYS.CH5MUX bit masks and bit positions */ /* EVSYS_CHMUX Predefined. */ /* EVSYS_CHMUX Predefined. */ /* EVSYS.CH6MUX bit masks and bit positions */ /* EVSYS_CHMUX Predefined. */ /* EVSYS_CHMUX Predefined. */ /* EVSYS.CH7MUX bit masks and bit positions */ /* EVSYS_CHMUX Predefined. */ /* EVSYS_CHMUX Predefined. */ /* EVSYS.CH0CTRL bit masks and bit positions */ #define EVSYS_ROTARY_bm 0x80 /* Rotary Decoder Enable bit mask. */ #define EVSYS_ROTARY_bp 7 /* Rotary Decoder Enable bit position. */ #define EVSYS_QDIRM_gm 0x60 /* Quadrature Decoder Index Recognition Mode group mask. */ #define EVSYS_QDIRM_gp 5 /* Quadrature Decoder Index Recognition Mode group position. */ #define EVSYS_QDIRM0_bm (1<<5) /* Quadrature Decoder Index Recognition Mode bit 0 mask. */ #define EVSYS_QDIRM0_bp 5 /* Quadrature Decoder Index Recognition Mode bit 0 position. */ #define EVSYS_QDIRM1_bm (1<<6) /* Quadrature Decoder Index Recognition Mode bit 1 mask. */ #define EVSYS_QDIRM1_bp 6 /* Quadrature Decoder Index Recognition Mode bit 1 position. */ #define EVSYS_QDIEN_bm 0x10 /* Quadrature Decoder Index Enable bit mask. */ #define EVSYS_QDIEN_bp 4 /* Quadrature Decoder Index Enable bit position. */ #define EVSYS_QDEN_bm 0x08 /* Quadrature Decoder Enable bit mask. */ #define EVSYS_QDEN_bp 3 /* Quadrature Decoder Enable bit position. */ #define EVSYS_DIGFILT_gm 0x07 /* Digital Filter group mask. */ #define EVSYS_DIGFILT_gp 0 /* Digital Filter group position. */ #define EVSYS_DIGFILT0_bm (1<<0) /* Digital Filter bit 0 mask. */ #define EVSYS_DIGFILT0_bp 0 /* Digital Filter bit 0 position. */ #define EVSYS_DIGFILT1_bm (1<<1) /* Digital Filter bit 1 mask. */ #define EVSYS_DIGFILT1_bp 1 /* Digital Filter bit 1 position. */ #define EVSYS_DIGFILT2_bm (1<<2) /* Digital Filter bit 2 mask. */ #define EVSYS_DIGFILT2_bp 2 /* Digital Filter bit 2 position. */ /* EVSYS.CH1CTRL bit masks and bit positions */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS.CH2CTRL bit masks and bit positions */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS.CH3CTRL bit masks and bit positions */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS.CH4CTRL bit masks and bit positions */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS.CH5CTRL bit masks and bit positions */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS.CH6CTRL bit masks and bit positions */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS.CH7CTRL bit masks and bit positions */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS_DIGFILT Predefined. */ /* EVSYS.DFCTRL bit masks and bit positions */ #define EVSYS_PRESCFILT_gm 0xF0 /* Prescaler Filter group mask. */ #define EVSYS_PRESCFILT_gp 4 /* Prescaler Filter group position. */ #define EVSYS_PRESCFILT0_bm (1<<4) /* Prescaler Filter bit 0 mask. */ #define EVSYS_PRESCFILT0_bp 4 /* Prescaler Filter bit 0 position. */ #define EVSYS_PRESCFILT1_bm (1<<5) /* Prescaler Filter bit 1 mask. */ #define EVSYS_PRESCFILT1_bp 5 /* Prescaler Filter bit 1 position. */ #define EVSYS_PRESCFILT2_bm (1<<6) /* Prescaler Filter bit 2 mask. */ #define EVSYS_PRESCFILT2_bp 6 /* Prescaler Filter bit 2 position. */ #define EVSYS_PRESCFILT3_bm (1<<7) /* Prescaler Filter bit 3 mask. */ #define EVSYS_PRESCFILT3_bp 7 /* Prescaler Filter bit 3 position. */ #define EVSYS_FILTSEL_bm 0x08 /* Prescaler Filter Select bit mask. */ #define EVSYS_FILTSEL_bp 3 /* Prescaler Filter Select bit position. */ #define EVSYS_PRESC_gm 0x07 /* Prescaler group mask. */ #define EVSYS_PRESC_gp 0 /* Prescaler group position. */ #define EVSYS_PRESC0_bm (1<<0) /* Prescaler bit 0 mask. */ #define EVSYS_PRESC0_bp 0 /* Prescaler bit 0 position. */ #define EVSYS_PRESC1_bm (1<<1) /* Prescaler bit 1 mask. */ #define EVSYS_PRESC1_bp 1 /* Prescaler bit 1 position. */ #define EVSYS_PRESC2_bm (1<<2) /* Prescaler bit 2 mask. */ #define EVSYS_PRESC2_bp 2 /* Prescaler bit 2 position. */ /* NVM - Non Volatile Memory Controller */ /* NVM.CMD bit masks and bit positions */ #define NVM_CMD_gm 0x7F /* Command group mask. */ #define NVM_CMD_gp 0 /* Command group position. */ #define NVM_CMD0_bm (1<<0) /* Command bit 0 mask. */ #define NVM_CMD0_bp 0 /* Command bit 0 position. */ #define NVM_CMD1_bm (1<<1) /* Command bit 1 mask. */ #define NVM_CMD1_bp 1 /* Command bit 1 position. */ #define NVM_CMD2_bm (1<<2) /* Command bit 2 mask. */ #define NVM_CMD2_bp 2 /* Command bit 2 position. */ #define NVM_CMD3_bm (1<<3) /* Command bit 3 mask. */ #define NVM_CMD3_bp 3 /* Command bit 3 position. */ #define NVM_CMD4_bm (1<<4) /* Command bit 4 mask. */ #define NVM_CMD4_bp 4 /* Command bit 4 position. */ #define NVM_CMD5_bm (1<<5) /* Command bit 5 mask. */ #define NVM_CMD5_bp 5 /* Command bit 5 position. */ #define NVM_CMD6_bm (1<<6) /* Command bit 6 mask. */ #define NVM_CMD6_bp 6 /* Command bit 6 position. */ /* NVM.CTRLA bit masks and bit positions */ #define NVM_CMDEX_bm 0x01 /* Command Execute bit mask. */ #define NVM_CMDEX_bp 0 /* Command Execute bit position. */ /* NVM.CTRLB bit masks and bit positions */ #define NVM_EPRM_bm 0x02 /* EEPROM Power Reduction Enable bit mask. */ #define NVM_EPRM_bp 1 /* EEPROM Power Reduction Enable bit position. */ #define NVM_SPMLOCK_bm 0x01 /* SPM Lock bit mask. */ #define NVM_SPMLOCK_bp 0 /* SPM Lock bit position. */ /* NVM.INTCTRL bit masks and bit positions */ #define NVM_SPMLVL_gm 0x0C /* SPM Interrupt Level group mask. */ #define NVM_SPMLVL_gp 2 /* SPM Interrupt Level group position. */ #define NVM_SPMLVL0_bm (1<<2) /* SPM Interrupt Level bit 0 mask. */ #define NVM_SPMLVL0_bp 2 /* SPM Interrupt Level bit 0 position. */ #define NVM_SPMLVL1_bm (1<<3) /* SPM Interrupt Level bit 1 mask. */ #define NVM_SPMLVL1_bp 3 /* SPM Interrupt Level bit 1 position. */ #define NVM_EELVL_gm 0x03 /* EEPROM Interrupt Level group mask. */ #define NVM_EELVL_gp 0 /* EEPROM Interrupt Level group position. */ #define NVM_EELVL0_bm (1<<0) /* EEPROM Interrupt Level bit 0 mask. */ #define NVM_EELVL0_bp 0 /* EEPROM Interrupt Level bit 0 position. */ #define NVM_EELVL1_bm (1<<1) /* EEPROM Interrupt Level bit 1 mask. */ #define NVM_EELVL1_bp 1 /* EEPROM Interrupt Level bit 1 position. */ /* NVM.STATUS bit masks and bit positions */ #define NVM_NVMBUSY_bm 0x80 /* Non-volatile Memory Busy bit mask. */ #define NVM_NVMBUSY_bp 7 /* Non-volatile Memory Busy bit position. */ #define NVM_FBUSY_bm 0x40 /* Flash Memory Busy bit mask. */ #define NVM_FBUSY_bp 6 /* Flash Memory Busy bit position. */ #define NVM_EELOAD_bm 0x02 /* EEPROM Page Buffer Active Loading bit mask. */ #define NVM_EELOAD_bp 1 /* EEPROM Page Buffer Active Loading bit position. */ #define NVM_FLOAD_bm 0x01 /* Flash Page Buffer Active Loading bit mask. */ #define NVM_FLOAD_bp 0 /* Flash Page Buffer Active Loading bit position. */ /* NVM.LOCKBITS bit masks and bit positions */ #define NVM_BLBB_gm 0xC0 /* Boot Lock Bits - Boot Section group mask. */ #define NVM_BLBB_gp 6 /* Boot Lock Bits - Boot Section group position. */ #define NVM_BLBB0_bm (1<<6) /* Boot Lock Bits - Boot Section bit 0 mask. */ #define NVM_BLBB0_bp 6 /* Boot Lock Bits - Boot Section bit 0 position. */ #define NVM_BLBB1_bm (1<<7) /* Boot Lock Bits - Boot Section bit 1 mask. */ #define NVM_BLBB1_bp 7 /* Boot Lock Bits - Boot Section bit 1 position. */ #define NVM_BLBA_gm 0x30 /* Boot Lock Bits - Application Section group mask. */ #define NVM_BLBA_gp 4 /* Boot Lock Bits - Application Section group position. */ #define NVM_BLBA0_bm (1<<4) /* Boot Lock Bits - Application Section bit 0 mask. */ #define NVM_BLBA0_bp 4 /* Boot Lock Bits - Application Section bit 0 position. */ #define NVM_BLBA1_bm (1<<5) /* Boot Lock Bits - Application Section bit 1 mask. */ #define NVM_BLBA1_bp 5 /* Boot Lock Bits - Application Section bit 1 position. */ #define NVM_BLBAT_gm 0x0C /* Boot Lock Bits - Application Table group mask. */ #define NVM_BLBAT_gp 2 /* Boot Lock Bits - Application Table group position. */ #define NVM_BLBAT0_bm (1<<2) /* Boot Lock Bits - Application Table bit 0 mask. */ #define NVM_BLBAT0_bp 2 /* Boot Lock Bits - Application Table bit 0 position. */ #define NVM_BLBAT1_bm (1<<3) /* Boot Lock Bits - Application Table bit 1 mask. */ #define NVM_BLBAT1_bp 3 /* Boot Lock Bits - Application Table bit 1 position. */ #define NVM_LB_gm 0x03 /* Lock Bits group mask. */ #define NVM_LB_gp 0 /* Lock Bits group position. */ #define NVM_LB0_bm (1<<0) /* Lock Bits bit 0 mask. */ #define NVM_LB0_bp 0 /* Lock Bits bit 0 position. */ #define NVM_LB1_bm (1<<1) /* Lock Bits bit 1 mask. */ #define NVM_LB1_bp 1 /* Lock Bits bit 1 position. */ /* ADC - Analog/Digital Converter */ /* ADC_CH.CTRL bit masks and bit positions */ #define ADC_CH_START_bm 0x80 /* Channel Start Conversion bit mask. */ #define ADC_CH_START_bp 7 /* Channel Start Conversion bit position. */ #define ADC_CH_GAIN_gm 0x1C /* Gain Factor group mask. */ #define ADC_CH_GAIN_gp 2 /* Gain Factor group position. */ #define ADC_CH_GAIN0_bm (1<<2) /* Gain Factor bit 0 mask. */ #define ADC_CH_GAIN0_bp 2 /* Gain Factor bit 0 position. */ #define ADC_CH_GAIN1_bm (1<<3) /* Gain Factor bit 1 mask. */ #define ADC_CH_GAIN1_bp 3 /* Gain Factor bit 1 position. */ #define ADC_CH_GAIN2_bm (1<<4) /* Gain Factor bit 2 mask. */ #define ADC_CH_GAIN2_bp 4 /* Gain Factor bit 2 position. */ #define ADC_CH_INPUTMODE_gm 0x03 /* Input Mode Select group mask. */ #define ADC_CH_INPUTMODE_gp 0 /* Input Mode Select group position. */ #define ADC_CH_INPUTMODE0_bm (1<<0) /* Input Mode Select bit 0 mask. */ #define ADC_CH_INPUTMODE0_bp 0 /* Input Mode Select bit 0 position. */ #define ADC_CH_INPUTMODE1_bm (1<<1) /* Input Mode Select bit 1 mask. */ #define ADC_CH_INPUTMODE1_bp 1 /* Input Mode Select bit 1 position. */ /* ADC_CH.MUXCTRL bit masks and bit positions */ #define ADC_CH_MUXPOS_gm 0x78 /* MUX selection on Positive ADC Input group mask. */ #define ADC_CH_MUXPOS_gp 3 /* MUX selection on Positive ADC Input group position. */ #define ADC_CH_MUXPOS0_bm (1<<3) /* MUX selection on Positive ADC Input bit 0 mask. */ #define ADC_CH_MUXPOS0_bp 3 /* MUX selection on Positive ADC Input bit 0 position. */ #define ADC_CH_MUXPOS1_bm (1<<4) /* MUX selection on Positive ADC Input bit 1 mask. */ #define ADC_CH_MUXPOS1_bp 4 /* MUX selection on Positive ADC Input bit 1 position. */ #define ADC_CH_MUXPOS2_bm (1<<5) /* MUX selection on Positive ADC Input bit 2 mask. */ #define ADC_CH_MUXPOS2_bp 5 /* MUX selection on Positive ADC Input bit 2 position. */ #define ADC_CH_MUXPOS3_bm (1<<6) /* MUX selection on Positive ADC Input bit 3 mask. */ #define ADC_CH_MUXPOS3_bp 6 /* MUX selection on Positive ADC Input bit 3 position. */ #define ADC_CH_MUXINT_gm 0x78 /* MUX selection on Internal ADC Input group mask. */ #define ADC_CH_MUXINT_gp 3 /* MUX selection on Internal ADC Input group position. */ #define ADC_CH_MUXINT0_bm (1<<3) /* MUX selection on Internal ADC Input bit 0 mask. */ #define ADC_CH_MUXINT0_bp 3 /* MUX selection on Internal ADC Input bit 0 position. */ #define ADC_CH_MUXINT1_bm (1<<4) /* MUX selection on Internal ADC Input bit 1 mask. */ #define ADC_CH_MUXINT1_bp 4 /* MUX selection on Internal ADC Input bit 1 position. */ #define ADC_CH_MUXINT2_bm (1<<5) /* MUX selection on Internal ADC Input bit 2 mask. */ #define ADC_CH_MUXINT2_bp 5 /* MUX selection on Internal ADC Input bit 2 position. */ #define ADC_CH_MUXINT3_bm (1<<6) /* MUX selection on Internal ADC Input bit 3 mask. */ #define ADC_CH_MUXINT3_bp 6 /* MUX selection on Internal ADC Input bit 3 position. */ #define ADC_CH_MUXNEG_gm 0x03 /* MUX selection on Negative ADC Input group mask. */ #define ADC_CH_MUXNEG_gp 0 /* MUX selection on Negative ADC Input group position. */ #define ADC_CH_MUXNEG0_bm (1<<0) /* MUX selection on Negative ADC Input bit 0 mask. */ #define ADC_CH_MUXNEG0_bp 0 /* MUX selection on Negative ADC Input bit 0 position. */ #define ADC_CH_MUXNEG1_bm (1<<1) /* MUX selection on Negative ADC Input bit 1 mask. */ #define ADC_CH_MUXNEG1_bp 1 /* MUX selection on Negative ADC Input bit 1 position. */ #define ADC_CH_MUXNEGL_gm 0x03 /* MUX selection on Negative ADC Input Gain on 4 LSB pins group mask. */ #define ADC_CH_MUXNEGL_gp 0 /* MUX selection on Negative ADC Input Gain on 4 LSB pins group position. */ #define ADC_CH_MUXNEGL0_bm (1<<0) /* MUX selection on Negative ADC Input Gain on 4 LSB pins bit 0 mask. */ #define ADC_CH_MUXNEGL0_bp 0 /* MUX selection on Negative ADC Input Gain on 4 LSB pins bit 0 position. */ #define ADC_CH_MUXNEGL1_bm (1<<1) /* MUX selection on Negative ADC Input Gain on 4 LSB pins bit 1 mask. */ #define ADC_CH_MUXNEGL1_bp 1 /* MUX selection on Negative ADC Input Gain on 4 LSB pins bit 1 position. */ #define ADC_CH_MUXNEGH_gm 0x03 /* MUX selection on Negative ADC Input Gain on 4 MSB pins group mask. */ #define ADC_CH_MUXNEGH_gp 0 /* MUX selection on Negative ADC Input Gain on 4 MSB pins group position. */ #define ADC_CH_MUXNEGH0_bm (1<<0) /* MUX selection on Negative ADC Input Gain on 4 MSB pins bit 0 mask. */ #define ADC_CH_MUXNEGH0_bp 0 /* MUX selection on Negative ADC Input Gain on 4 MSB pins bit 0 position. */ #define ADC_CH_MUXNEGH1_bm (1<<1) /* MUX selection on Negative ADC Input Gain on 4 MSB pins bit 1 mask. */ #define ADC_CH_MUXNEGH1_bp 1 /* MUX selection on Negative ADC Input Gain on 4 MSB pins bit 1 position. */ /* ADC_CH.INTCTRL bit masks and bit positions */ #define ADC_CH_INTMODE_gm 0x0C /* Interrupt Mode group mask. */ #define ADC_CH_INTMODE_gp 2 /* Interrupt Mode group position. */ #define ADC_CH_INTMODE0_bm (1<<2) /* Interrupt Mode bit 0 mask. */ #define ADC_CH_INTMODE0_bp 2 /* Interrupt Mode bit 0 position. */ #define ADC_CH_INTMODE1_bm (1<<3) /* Interrupt Mode bit 1 mask. */ #define ADC_CH_INTMODE1_bp 3 /* Interrupt Mode bit 1 position. */ #define ADC_CH_INTLVL_gm 0x03 /* Interrupt Level group mask. */ #define ADC_CH_INTLVL_gp 0 /* Interrupt Level group position. */ #define ADC_CH_INTLVL0_bm (1<<0) /* Interrupt Level bit 0 mask. */ #define ADC_CH_INTLVL0_bp 0 /* Interrupt Level bit 0 position. */ #define ADC_CH_INTLVL1_bm (1<<1) /* Interrupt Level bit 1 mask. */ #define ADC_CH_INTLVL1_bp 1 /* Interrupt Level bit 1 position. */ /* ADC_CH.INTFLAGS bit masks and bit positions */ #define ADC_CH_IF_bm 0x01 /* Channel Interrupt Flag bit mask. */ #define ADC_CH_IF_bp 0 /* Channel Interrupt Flag bit position. */ /* ADC_CH.SCAN bit masks and bit positions */ #define ADC_CH_INPUTOFFSET_gm 0xF0 /* Positive MUX Setting Offset group mask. */ #define ADC_CH_INPUTOFFSET_gp 4 /* Positive MUX Setting Offset group position. */ #define ADC_CH_INPUTOFFSET0_bm (1<<4) /* Positive MUX Setting Offset bit 0 mask. */ #define ADC_CH_INPUTOFFSET0_bp 4 /* Positive MUX Setting Offset bit 0 position. */ #define ADC_CH_INPUTOFFSET1_bm (1<<5) /* Positive MUX Setting Offset bit 1 mask. */ #define ADC_CH_INPUTOFFSET1_bp 5 /* Positive MUX Setting Offset bit 1 position. */ #define ADC_CH_INPUTOFFSET2_bm (1<<6) /* Positive MUX Setting Offset bit 2 mask. */ #define ADC_CH_INPUTOFFSET2_bp 6 /* Positive MUX Setting Offset bit 2 position. */ #define ADC_CH_INPUTOFFSET3_bm (1<<7) /* Positive MUX Setting Offset bit 3 mask. */ #define ADC_CH_INPUTOFFSET3_bp 7 /* Positive MUX Setting Offset bit 3 position. */ #define ADC_CH_INPUTSCAN_gm 0x0F /* Number of Channels Included in Scan group mask. */ #define ADC_CH_INPUTSCAN_gp 0 /* Number of Channels Included in Scan group position. */ #define ADC_CH_INPUTSCAN0_bm (1<<0) /* Number of Channels Included in Scan bit 0 mask. */ #define ADC_CH_INPUTSCAN0_bp 0 /* Number of Channels Included in Scan bit 0 position. */ #define ADC_CH_INPUTSCAN1_bm (1<<1) /* Number of Channels Included in Scan bit 1 mask. */ #define ADC_CH_INPUTSCAN1_bp 1 /* Number of Channels Included in Scan bit 1 position. */ #define ADC_CH_INPUTSCAN2_bm (1<<2) /* Number of Channels Included in Scan bit 2 mask. */ #define ADC_CH_INPUTSCAN2_bp 2 /* Number of Channels Included in Scan bit 2 position. */ #define ADC_CH_INPUTSCAN3_bm (1<<3) /* Number of Channels Included in Scan bit 3 mask. */ #define ADC_CH_INPUTSCAN3_bp 3 /* Number of Channels Included in Scan bit 3 position. */ /* ADC_CH.CORRCTRL bit masks and bit positions */ #define ADC_CH_CORREN_bm 0x01 /* Correction Enable bit mask. */ #define ADC_CH_CORREN_bp 0 /* Correction Enable bit position. */ /* ADC_CH.OFFSETCORR1 bit masks and bit positions */ #define ADC_CH_OFFSETCORR_gm 0x0F /* Offset Correction Byte 1 group mask. */ #define ADC_CH_OFFSETCORR_gp 0 /* Offset Correction Byte 1 group position. */ #define ADC_CH_OFFSETCORR0_bm (1<<0) /* Offset Correction Byte 1 bit 0 mask. */ #define ADC_CH_OFFSETCORR0_bp 0 /* Offset Correction Byte 1 bit 0 position. */ #define ADC_CH_OFFSETCORR1_bm (1<<1) /* Offset Correction Byte 1 bit 1 mask. */ #define ADC_CH_OFFSETCORR1_bp 1 /* Offset Correction Byte 1 bit 1 position. */ #define ADC_CH_OFFSETCORR2_bm (1<<2) /* Offset Correction Byte 1 bit 2 mask. */ #define ADC_CH_OFFSETCORR2_bp 2 /* Offset Correction Byte 1 bit 2 position. */ #define ADC_CH_OFFSETCORR3_bm (1<<3) /* Offset Correction Byte 1 bit 3 mask. */ #define ADC_CH_OFFSETCORR3_bp 3 /* Offset Correction Byte 1 bit 3 position. */ /* ADC_CH.GAINCORR1 bit masks and bit positions */ #define ADC_CH_GAINCORR_gm 0x0F /* Gain Correction Byte 1 group mask. */ #define ADC_CH_GAINCORR_gp 0 /* Gain Correction Byte 1 group position. */ #define ADC_CH_GAINCORR0_bm (1<<0) /* Gain Correction Byte 1 bit 0 mask. */ #define ADC_CH_GAINCORR0_bp 0 /* Gain Correction Byte 1 bit 0 position. */ #define ADC_CH_GAINCORR1_bm (1<<1) /* Gain Correction Byte 1 bit 1 mask. */ #define ADC_CH_GAINCORR1_bp 1 /* Gain Correction Byte 1 bit 1 position. */ #define ADC_CH_GAINCORR2_bm (1<<2) /* Gain Correction Byte 1 bit 2 mask. */ #define ADC_CH_GAINCORR2_bp 2 /* Gain Correction Byte 1 bit 2 position. */ #define ADC_CH_GAINCORR3_bm (1<<3) /* Gain Correction Byte 1 bit 3 mask. */ #define ADC_CH_GAINCORR3_bp 3 /* Gain Correction Byte 1 bit 3 position. */ /* ADC_CH.AVGCTRL bit masks and bit positions */ #define ADC_CH_RIGHTSHIFT_gm 0x70 /* Right Shift group mask. */ #define ADC_CH_RIGHTSHIFT_gp 4 /* Right Shift group position. */ #define ADC_CH_RIGHTSHIFT0_bm (1<<4) /* Right Shift bit 0 mask. */ #define ADC_CH_RIGHTSHIFT0_bp 4 /* Right Shift bit 0 position. */ #define ADC_CH_RIGHTSHIFT1_bm (1<<5) /* Right Shift bit 1 mask. */ #define ADC_CH_RIGHTSHIFT1_bp 5 /* Right Shift bit 1 position. */ #define ADC_CH_RIGHTSHIFT2_bm (1<<6) /* Right Shift bit 2 mask. */ #define ADC_CH_RIGHTSHIFT2_bp 6 /* Right Shift bit 2 position. */ #define ADC_CH_SAMPNUM_gm 0x0F /* Averaged Number of Samples group mask. */ #define ADC_CH_SAMPNUM_gp 0 /* Averaged Number of Samples group position. */ #define ADC_CH_SAMPNUM0_bm (1<<0) /* Averaged Number of Samples bit 0 mask. */ #define ADC_CH_SAMPNUM0_bp 0 /* Averaged Number of Samples bit 0 position. */ #define ADC_CH_SAMPNUM1_bm (1<<1) /* Averaged Number of Samples bit 1 mask. */ #define ADC_CH_SAMPNUM1_bp 1 /* Averaged Number of Samples bit 1 position. */ #define ADC_CH_SAMPNUM2_bm (1<<2) /* Averaged Number of Samples bit 2 mask. */ #define ADC_CH_SAMPNUM2_bp 2 /* Averaged Number of Samples bit 2 position. */ #define ADC_CH_SAMPNUM3_bm (1<<3) /* Averaged Number of Samples bit 3 mask. */ #define ADC_CH_SAMPNUM3_bp 3 /* Averaged Number of Samples bit 3 position. */ /* ADC.CTRLA bit masks and bit positions */ #define ADC_START_bm 0x04 /* Start Conversion bit mask. */ #define ADC_START_bp 2 /* Start Conversion bit position. */ #define ADC_FLUSH_bm 0x02 /* ADC Flush bit mask. */ #define ADC_FLUSH_bp 1 /* ADC Flush bit position. */ #define ADC_ENABLE_bm 0x01 /* Enable ADC bit mask. */ #define ADC_ENABLE_bp 0 /* Enable ADC bit position. */ /* ADC.CTRLB bit masks and bit positions */ #define ADC_CURRLIMIT_gm 0x60 /* Current Limitation group mask. */ #define ADC_CURRLIMIT_gp 5 /* Current Limitation group position. */ #define ADC_CURRLIMIT0_bm (1<<5) /* Current Limitation bit 0 mask. */ #define ADC_CURRLIMIT0_bp 5 /* Current Limitation bit 0 position. */ #define ADC_CURRLIMIT1_bm (1<<6) /* Current Limitation bit 1 mask. */ #define ADC_CURRLIMIT1_bp 6 /* Current Limitation bit 1 position. */ #define ADC_CONMODE_bm 0x10 /* Conversion Mode bit mask. */ #define ADC_CONMODE_bp 4 /* Conversion Mode bit position. */ #define ADC_FREERUN_bm 0x08 /* Free Running Mode Enable bit mask. */ #define ADC_FREERUN_bp 3 /* Free Running Mode Enable bit position. */ #define ADC_RESOLUTION_gm 0x06 /* Result Resolution group mask. */ #define ADC_RESOLUTION_gp 1 /* Result Resolution group position. */ #define ADC_RESOLUTION0_bm (1<<1) /* Result Resolution bit 0 mask. */ #define ADC_RESOLUTION0_bp 1 /* Result Resolution bit 0 position. */ #define ADC_RESOLUTION1_bm (1<<2) /* Result Resolution bit 1 mask. */ #define ADC_RESOLUTION1_bp 2 /* Result Resolution bit 1 position. */ /* ADC.REFCTRL bit masks and bit positions */ #define ADC_REFSEL_gm 0x70 /* Reference Selection group mask. */ #define ADC_REFSEL_gp 4 /* Reference Selection group position. */ #define ADC_REFSEL0_bm (1<<4) /* Reference Selection bit 0 mask. */ #define ADC_REFSEL0_bp 4 /* Reference Selection bit 0 position. */ #define ADC_REFSEL1_bm (1<<5) /* Reference Selection bit 1 mask. */ #define ADC_REFSEL1_bp 5 /* Reference Selection bit 1 position. */ #define ADC_REFSEL2_bm (1<<6) /* Reference Selection bit 2 mask. */ #define ADC_REFSEL2_bp 6 /* Reference Selection bit 2 position. */ #define ADC_BANDGAP_bm 0x02 /* Bandgap enable bit mask. */ #define ADC_BANDGAP_bp 1 /* Bandgap enable bit position. */ #define ADC_TEMPREF_bm 0x01 /* Temperature Reference Enable bit mask. */ #define ADC_TEMPREF_bp 0 /* Temperature Reference Enable bit position. */ /* ADC.EVCTRL bit masks and bit positions */ #define ADC_EVSEL_gm 0x38 /* Event Input Select group mask. */ #define ADC_EVSEL_gp 3 /* Event Input Select group position. */ #define ADC_EVSEL0_bm (1<<3) /* Event Input Select bit 0 mask. */ #define ADC_EVSEL0_bp 3 /* Event Input Select bit 0 position. */ #define ADC_EVSEL1_bm (1<<4) /* Event Input Select bit 1 mask. */ #define ADC_EVSEL1_bp 4 /* Event Input Select bit 1 position. */ #define ADC_EVSEL2_bm (1<<5) /* Event Input Select bit 2 mask. */ #define ADC_EVSEL2_bp 5 /* Event Input Select bit 2 position. */ #define ADC_EVACT_gm 0x07 /* Event Action Select group mask. */ #define ADC_EVACT_gp 0 /* Event Action Select group position. */ #define ADC_EVACT0_bm (1<<0) /* Event Action Select bit 0 mask. */ #define ADC_EVACT0_bp 0 /* Event Action Select bit 0 position. */ #define ADC_EVACT1_bm (1<<1) /* Event Action Select bit 1 mask. */ #define ADC_EVACT1_bp 1 /* Event Action Select bit 1 position. */ #define ADC_EVACT2_bm (1<<2) /* Event Action Select bit 2 mask. */ #define ADC_EVACT2_bp 2 /* Event Action Select bit 2 position. */ /* ADC.PRESCALER bit masks and bit positions */ #define ADC_PRESCALER_gm 0x07 /* Clock Prescaler Selection group mask. */ #define ADC_PRESCALER_gp 0 /* Clock Prescaler Selection group position. */ #define ADC_PRESCALER0_bm (1<<0) /* Clock Prescaler Selection bit 0 mask. */ #define ADC_PRESCALER0_bp 0 /* Clock Prescaler Selection bit 0 position. */ #define ADC_PRESCALER1_bm (1<<1) /* Clock Prescaler Selection bit 1 mask. */ #define ADC_PRESCALER1_bp 1 /* Clock Prescaler Selection bit 1 position. */ #define ADC_PRESCALER2_bm (1<<2) /* Clock Prescaler Selection bit 2 mask. */ #define ADC_PRESCALER2_bp 2 /* Clock Prescaler Selection bit 2 position. */ /* ADC.INTFLAGS bit masks and bit positions */ #define ADC_CH0IF_bm 0x01 /* Channel 0 Interrupt Flag bit mask. */ #define ADC_CH0IF_bp 0 /* Channel 0 Interrupt Flag bit position. */ /* ADC.SAMPCTRL bit masks and bit positions */ #define ADC_SAMPVAL_gm 0x3F /* Sampling time control register group mask. */ #define ADC_SAMPVAL_gp 0 /* Sampling time control register group position. */ #define ADC_SAMPVAL0_bm (1<<0) /* Sampling time control register bit 0 mask. */ #define ADC_SAMPVAL0_bp 0 /* Sampling time control register bit 0 position. */ #define ADC_SAMPVAL1_bm (1<<1) /* Sampling time control register bit 1 mask. */ #define ADC_SAMPVAL1_bp 1 /* Sampling time control register bit 1 position. */ #define ADC_SAMPVAL2_bm (1<<2) /* Sampling time control register bit 2 mask. */ #define ADC_SAMPVAL2_bp 2 /* Sampling time control register bit 2 position. */ #define ADC_SAMPVAL3_bm (1<<3) /* Sampling time control register bit 3 mask. */ #define ADC_SAMPVAL3_bp 3 /* Sampling time control register bit 3 position. */ #define ADC_SAMPVAL4_bm (1<<4) /* Sampling time control register bit 4 mask. */ #define ADC_SAMPVAL4_bp 4 /* Sampling time control register bit 4 position. */ #define ADC_SAMPVAL5_bm (1<<5) /* Sampling time control register bit 5 mask. */ #define ADC_SAMPVAL5_bp 5 /* Sampling time control register bit 5 position. */ /* DAC - Digital/Analog Converter */ /* DAC.CTRLA bit masks and bit positions */ #define DAC_IDOEN_bm 0x10 /* Internal Output Enable bit mask. */ #define DAC_IDOEN_bp 4 /* Internal Output Enable bit position. */ #define DAC_CH1EN_bm 0x08 /* Channel 1 Output Enable bit mask. */ #define DAC_CH1EN_bp 3 /* Channel 1 Output Enable bit position. */ #define DAC_CH0EN_bm 0x04 /* Channel 0 Output Enable bit mask. */ #define DAC_CH0EN_bp 2 /* Channel 0 Output Enable bit position. */ #define DAC_LPMODE_bm 0x02 /* Low Power Mode bit mask. */ #define DAC_LPMODE_bp 1 /* Low Power Mode bit position. */ #define DAC_ENABLE_bm 0x01 /* Enable bit mask. */ #define DAC_ENABLE_bp 0 /* Enable bit position. */ /* DAC.CTRLB bit masks and bit positions */ #define DAC_CHSEL_gm 0x60 /* Channel Select group mask. */ #define DAC_CHSEL_gp 5 /* Channel Select group position. */ #define DAC_CHSEL0_bm (1<<5) /* Channel Select bit 0 mask. */ #define DAC_CHSEL0_bp 5 /* Channel Select bit 0 position. */ #define DAC_CHSEL1_bm (1<<6) /* Channel Select bit 1 mask. */ #define DAC_CHSEL1_bp 6 /* Channel Select bit 1 position. */ #define DAC_CH1TRIG_bm 0x02 /* Channel 1 Event Trig Enable bit mask. */ #define DAC_CH1TRIG_bp 1 /* Channel 1 Event Trig Enable bit position. */ #define DAC_CH0TRIG_bm 0x01 /* Channel 0 Event Trig Enable bit mask. */ #define DAC_CH0TRIG_bp 0 /* Channel 0 Event Trig Enable bit position. */ /* DAC.CTRLC bit masks and bit positions */ #define DAC_REFSEL_gm 0x18 /* Reference Select group mask. */ #define DAC_REFSEL_gp 3 /* Reference Select group position. */ #define DAC_REFSEL0_bm (1<<3) /* Reference Select bit 0 mask. */ #define DAC_REFSEL0_bp 3 /* Reference Select bit 0 position. */ #define DAC_REFSEL1_bm (1<<4) /* Reference Select bit 1 mask. */ #define DAC_REFSEL1_bp 4 /* Reference Select bit 1 position. */ #define DAC_LEFTADJ_bm 0x01 /* Left-adjust Result bit mask. */ #define DAC_LEFTADJ_bp 0 /* Left-adjust Result bit position. */ /* DAC.EVCTRL bit masks and bit positions */ #define DAC_EVSPLIT_bm 0x08 /* Separate Event Channel Input for Channel 1 bit mask. */ #define DAC_EVSPLIT_bp 3 /* Separate Event Channel Input for Channel 1 bit position. */ #define DAC_EVSEL_gm 0x07 /* Event Input Selection group mask. */ #define DAC_EVSEL_gp 0 /* Event Input Selection group position. */ #define DAC_EVSEL0_bm (1<<0) /* Event Input Selection bit 0 mask. */ #define DAC_EVSEL0_bp 0 /* Event Input Selection bit 0 position. */ #define DAC_EVSEL1_bm (1<<1) /* Event Input Selection bit 1 mask. */ #define DAC_EVSEL1_bp 1 /* Event Input Selection bit 1 position. */ #define DAC_EVSEL2_bm (1<<2) /* Event Input Selection bit 2 mask. */ #define DAC_EVSEL2_bp 2 /* Event Input Selection bit 2 position. */ /* DAC.STATUS bit masks and bit positions */ #define DAC_CH1DRE_bm 0x02 /* Channel 1 Data Register Empty bit mask. */ #define DAC_CH1DRE_bp 1 /* Channel 1 Data Register Empty bit position. */ #define DAC_CH0DRE_bm 0x01 /* Channel 0 Data Register Empty bit mask. */ #define DAC_CH0DRE_bp 0 /* Channel 0 Data Register Empty bit position. */ /* DAC.CH0GAINCAL bit masks and bit positions */ #define DAC_CH0GAINCAL_gm 0x7F /* Gain Calibration group mask. */ #define DAC_CH0GAINCAL_gp 0 /* Gain Calibration group position. */ #define DAC_CH0GAINCAL0_bm (1<<0) /* Gain Calibration bit 0 mask. */ #define DAC_CH0GAINCAL0_bp 0 /* Gain Calibration bit 0 position. */ #define DAC_CH0GAINCAL1_bm (1<<1) /* Gain Calibration bit 1 mask. */ #define DAC_CH0GAINCAL1_bp 1 /* Gain Calibration bit 1 position. */ #define DAC_CH0GAINCAL2_bm (1<<2) /* Gain Calibration bit 2 mask. */ #define DAC_CH0GAINCAL2_bp 2 /* Gain Calibration bit 2 position. */ #define DAC_CH0GAINCAL3_bm (1<<3) /* Gain Calibration bit 3 mask. */ #define DAC_CH0GAINCAL3_bp 3 /* Gain Calibration bit 3 position. */ #define DAC_CH0GAINCAL4_bm (1<<4) /* Gain Calibration bit 4 mask. */ #define DAC_CH0GAINCAL4_bp 4 /* Gain Calibration bit 4 position. */ #define DAC_CH0GAINCAL5_bm (1<<5) /* Gain Calibration bit 5 mask. */ #define DAC_CH0GAINCAL5_bp 5 /* Gain Calibration bit 5 position. */ #define DAC_CH0GAINCAL6_bm (1<<6) /* Gain Calibration bit 6 mask. */ #define DAC_CH0GAINCAL6_bp 6 /* Gain Calibration bit 6 position. */ /* DAC.CH0OFFSETCAL bit masks and bit positions */ #define DAC_CH0OFFSETCAL_gm 0x7F /* Offset Calibration group mask. */ #define DAC_CH0OFFSETCAL_gp 0 /* Offset Calibration group position. */ #define DAC_CH0OFFSETCAL0_bm (1<<0) /* Offset Calibration bit 0 mask. */ #define DAC_CH0OFFSETCAL0_bp 0 /* Offset Calibration bit 0 position. */ #define DAC_CH0OFFSETCAL1_bm (1<<1) /* Offset Calibration bit 1 mask. */ #define DAC_CH0OFFSETCAL1_bp 1 /* Offset Calibration bit 1 position. */ #define DAC_CH0OFFSETCAL2_bm (1<<2) /* Offset Calibration bit 2 mask. */ #define DAC_CH0OFFSETCAL2_bp 2 /* Offset Calibration bit 2 position. */ #define DAC_CH0OFFSETCAL3_bm (1<<3) /* Offset Calibration bit 3 mask. */ #define DAC_CH0OFFSETCAL3_bp 3 /* Offset Calibration bit 3 position. */ #define DAC_CH0OFFSETCAL4_bm (1<<4) /* Offset Calibration bit 4 mask. */ #define DAC_CH0OFFSETCAL4_bp 4 /* Offset Calibration bit 4 position. */ #define DAC_CH0OFFSETCAL5_bm (1<<5) /* Offset Calibration bit 5 mask. */ #define DAC_CH0OFFSETCAL5_bp 5 /* Offset Calibration bit 5 position. */ #define DAC_CH0OFFSETCAL6_bm (1<<6) /* Offset Calibration bit 6 mask. */ #define DAC_CH0OFFSETCAL6_bp 6 /* Offset Calibration bit 6 position. */ /* DAC.CH1GAINCAL bit masks and bit positions */ #define DAC_CH1GAINCAL_gm 0x7F /* Gain Calibration group mask. */ #define DAC_CH1GAINCAL_gp 0 /* Gain Calibration group position. */ #define DAC_CH1GAINCAL0_bm (1<<0) /* Gain Calibration bit 0 mask. */ #define DAC_CH1GAINCAL0_bp 0 /* Gain Calibration bit 0 position. */ #define DAC_CH1GAINCAL1_bm (1<<1) /* Gain Calibration bit 1 mask. */ #define DAC_CH1GAINCAL1_bp 1 /* Gain Calibration bit 1 position. */ #define DAC_CH1GAINCAL2_bm (1<<2) /* Gain Calibration bit 2 mask. */ #define DAC_CH1GAINCAL2_bp 2 /* Gain Calibration bit 2 position. */ #define DAC_CH1GAINCAL3_bm (1<<3) /* Gain Calibration bit 3 mask. */ #define DAC_CH1GAINCAL3_bp 3 /* Gain Calibration bit 3 position. */ #define DAC_CH1GAINCAL4_bm (1<<4) /* Gain Calibration bit 4 mask. */ #define DAC_CH1GAINCAL4_bp 4 /* Gain Calibration bit 4 position. */ #define DAC_CH1GAINCAL5_bm (1<<5) /* Gain Calibration bit 5 mask. */ #define DAC_CH1GAINCAL5_bp 5 /* Gain Calibration bit 5 position. */ #define DAC_CH1GAINCAL6_bm (1<<6) /* Gain Calibration bit 6 mask. */ #define DAC_CH1GAINCAL6_bp 6 /* Gain Calibration bit 6 position. */ /* DAC.CH1OFFSETCAL bit masks and bit positions */ #define DAC_CH1OFFSETCAL_gm 0x7F /* Offset Calibration group mask. */ #define DAC_CH1OFFSETCAL_gp 0 /* Offset Calibration group position. */ #define DAC_CH1OFFSETCAL0_bm (1<<0) /* Offset Calibration bit 0 mask. */ #define DAC_CH1OFFSETCAL0_bp 0 /* Offset Calibration bit 0 position. */ #define DAC_CH1OFFSETCAL1_bm (1<<1) /* Offset Calibration bit 1 mask. */ #define DAC_CH1OFFSETCAL1_bp 1 /* Offset Calibration bit 1 position. */ #define DAC_CH1OFFSETCAL2_bm (1<<2) /* Offset Calibration bit 2 mask. */ #define DAC_CH1OFFSETCAL2_bp 2 /* Offset Calibration bit 2 position. */ #define DAC_CH1OFFSETCAL3_bm (1<<3) /* Offset Calibration bit 3 mask. */ #define DAC_CH1OFFSETCAL3_bp 3 /* Offset Calibration bit 3 position. */ #define DAC_CH1OFFSETCAL4_bm (1<<4) /* Offset Calibration bit 4 mask. */ #define DAC_CH1OFFSETCAL4_bp 4 /* Offset Calibration bit 4 position. */ #define DAC_CH1OFFSETCAL5_bm (1<<5) /* Offset Calibration bit 5 mask. */ #define DAC_CH1OFFSETCAL5_bp 5 /* Offset Calibration bit 5 position. */ #define DAC_CH1OFFSETCAL6_bm (1<<6) /* Offset Calibration bit 6 mask. */ #define DAC_CH1OFFSETCAL6_bp 6 /* Offset Calibration bit 6 position. */ /* AC - Analog Comparator */ /* AC.AC0CTRL bit masks and bit positions */ #define AC_INTMODE_gm 0xC0 /* Interrupt Mode group mask. */ #define AC_INTMODE_gp 6 /* Interrupt Mode group position. */ #define AC_INTMODE0_bm (1<<6) /* Interrupt Mode bit 0 mask. */ #define AC_INTMODE0_bp 6 /* Interrupt Mode bit 0 position. */ #define AC_INTMODE1_bm (1<<7) /* Interrupt Mode bit 1 mask. */ #define AC_INTMODE1_bp 7 /* Interrupt Mode bit 1 position. */ #define AC_INTLVL_gm 0x30 /* Interrupt Level group mask. */ #define AC_INTLVL_gp 4 /* Interrupt Level group position. */ #define AC_INTLVL0_bm (1<<4) /* Interrupt Level bit 0 mask. */ #define AC_INTLVL0_bp 4 /* Interrupt Level bit 0 position. */ #define AC_INTLVL1_bm (1<<5) /* Interrupt Level bit 1 mask. */ #define AC_INTLVL1_bp 5 /* Interrupt Level bit 1 position. */ #define AC_HYSMODE_gm 0x06 /* Hysteresis Mode group mask. */ #define AC_HYSMODE_gp 1 /* Hysteresis Mode group position. */ #define AC_HYSMODE0_bm (1<<1) /* Hysteresis Mode bit 0 mask. */ #define AC_HYSMODE0_bp 1 /* Hysteresis Mode bit 0 position. */ #define AC_HYSMODE1_bm (1<<2) /* Hysteresis Mode bit 1 mask. */ #define AC_HYSMODE1_bp 2 /* Hysteresis Mode bit 1 position. */ #define AC_ENABLE_bm 0x01 /* Enable bit mask. */ #define AC_ENABLE_bp 0 /* Enable bit position. */ /* AC.AC1CTRL bit masks and bit positions */ /* AC_INTMODE Predefined. */ /* AC_INTMODE Predefined. */ /* AC_INTLVL Predefined. */ /* AC_INTLVL Predefined. */ /* AC_HYSMODE Predefined. */ /* AC_HYSMODE Predefined. */ /* AC_ENABLE Predefined. */ /* AC_ENABLE Predefined. */ /* AC.AC0MUXCTRL bit masks and bit positions */ #define AC_MUXPOS_gm 0x38 /* MUX Positive Input group mask. */ #define AC_MUXPOS_gp 3 /* MUX Positive Input group position. */ #define AC_MUXPOS0_bm (1<<3) /* MUX Positive Input bit 0 mask. */ #define AC_MUXPOS0_bp 3 /* MUX Positive Input bit 0 position. */ #define AC_MUXPOS1_bm (1<<4) /* MUX Positive Input bit 1 mask. */ #define AC_MUXPOS1_bp 4 /* MUX Positive Input bit 1 position. */ #define AC_MUXPOS2_bm (1<<5) /* MUX Positive Input bit 2 mask. */ #define AC_MUXPOS2_bp 5 /* MUX Positive Input bit 2 position. */ #define AC_MUXNEG_gm 0x07 /* MUX Negative Input group mask. */ #define AC_MUXNEG_gp 0 /* MUX Negative Input group position. */ #define AC_MUXNEG0_bm (1<<0) /* MUX Negative Input bit 0 mask. */ #define AC_MUXNEG0_bp 0 /* MUX Negative Input bit 0 position. */ #define AC_MUXNEG1_bm (1<<1) /* MUX Negative Input bit 1 mask. */ #define AC_MUXNEG1_bp 1 /* MUX Negative Input bit 1 position. */ #define AC_MUXNEG2_bm (1<<2) /* MUX Negative Input bit 2 mask. */ #define AC_MUXNEG2_bp 2 /* MUX Negative Input bit 2 position. */ /* AC.AC1MUXCTRL bit masks and bit positions */ /* AC_MUXPOS Predefined. */ /* AC_MUXPOS Predefined. */ /* AC_MUXNEG Predefined. */ /* AC_MUXNEG Predefined. */ /* AC.CTRLA bit masks and bit positions */ #define AC_AC1INVEN_bm 0x08 /* Analog Comparator 1 Output Invert Enable bit mask. */ #define AC_AC1INVEN_bp 3 /* Analog Comparator 1 Output Invert Enable bit position. */ #define AC_AC0INVEN_bm 0x04 /* Analog Comparator 0 Output Invert Enable bit mask. */ #define AC_AC0INVEN_bp 2 /* Analog Comparator 0 Output Invert Enable bit position. */ #define AC_AC1OUT_bm 0x02 /* Analog Comparator 1 Output Enable bit mask. */ #define AC_AC1OUT_bp 1 /* Analog Comparator 1 Output Enable bit position. */ #define AC_AC0OUT_bm 0x01 /* Analog Comparator 0 Output Enable bit mask. */ #define AC_AC0OUT_bp 0 /* Analog Comparator 0 Output Enable bit position. */ /* AC.CTRLB bit masks and bit positions */ #define AC_SCALEFAC_gm 0x3F /* VCC Voltage Scaler Factor group mask. */ #define AC_SCALEFAC_gp 0 /* VCC Voltage Scaler Factor group position. */ #define AC_SCALEFAC0_bm (1<<0) /* VCC Voltage Scaler Factor bit 0 mask. */ #define AC_SCALEFAC0_bp 0 /* VCC Voltage Scaler Factor bit 0 position. */ #define AC_SCALEFAC1_bm (1<<1) /* VCC Voltage Scaler Factor bit 1 mask. */ #define AC_SCALEFAC1_bp 1 /* VCC Voltage Scaler Factor bit 1 position. */ #define AC_SCALEFAC2_bm (1<<2) /* VCC Voltage Scaler Factor bit 2 mask. */ #define AC_SCALEFAC2_bp 2 /* VCC Voltage Scaler Factor bit 2 position. */ #define AC_SCALEFAC3_bm (1<<3) /* VCC Voltage Scaler Factor bit 3 mask. */ #define AC_SCALEFAC3_bp 3 /* VCC Voltage Scaler Factor bit 3 position. */ #define AC_SCALEFAC4_bm (1<<4) /* VCC Voltage Scaler Factor bit 4 mask. */ #define AC_SCALEFAC4_bp 4 /* VCC Voltage Scaler Factor bit 4 position. */ #define AC_SCALEFAC5_bm (1<<5) /* VCC Voltage Scaler Factor bit 5 mask. */ #define AC_SCALEFAC5_bp 5 /* VCC Voltage Scaler Factor bit 5 position. */ /* AC.WINCTRL bit masks and bit positions */ #define AC_WEN_bm 0x10 /* Window Mode Enable bit mask. */ #define AC_WEN_bp 4 /* Window Mode Enable bit position. */ #define AC_WINTMODE_gm 0x0C /* Window Interrupt Mode group mask. */ #define AC_WINTMODE_gp 2 /* Window Interrupt Mode group position. */ #define AC_WINTMODE0_bm (1<<2) /* Window Interrupt Mode bit 0 mask. */ #define AC_WINTMODE0_bp 2 /* Window Interrupt Mode bit 0 position. */ #define AC_WINTMODE1_bm (1<<3) /* Window Interrupt Mode bit 1 mask. */ #define AC_WINTMODE1_bp 3 /* Window Interrupt Mode bit 1 position. */ #define AC_WINTLVL_gm 0x03 /* Window Interrupt Level group mask. */ #define AC_WINTLVL_gp 0 /* Window Interrupt Level group position. */ #define AC_WINTLVL0_bm (1<<0) /* Window Interrupt Level bit 0 mask. */ #define AC_WINTLVL0_bp 0 /* Window Interrupt Level bit 0 position. */ #define AC_WINTLVL1_bm (1<<1) /* Window Interrupt Level bit 1 mask. */ #define AC_WINTLVL1_bp 1 /* Window Interrupt Level bit 1 position. */ /* AC.STATUS bit masks and bit positions */ #define AC_WSTATE_gm 0xC0 /* Window Mode State group mask. */ #define AC_WSTATE_gp 6 /* Window Mode State group position. */ #define AC_WSTATE0_bm (1<<6) /* Window Mode State bit 0 mask. */ #define AC_WSTATE0_bp 6 /* Window Mode State bit 0 position. */ #define AC_WSTATE1_bm (1<<7) /* Window Mode State bit 1 mask. */ #define AC_WSTATE1_bp 7 /* Window Mode State bit 1 position. */ #define AC_AC1STATE_bm 0x20 /* Analog Comparator 1 State bit mask. */ #define AC_AC1STATE_bp 5 /* Analog Comparator 1 State bit position. */ #define AC_AC0STATE_bm 0x10 /* Analog Comparator 0 State bit mask. */ #define AC_AC0STATE_bp 4 /* Analog Comparator 0 State bit position. */ #define AC_WIF_bm 0x04 /* Window Mode Interrupt Flag bit mask. */ #define AC_WIF_bp 2 /* Window Mode Interrupt Flag bit position. */ #define AC_AC1IF_bm 0x02 /* Analog Comparator 1 Interrupt Flag bit mask. */ #define AC_AC1IF_bp 1 /* Analog Comparator 1 Interrupt Flag bit position. */ #define AC_AC0IF_bm 0x01 /* Analog Comparator 0 Interrupt Flag bit mask. */ #define AC_AC0IF_bp 0 /* Analog Comparator 0 Interrupt Flag bit position. */ /* AC.CURRCTRL bit masks and bit positions */ #define AC_CURREN_bm 0x80 /* Current Source Enable bit mask. */ #define AC_CURREN_bp 7 /* Current Source Enable bit position. */ #define AC_CURRMODE_bm 0x40 /* Current Mode bit mask. */ #define AC_CURRMODE_bp 6 /* Current Mode bit position. */ #define AC_AC1CURR_bm 0x02 /* Analog Comparator 1 current source output bit mask. */ #define AC_AC1CURR_bp 1 /* Analog Comparator 1 current source output bit position. */ #define AC_AC0CURR_bm 0x01 /* Analog Comparator 0 current source output bit mask. */ #define AC_AC0CURR_bp 0 /* Analog Comparator 0 current source output bit position. */ /* AC.CURRCALIB bit masks and bit positions */ #define AC_CALIB_gm 0x0F /* Current Source Calibration group mask. */ #define AC_CALIB_gp 0 /* Current Source Calibration group position. */ #define AC_CALIB0_bm (1<<0) /* Current Source Calibration bit 0 mask. */ #define AC_CALIB0_bp 0 /* Current Source Calibration bit 0 position. */ #define AC_CALIB1_bm (1<<1) /* Current Source Calibration bit 1 mask. */ #define AC_CALIB1_bp 1 /* Current Source Calibration bit 1 position. */ #define AC_CALIB2_bm (1<<2) /* Current Source Calibration bit 2 mask. */ #define AC_CALIB2_bp 2 /* Current Source Calibration bit 2 position. */ #define AC_CALIB3_bm (1<<3) /* Current Source Calibration bit 3 mask. */ #define AC_CALIB3_bp 3 /* Current Source Calibration bit 3 position. */ /* RTC - Real-Time Clounter */ /* RTC.CTRL bit masks and bit positions */ #define RTC_CORREN_bm 0x08 /* Correction Enable bit mask. */ #define RTC_CORREN_bp 3 /* Correction Enable bit position. */ #define RTC_PRESCALER_gm 0x07 /* Prescaling Factor group mask. */ #define RTC_PRESCALER_gp 0 /* Prescaling Factor group position. */ #define RTC_PRESCALER0_bm (1<<0) /* Prescaling Factor bit 0 mask. */ #define RTC_PRESCALER0_bp 0 /* Prescaling Factor bit 0 position. */ #define RTC_PRESCALER1_bm (1<<1) /* Prescaling Factor bit 1 mask. */ #define RTC_PRESCALER1_bp 1 /* Prescaling Factor bit 1 position. */ #define RTC_PRESCALER2_bm (1<<2) /* Prescaling Factor bit 2 mask. */ #define RTC_PRESCALER2_bp 2 /* Prescaling Factor bit 2 position. */ /* RTC.STATUS bit masks and bit positions */ #define RTC_SYNCBUSY_bm 0x01 /* Synchronization Busy Flag bit mask. */ #define RTC_SYNCBUSY_bp 0 /* Synchronization Busy Flag bit position. */ /* RTC.INTCTRL bit masks and bit positions */ #define RTC_COMPINTLVL_gm 0x0C /* Compare Match Interrupt Level group mask. */ #define RTC_COMPINTLVL_gp 2 /* Compare Match Interrupt Level group position. */ #define RTC_COMPINTLVL0_bm (1<<2) /* Compare Match Interrupt Level bit 0 mask. */ #define RTC_COMPINTLVL0_bp 2 /* Compare Match Interrupt Level bit 0 position. */ #define RTC_COMPINTLVL1_bm (1<<3) /* Compare Match Interrupt Level bit 1 mask. */ #define RTC_COMPINTLVL1_bp 3 /* Compare Match Interrupt Level bit 1 position. */ #define RTC_OVFINTLVL_gm 0x03 /* Overflow Interrupt Level group mask. */ #define RTC_OVFINTLVL_gp 0 /* Overflow Interrupt Level group position. */ #define RTC_OVFINTLVL0_bm (1<<0) /* Overflow Interrupt Level bit 0 mask. */ #define RTC_OVFINTLVL0_bp 0 /* Overflow Interrupt Level bit 0 position. */ #define RTC_OVFINTLVL1_bm (1<<1) /* Overflow Interrupt Level bit 1 mask. */ #define RTC_OVFINTLVL1_bp 1 /* Overflow Interrupt Level bit 1 position. */ /* RTC.INTFLAGS bit masks and bit positions */ #define RTC_COMPIF_bm 0x02 /* Compare Match Interrupt Flag bit mask. */ #define RTC_COMPIF_bp 1 /* Compare Match Interrupt Flag bit position. */ #define RTC_OVFIF_bm 0x01 /* Overflow Interrupt Flag bit mask. */ #define RTC_OVFIF_bp 0 /* Overflow Interrupt Flag bit position. */ /* RTC.CALIB bit masks and bit positions */ #define RTC_SIGN_bm 0x80 /* Correction Sign bit mask. */ #define RTC_SIGN_bp 7 /* Correction Sign bit position. */ #define RTC_ERROR_gm 0x7F /* Error Value group mask. */ #define RTC_ERROR_gp 0 /* Error Value group position. */ #define RTC_ERROR0_bm (1<<0) /* Error Value bit 0 mask. */ #define RTC_ERROR0_bp 0 /* Error Value bit 0 position. */ #define RTC_ERROR1_bm (1<<1) /* Error Value bit 1 mask. */ #define RTC_ERROR1_bp 1 /* Error Value bit 1 position. */ #define RTC_ERROR2_bm (1<<2) /* Error Value bit 2 mask. */ #define RTC_ERROR2_bp 2 /* Error Value bit 2 position. */ #define RTC_ERROR3_bm (1<<3) /* Error Value bit 3 mask. */ #define RTC_ERROR3_bp 3 /* Error Value bit 3 position. */ #define RTC_ERROR4_bm (1<<4) /* Error Value bit 4 mask. */ #define RTC_ERROR4_bp 4 /* Error Value bit 4 position. */ #define RTC_ERROR5_bm (1<<5) /* Error Value bit 5 mask. */ #define RTC_ERROR5_bp 5 /* Error Value bit 5 position. */ #define RTC_ERROR6_bm (1<<6) /* Error Value bit 6 mask. */ #define RTC_ERROR6_bp 6 /* Error Value bit 6 position. */ /* XCL - XMEGA Custom Logic */ /* XCL.CTRLA bit masks and bit positions */ #define XCL_LUT0OUTEN_gm 0xC0 /* LUT0 Output Enable group mask. */ #define XCL_LUT0OUTEN_gp 6 /* LUT0 Output Enable group position. */ #define XCL_LUT0OUTEN0_bm (1<<6) /* LUT0 Output Enable bit 0 mask. */ #define XCL_LUT0OUTEN0_bp 6 /* LUT0 Output Enable bit 0 position. */ #define XCL_LUT0OUTEN1_bm (1<<7) /* LUT0 Output Enable bit 1 mask. */ #define XCL_LUT0OUTEN1_bp 7 /* LUT0 Output Enable bit 1 position. */ #define XCL_PORTSEL_gm 0x30 /* Port Selection group mask. */ #define XCL_PORTSEL_gp 4 /* Port Selection group position. */ #define XCL_PORTSEL0_bm (1<<4) /* Port Selection bit 0 mask. */ #define XCL_PORTSEL0_bp 4 /* Port Selection bit 0 position. */ #define XCL_PORTSEL1_bm (1<<5) /* Port Selection bit 1 mask. */ #define XCL_PORTSEL1_bp 5 /* Port Selection bit 1 position. */ #define XCL_LUTCONF_gm 0x07 /* LUT Configuration group mask. */ #define XCL_LUTCONF_gp 0 /* LUT Configuration group position. */ #define XCL_LUTCONF0_bm (1<<0) /* LUT Configuration bit 0 mask. */ #define XCL_LUTCONF0_bp 0 /* LUT Configuration bit 0 position. */ #define XCL_LUTCONF1_bm (1<<1) /* LUT Configuration bit 1 mask. */ #define XCL_LUTCONF1_bp 1 /* LUT Configuration bit 1 position. */ #define XCL_LUTCONF2_bm (1<<2) /* LUT Configuration bit 2 mask. */ #define XCL_LUTCONF2_bp 2 /* LUT Configuration bit 2 position. */ /* XCL.CTRLB bit masks and bit positions */ #define XCL_IN3SEL_gm 0xC0 /* Input Selection 3 group mask. */ #define XCL_IN3SEL_gp 6 /* Input Selection 3 group position. */ #define XCL_IN3SEL0_bm (1<<6) /* Input Selection 3 bit 0 mask. */ #define XCL_IN3SEL0_bp 6 /* Input Selection 3 bit 0 position. */ #define XCL_IN3SEL1_bm (1<<7) /* Input Selection 3 bit 1 mask. */ #define XCL_IN3SEL1_bp 7 /* Input Selection 3 bit 1 position. */ #define XCL_IN2SEL_gm 0x30 /* Input Selection 2 group mask. */ #define XCL_IN2SEL_gp 4 /* Input Selection 2 group position. */ #define XCL_IN2SEL0_bm (1<<4) /* Input Selection 2 bit 0 mask. */ #define XCL_IN2SEL0_bp 4 /* Input Selection 2 bit 0 position. */ #define XCL_IN2SEL1_bm (1<<5) /* Input Selection 2 bit 1 mask. */ #define XCL_IN2SEL1_bp 5 /* Input Selection 2 bit 1 position. */ #define XCL_IN1SEL_gm 0x0C /* Input Selection 1 group mask. */ #define XCL_IN1SEL_gp 2 /* Input Selection 1 group position. */ #define XCL_IN1SEL0_bm (1<<2) /* Input Selection 1 bit 0 mask. */ #define XCL_IN1SEL0_bp 2 /* Input Selection 1 bit 0 position. */ #define XCL_IN1SEL1_bm (1<<3) /* Input Selection 1 bit 1 mask. */ #define XCL_IN1SEL1_bp 3 /* Input Selection 1 bit 1 position. */ #define XCL_IN0SEL_gm 0x03 /* Input Selection 0 group mask. */ #define XCL_IN0SEL_gp 0 /* Input Selection 0 group position. */ #define XCL_IN0SEL0_bm (1<<0) /* Input Selection 0 bit 0 mask. */ #define XCL_IN0SEL0_bp 0 /* Input Selection 0 bit 0 position. */ #define XCL_IN0SEL1_bm (1<<1) /* Input Selection 0 bit 1 mask. */ #define XCL_IN0SEL1_bp 1 /* Input Selection 0 bit 1 position. */ /* XCL.CTRLC bit masks and bit positions */ #define XCL_EVASYSEL1_bm 0x80 /* Asynchronous Event Line Selection for LUT1 bit mask. */ #define XCL_EVASYSEL1_bp 7 /* Asynchronous Event Line Selection for LUT1 bit position. */ #define XCL_EVASYSEL0_bm 0x40 /* Asynchronous Event Line Selection for LUT0 bit mask. */ #define XCL_EVASYSEL0_bp 6 /* Asynchronous Event Line Selection for LUT0 bit position. */ #define XCL_DLYSEL_gm 0x30 /* Delay Selection group mask. */ #define XCL_DLYSEL_gp 4 /* Delay Selection group position. */ #define XCL_DLYSEL0_bm (1<<4) /* Delay Selection bit 0 mask. */ #define XCL_DLYSEL0_bp 4 /* Delay Selection bit 0 position. */ #define XCL_DLYSEL1_bm (1<<5) /* Delay Selection bit 1 mask. */ #define XCL_DLYSEL1_bp 5 /* Delay Selection bit 1 position. */ #define XCL_DLY1CONF_gm 0x0C /* Delay Configuration on LUT1 group mask. */ #define XCL_DLY1CONF_gp 2 /* Delay Configuration on LUT1 group position. */ #define XCL_DLY1CONF0_bm (1<<2) /* Delay Configuration on LUT1 bit 0 mask. */ #define XCL_DLY1CONF0_bp 2 /* Delay Configuration on LUT1 bit 0 position. */ #define XCL_DLY1CONF1_bm (1<<3) /* Delay Configuration on LUT1 bit 1 mask. */ #define XCL_DLY1CONF1_bp 3 /* Delay Configuration on LUT1 bit 1 position. */ #define XCL_DLY0CONF_gm 0x03 /* Delay Configuration on LUT0 group mask. */ #define XCL_DLY0CONF_gp 0 /* Delay Configuration on LUT0 group position. */ #define XCL_DLY0CONF0_bm (1<<0) /* Delay Configuration on LUT0 bit 0 mask. */ #define XCL_DLY0CONF0_bp 0 /* Delay Configuration on LUT0 bit 0 position. */ #define XCL_DLY0CONF1_bm (1<<1) /* Delay Configuration on LUT0 bit 1 mask. */ #define XCL_DLY0CONF1_bp 1 /* Delay Configuration on LUT0 bit 1 position. */ /* XCL.CTRLD bit masks and bit positions */ #define XCL_TRUTH1_gm 0xF0 /* Truth Table of LUT1 group mask. */ #define XCL_TRUTH1_gp 4 /* Truth Table of LUT1 group position. */ #define XCL_TRUTH10_bm (1<<4) /* Truth Table of LUT1 bit 0 mask. */ #define XCL_TRUTH10_bp 4 /* Truth Table of LUT1 bit 0 position. */ #define XCL_TRUTH11_bm (1<<5) /* Truth Table of LUT1 bit 1 mask. */ #define XCL_TRUTH11_bp 5 /* Truth Table of LUT1 bit 1 position. */ #define XCL_TRUTH12_bm (1<<6) /* Truth Table of LUT1 bit 2 mask. */ #define XCL_TRUTH12_bp 6 /* Truth Table of LUT1 bit 2 position. */ #define XCL_TRUTH13_bm (1<<7) /* Truth Table of LUT1 bit 3 mask. */ #define XCL_TRUTH13_bp 7 /* Truth Table of LUT1 bit 3 position. */ #define XCL_TRUTH0_gm 0x0F /* Truth Table of LUT0 group mask. */ #define XCL_TRUTH0_gp 0 /* Truth Table of LUT0 group position. */ #define XCL_TRUTH00_bm (1<<0) /* Truth Table of LUT0 bit 0 mask. */ #define XCL_TRUTH00_bp 0 /* Truth Table of LUT0 bit 0 position. */ #define XCL_TRUTH01_bm (1<<1) /* Truth Table of LUT0 bit 1 mask. */ #define XCL_TRUTH01_bp 1 /* Truth Table of LUT0 bit 1 position. */ #define XCL_TRUTH02_bm (1<<2) /* Truth Table of LUT0 bit 2 mask. */ #define XCL_TRUTH02_bp 2 /* Truth Table of LUT0 bit 2 position. */ #define XCL_TRUTH03_bm (1<<3) /* Truth Table of LUT0 bit 3 mask. */ #define XCL_TRUTH03_bp 3 /* Truth Table of LUT0 bit 3 position. */ /* XCL.CTRLE bit masks and bit positions */ #define XCL_CMDSEL_bm 0x80 /* Timer/Counter Command Selection bit mask. */ #define XCL_CMDSEL_bp 7 /* Timer/Counter Command Selection bit position. */ #define XCL_TCSEL_gm 0x70 /* Timer/Counter Selection group mask. */ #define XCL_TCSEL_gp 4 /* Timer/Counter Selection group position. */ #define XCL_TCSEL0_bm (1<<4) /* Timer/Counter Selection bit 0 mask. */ #define XCL_TCSEL0_bp 4 /* Timer/Counter Selection bit 0 position. */ #define XCL_TCSEL1_bm (1<<5) /* Timer/Counter Selection bit 1 mask. */ #define XCL_TCSEL1_bp 5 /* Timer/Counter Selection bit 1 position. */ #define XCL_TCSEL2_bm (1<<6) /* Timer/Counter Selection bit 2 mask. */ #define XCL_TCSEL2_bp 6 /* Timer/Counter Selection bit 2 position. */ #define XCL_CLKSEL_gm 0x0F /* Clock Selection group mask. */ #define XCL_CLKSEL_gp 0 /* Clock Selection group position. */ #define XCL_CLKSEL0_bm (1<<0) /* Clock Selection bit 0 mask. */ #define XCL_CLKSEL0_bp 0 /* Clock Selection bit 0 position. */ #define XCL_CLKSEL1_bm (1<<1) /* Clock Selection bit 1 mask. */ #define XCL_CLKSEL1_bp 1 /* Clock Selection bit 1 position. */ #define XCL_CLKSEL2_bm (1<<2) /* Clock Selection bit 2 mask. */ #define XCL_CLKSEL2_bp 2 /* Clock Selection bit 2 position. */ #define XCL_CLKSEL3_bm (1<<3) /* Clock Selection bit 3 mask. */ #define XCL_CLKSEL3_bp 3 /* Clock Selection bit 3 position. */ /* XCL.CTRLF bit masks and bit positions */ #define XCL_CMDEN_gm 0xC0 /* Command Enable group mask. */ #define XCL_CMDEN_gp 6 /* Command Enable group position. */ #define XCL_CMDEN0_bm (1<<6) /* Command Enable bit 0 mask. */ #define XCL_CMDEN0_bp 6 /* Command Enable bit 0 position. */ #define XCL_CMDEN1_bm (1<<7) /* Command Enable bit 1 mask. */ #define XCL_CMDEN1_bp 7 /* Command Enable bit 1 position. */ #define XCL_CMP1_bm 0x20 /* Compare Channel 1 Output Value bit mask. */ #define XCL_CMP1_bp 5 /* Compare Channel 1 Output Value bit position. */ #define XCL_CMP0_bm 0x10 /* Compare Channel 0 Output Value bit mask. */ #define XCL_CMP0_bp 4 /* Compare Channel 0 Output Value bit position. */ #define XCL_CCEN1_bm 0x08 /* Compare or Capture Channel 1 Enable bit mask. */ #define XCL_CCEN1_bp 3 /* Compare or Capture Channel 1 Enable bit position. */ #define XCL_CCEN0_bm 0x04 /* Compare or Capture Channel 0 Enable bit mask. */ #define XCL_CCEN0_bp 2 /* Compare or Capture Channel 0 Enable bit position. */ #define XCL_MODE_gm 0x03 /* Timer/Counter Mode group mask. */ #define XCL_MODE_gp 0 /* Timer/Counter Mode group position. */ #define XCL_MODE0_bm (1<<0) /* Timer/Counter Mode bit 0 mask. */ #define XCL_MODE0_bp 0 /* Timer/Counter Mode bit 0 position. */ #define XCL_MODE1_bm (1<<1) /* Timer/Counter Mode bit 1 mask. */ #define XCL_MODE1_bp 1 /* Timer/Counter Mode bit 1 position. */ /* XCL.CTRLG bit masks and bit positions */ #define XCL_EVACTEN_bm 0x80 /* Event Action Enable bit mask. */ #define XCL_EVACTEN_bp 7 /* Event Action Enable bit position. */ #define XCL_EVACT1_gm 0x60 /* Event Action Selection on Timer/Counter 1 group mask. */ #define XCL_EVACT1_gp 5 /* Event Action Selection on Timer/Counter 1 group position. */ #define XCL_EVACT10_bm (1<<5) /* Event Action Selection on Timer/Counter 1 bit 0 mask. */ #define XCL_EVACT10_bp 5 /* Event Action Selection on Timer/Counter 1 bit 0 position. */ #define XCL_EVACT11_bm (1<<6) /* Event Action Selection on Timer/Counter 1 bit 1 mask. */ #define XCL_EVACT11_bp 6 /* Event Action Selection on Timer/Counter 1 bit 1 position. */ #define XCL_EVACT0_gm 0x18 /* Event Action Selection on Timer/Counter 0 group mask. */ #define XCL_EVACT0_gp 3 /* Event Action Selection on Timer/Counter 0 group position. */ #define XCL_EVACT00_bm (1<<3) /* Event Action Selection on Timer/Counter 0 bit 0 mask. */ #define XCL_EVACT00_bp 3 /* Event Action Selection on Timer/Counter 0 bit 0 position. */ #define XCL_EVACT01_bm (1<<4) /* Event Action Selection on Timer/Counter 0 bit 1 mask. */ #define XCL_EVACT01_bp 4 /* Event Action Selection on Timer/Counter 0 bit 1 position. */ #define XCL_EVSRC_gm 0x07 /* Event Source Selection group mask. */ #define XCL_EVSRC_gp 0 /* Event Source Selection group position. */ #define XCL_EVSRC0_bm (1<<0) /* Event Source Selection bit 0 mask. */ #define XCL_EVSRC0_bp 0 /* Event Source Selection bit 0 position. */ #define XCL_EVSRC1_bm (1<<1) /* Event Source Selection bit 1 mask. */ #define XCL_EVSRC1_bp 1 /* Event Source Selection bit 1 position. */ #define XCL_EVSRC2_bm (1<<2) /* Event Source Selection bit 2 mask. */ #define XCL_EVSRC2_bp 2 /* Event Source Selection bit 2 position. */ /* XCL.INTCTRL bit masks and bit positions */ #define XCL_UNF1IE_bm 0x80 /* Underflow 1 Interrupt Enable bit mask. */ #define XCL_UNF1IE_bp 7 /* Underflow 1 Interrupt Enable bit position. */ #define XCL_PEC1IE_bm 0x80 /* Peripheral Counter 1 Interrupt Enable bit mask. */ #define XCL_PEC1IE_bp 7 /* Peripheral Counter 1 Interrupt Enable bit position. */ #define XCL_PEC21IE_bm 0x80 /* Peripheral High Counter 2 Interrupt Enable bit mask. */ #define XCL_PEC21IE_bp 7 /* Peripheral High Counter 2 Interrupt Enable bit position. */ #define XCL_UNF0IE_bm 0x40 /* Underflow 0 Interrupt Enable bit mask. */ #define XCL_UNF0IE_bp 6 /* Underflow 0 Interrupt Enable bit position. */ #define XCL_PEC0IE_bm 0x40 /* Peripheral Counter 0 Interrupt Enable bit mask. */ #define XCL_PEC0IE_bp 6 /* Peripheral Counter 0 Interrupt Enable bit position. */ #define XCL_CC1IE_bm 0x20 /* Compare Or Capture 1 Interrupt Enable bit mask. */ #define XCL_CC1IE_bp 5 /* Compare Or Capture 1 Interrupt Enable bit position. */ #define XCL_PEC20IE_bm 0x20 /* Peripheral Low Counter 2 Interrupt Enable bit mask. */ #define XCL_PEC20IE_bp 5 /* Peripheral Low Counter 2 Interrupt Enable bit position. */ #define XCL_CC0IE_bm 0x10 /* Compare Or Capture 0 Interrupt Enable bit mask. */ #define XCL_CC0IE_bp 4 /* Compare Or Capture 0 Interrupt Enable bit position. */ #define XCL_UNFINTLVL_gm 0x0C /* Timer Underflow Interrupt Level group mask. */ #define XCL_UNFINTLVL_gp 2 /* Timer Underflow Interrupt Level group position. */ #define XCL_UNFINTLVL0_bm (1<<2) /* Timer Underflow Interrupt Level bit 0 mask. */ #define XCL_UNFINTLVL0_bp 2 /* Timer Underflow Interrupt Level bit 0 position. */ #define XCL_UNFINTLVL1_bm (1<<3) /* Timer Underflow Interrupt Level bit 1 mask. */ #define XCL_UNFINTLVL1_bp 3 /* Timer Underflow Interrupt Level bit 1 position. */ #define XCL_CCINTLVL_gm 0x03 /* Timer Compare or Capture Interrupt Level group mask. */ #define XCL_CCINTLVL_gp 0 /* Timer Compare or Capture Interrupt Level group position. */ #define XCL_CCINTLVL0_bm (1<<0) /* Timer Compare or Capture Interrupt Level bit 0 mask. */ #define XCL_CCINTLVL0_bp 0 /* Timer Compare or Capture Interrupt Level bit 0 position. */ #define XCL_CCINTLVL1_bm (1<<1) /* Timer Compare or Capture Interrupt Level bit 1 mask. */ #define XCL_CCINTLVL1_bp 1 /* Timer Compare or Capture Interrupt Level bit 1 position. */ /* XCL.INTFLAGS bit masks and bit positions */ #define XCL_UNF1IF_bm 0x80 /* Timer/Counter 1 Underflow Interrupt Flag bit mask. */ #define XCL_UNF1IF_bp 7 /* Timer/Counter 1 Underflow Interrupt Flag bit position. */ #define XCL_PEC1IF_bm 0x80 /* Peripheral Counter 1 Interrupt Flag bit mask. */ #define XCL_PEC1IF_bp 7 /* Peripheral Counter 1 Interrupt Flag bit position. */ #define XCL_PEC21IF_bm 0x80 /* Peripheral High Counter 2 Interrupt Flag bit mask. */ #define XCL_PEC21IF_bp 7 /* Peripheral High Counter 2 Interrupt Flag bit position. */ #define XCL_UNF0IF_bm 0x40 /* Timer/Counter 0 Underflow Interrupt Flag bit mask. */ #define XCL_UNF0IF_bp 6 /* Timer/Counter 0 Underflow Interrupt Flag bit position. */ #define XCL_PEC0IF_bm 0x40 /* Peripheral Counter 0 Interrupt Flag bit mask. */ #define XCL_PEC0IF_bp 6 /* Peripheral Counter 0 Interrupt Flag bit position. */ #define XCL_CC1IF_bm 0x20 /* Compare or Capture Channel 1 Interrupt Flag bit mask. */ #define XCL_CC1IF_bp 5 /* Compare or Capture Channel 1 Interrupt Flag bit position. */ #define XCL_PEC20IF_bm 0x20 /* Peripheral Low Counter 2 Interrupt Flag bit mask. */ #define XCL_PEC20IF_bp 5 /* Peripheral Low Counter 2 Interrupt Flag bit position. */ #define XCL_CC0IF_bm 0x10 /* Compare or Capture Channel 0 Interrupt Flag bit mask. */ #define XCL_CC0IF_bp 4 /* Compare or Capture Channel 0 Interrupt Flag bit position. */ /* XCL.PLC bit masks and bit positions */ #define XCL_PLC_gm 0xFF /* Peripheral Lenght Control Bits group mask. */ #define XCL_PLC_gp 0 /* Peripheral Lenght Control Bits group position. */ #define XCL_PLC0_bm (1<<0) /* Peripheral Lenght Control Bits bit 0 mask. */ #define XCL_PLC0_bp 0 /* Peripheral Lenght Control Bits bit 0 position. */ #define XCL_PLC1_bm (1<<1) /* Peripheral Lenght Control Bits bit 1 mask. */ #define XCL_PLC1_bp 1 /* Peripheral Lenght Control Bits bit 1 position. */ #define XCL_PLC2_bm (1<<2) /* Peripheral Lenght Control Bits bit 2 mask. */ #define XCL_PLC2_bp 2 /* Peripheral Lenght Control Bits bit 2 position. */ #define XCL_PLC3_bm (1<<3) /* Peripheral Lenght Control Bits bit 3 mask. */ #define XCL_PLC3_bp 3 /* Peripheral Lenght Control Bits bit 3 position. */ #define XCL_PLC4_bm (1<<4) /* Peripheral Lenght Control Bits bit 4 mask. */ #define XCL_PLC4_bp 4 /* Peripheral Lenght Control Bits bit 4 position. */ #define XCL_PLC5_bm (1<<5) /* Peripheral Lenght Control Bits bit 5 mask. */ #define XCL_PLC5_bp 5 /* Peripheral Lenght Control Bits bit 5 position. */ #define XCL_PLC6_bm (1<<6) /* Peripheral Lenght Control Bits bit 6 mask. */ #define XCL_PLC6_bp 6 /* Peripheral Lenght Control Bits bit 6 position. */ #define XCL_PLC7_bm (1<<7) /* Peripheral Lenght Control Bits bit 7 mask. */ #define XCL_PLC7_bp 7 /* Peripheral Lenght Control Bits bit 7 position. */ /* XCL.CNTL bit masks and bit positions */ #define XCL_BCNTO_gm 0xFF /* BTC0 Counter Byte group mask. */ #define XCL_BCNTO_gp 0 /* BTC0 Counter Byte group position. */ #define XCL_BCNTO0_bm (1<<0) /* BTC0 Counter Byte bit 0 mask. */ #define XCL_BCNTO0_bp 0 /* BTC0 Counter Byte bit 0 position. */ #define XCL_BCNTO1_bm (1<<1) /* BTC0 Counter Byte bit 1 mask. */ #define XCL_BCNTO1_bp 1 /* BTC0 Counter Byte bit 1 position. */ #define XCL_BCNTO2_bm (1<<2) /* BTC0 Counter Byte bit 2 mask. */ #define XCL_BCNTO2_bp 2 /* BTC0 Counter Byte bit 2 position. */ #define XCL_BCNTO3_bm (1<<3) /* BTC0 Counter Byte bit 3 mask. */ #define XCL_BCNTO3_bp 3 /* BTC0 Counter Byte bit 3 position. */ #define XCL_BCNTO4_bm (1<<4) /* BTC0 Counter Byte bit 4 mask. */ #define XCL_BCNTO4_bp 4 /* BTC0 Counter Byte bit 4 position. */ #define XCL_BCNTO5_bm (1<<5) /* BTC0 Counter Byte bit 5 mask. */ #define XCL_BCNTO5_bp 5 /* BTC0 Counter Byte bit 5 position. */ #define XCL_BCNTO6_bm (1<<6) /* BTC0 Counter Byte bit 6 mask. */ #define XCL_BCNTO6_bp 6 /* BTC0 Counter Byte bit 6 position. */ #define XCL_BCNTO7_bm (1<<7) /* BTC0 Counter Byte bit 7 mask. */ #define XCL_BCNTO7_bp 7 /* BTC0 Counter Byte bit 7 position. */ #define XCL_CNTL_gm 0xFF /* TC16 Counter Low Byte group mask. */ #define XCL_CNTL_gp 0 /* TC16 Counter Low Byte group position. */ #define XCL_CNTL0_bm (1<<0) /* TC16 Counter Low Byte bit 0 mask. */ #define XCL_CNTL0_bp 0 /* TC16 Counter Low Byte bit 0 position. */ #define XCL_CNTL1_bm (1<<1) /* TC16 Counter Low Byte bit 1 mask. */ #define XCL_CNTL1_bp 1 /* TC16 Counter Low Byte bit 1 position. */ #define XCL_CNTL2_bm (1<<2) /* TC16 Counter Low Byte bit 2 mask. */ #define XCL_CNTL2_bp 2 /* TC16 Counter Low Byte bit 2 position. */ #define XCL_CNTL3_bm (1<<3) /* TC16 Counter Low Byte bit 3 mask. */ #define XCL_CNTL3_bp 3 /* TC16 Counter Low Byte bit 3 position. */ #define XCL_CNTL4_bm (1<<4) /* TC16 Counter Low Byte bit 4 mask. */ #define XCL_CNTL4_bp 4 /* TC16 Counter Low Byte bit 4 position. */ #define XCL_CNTL5_bm (1<<5) /* TC16 Counter Low Byte bit 5 mask. */ #define XCL_CNTL5_bp 5 /* TC16 Counter Low Byte bit 5 position. */ #define XCL_CNTL6_bm (1<<6) /* TC16 Counter Low Byte bit 6 mask. */ #define XCL_CNTL6_bp 6 /* TC16 Counter Low Byte bit 6 position. */ #define XCL_CNTL7_bm (1<<7) /* TC16 Counter Low Byte bit 7 mask. */ #define XCL_CNTL7_bp 7 /* TC16 Counter Low Byte bit 7 position. */ #define XCL_PCNTO_gm 0xFF /* Peripheral Counter 0 Byte group mask. */ #define XCL_PCNTO_gp 0 /* Peripheral Counter 0 Byte group position. */ #define XCL_PCNTO0_bm (1<<0) /* Peripheral Counter 0 Byte bit 0 mask. */ #define XCL_PCNTO0_bp 0 /* Peripheral Counter 0 Byte bit 0 position. */ #define XCL_PCNTO1_bm (1<<1) /* Peripheral Counter 0 Byte bit 1 mask. */ #define XCL_PCNTO1_bp 1 /* Peripheral Counter 0 Byte bit 1 position. */ #define XCL_PCNTO2_bm (1<<2) /* Peripheral Counter 0 Byte bit 2 mask. */ #define XCL_PCNTO2_bp 2 /* Peripheral Counter 0 Byte bit 2 position. */ #define XCL_PCNTO3_bm (1<<3) /* Peripheral Counter 0 Byte bit 3 mask. */ #define XCL_PCNTO3_bp 3 /* Peripheral Counter 0 Byte bit 3 position. */ #define XCL_PCNTO4_bm (1<<4) /* Peripheral Counter 0 Byte bit 4 mask. */ #define XCL_PCNTO4_bp 4 /* Peripheral Counter 0 Byte bit 4 position. */ #define XCL_PCNTO5_bm (1<<5) /* Peripheral Counter 0 Byte bit 5 mask. */ #define XCL_PCNTO5_bp 5 /* Peripheral Counter 0 Byte bit 5 position. */ #define XCL_PCNTO6_bm (1<<6) /* Peripheral Counter 0 Byte bit 6 mask. */ #define XCL_PCNTO6_bp 6 /* Peripheral Counter 0 Byte bit 6 position. */ #define XCL_PCNTO7_bm (1<<7) /* Peripheral Counter 0 Byte bit 7 mask. */ #define XCL_PCNTO7_bp 7 /* Peripheral Counter 0 Byte bit 7 position. */ /* XCL.CNTH bit masks and bit positions */ #define XCL_BCNT1_gm 0xFF /* BTC1 Counter Byte group mask. */ #define XCL_BCNT1_gp 0 /* BTC1 Counter Byte group position. */ #define XCL_BCNT10_bm (1<<0) /* BTC1 Counter Byte bit 0 mask. */ #define XCL_BCNT10_bp 0 /* BTC1 Counter Byte bit 0 position. */ #define XCL_BCNT11_bm (1<<1) /* BTC1 Counter Byte bit 1 mask. */ #define XCL_BCNT11_bp 1 /* BTC1 Counter Byte bit 1 position. */ #define XCL_BCNT12_bm (1<<2) /* BTC1 Counter Byte bit 2 mask. */ #define XCL_BCNT12_bp 2 /* BTC1 Counter Byte bit 2 position. */ #define XCL_BCNT13_bm (1<<3) /* BTC1 Counter Byte bit 3 mask. */ #define XCL_BCNT13_bp 3 /* BTC1 Counter Byte bit 3 position. */ #define XCL_BCNT14_bm (1<<4) /* BTC1 Counter Byte bit 4 mask. */ #define XCL_BCNT14_bp 4 /* BTC1 Counter Byte bit 4 position. */ #define XCL_BCNT15_bm (1<<5) /* BTC1 Counter Byte bit 5 mask. */ #define XCL_BCNT15_bp 5 /* BTC1 Counter Byte bit 5 position. */ #define XCL_BCNT16_bm (1<<6) /* BTC1 Counter Byte bit 6 mask. */ #define XCL_BCNT16_bp 6 /* BTC1 Counter Byte bit 6 position. */ #define XCL_BCNT17_bm (1<<7) /* BTC1 Counter Byte bit 7 mask. */ #define XCL_BCNT17_bp 7 /* BTC1 Counter Byte bit 7 position. */ #define XCL_CNTH_gm 0xFF /* TC16 Counter High Byte group mask. */ #define XCL_CNTH_gp 0 /* TC16 Counter High Byte group position. */ #define XCL_CNTH0_bm (1<<0) /* TC16 Counter High Byte bit 0 mask. */ #define XCL_CNTH0_bp 0 /* TC16 Counter High Byte bit 0 position. */ #define XCL_CNTH1_bm (1<<1) /* TC16 Counter High Byte bit 1 mask. */ #define XCL_CNTH1_bp 1 /* TC16 Counter High Byte bit 1 position. */ #define XCL_CNTH2_bm (1<<2) /* TC16 Counter High Byte bit 2 mask. */ #define XCL_CNTH2_bp 2 /* TC16 Counter High Byte bit 2 position. */ #define XCL_CNTH3_bm (1<<3) /* TC16 Counter High Byte bit 3 mask. */ #define XCL_CNTH3_bp 3 /* TC16 Counter High Byte bit 3 position. */ #define XCL_CNTH4_bm (1<<4) /* TC16 Counter High Byte bit 4 mask. */ #define XCL_CNTH4_bp 4 /* TC16 Counter High Byte bit 4 position. */ #define XCL_CNTH5_bm (1<<5) /* TC16 Counter High Byte bit 5 mask. */ #define XCL_CNTH5_bp 5 /* TC16 Counter High Byte bit 5 position. */ #define XCL_CNTH6_bm (1<<6) /* TC16 Counter High Byte bit 6 mask. */ #define XCL_CNTH6_bp 6 /* TC16 Counter High Byte bit 6 position. */ #define XCL_CNTH7_bm (1<<7) /* TC16 Counter High Byte bit 7 mask. */ #define XCL_CNTH7_bp 7 /* TC16 Counter High Byte bit 7 position. */ #define XCL_PCNT1_gm 0xFF /* Peripheral Counter 1 Byte group mask. */ #define XCL_PCNT1_gp 0 /* Peripheral Counter 1 Byte group position. */ #define XCL_PCNT10_bm (1<<0) /* Peripheral Counter 1 Byte bit 0 mask. */ #define XCL_PCNT10_bp 0 /* Peripheral Counter 1 Byte bit 0 position. */ #define XCL_PCNT11_bm (1<<1) /* Peripheral Counter 1 Byte bit 1 mask. */ #define XCL_PCNT11_bp 1 /* Peripheral Counter 1 Byte bit 1 position. */ #define XCL_PCNT12_bm (1<<2) /* Peripheral Counter 1 Byte bit 2 mask. */ #define XCL_PCNT12_bp 2 /* Peripheral Counter 1 Byte bit 2 position. */ #define XCL_PCNT13_bm (1<<3) /* Peripheral Counter 1 Byte bit 3 mask. */ #define XCL_PCNT13_bp 3 /* Peripheral Counter 1 Byte bit 3 position. */ #define XCL_PCNT14_bm (1<<4) /* Peripheral Counter 1 Byte bit 4 mask. */ #define XCL_PCNT14_bp 4 /* Peripheral Counter 1 Byte bit 4 position. */ #define XCL_PCNT15_bm (1<<5) /* Peripheral Counter 1 Byte bit 5 mask. */ #define XCL_PCNT15_bp 5 /* Peripheral Counter 1 Byte bit 5 position. */ #define XCL_PCNT16_bm (1<<6) /* Peripheral Counter 1 Byte bit 6 mask. */ #define XCL_PCNT16_bp 6 /* Peripheral Counter 1 Byte bit 6 position. */ #define XCL_PCNT17_bm (1<<7) /* Peripheral Counter 1 Byte bit 7 mask. */ #define XCL_PCNT17_bp 7 /* Peripheral Counter 1 Byte bit 7 position. */ #define XCL_PCNT21_gm 0xF0 /* Peripheral High Counter 2 Bits group mask. */ #define XCL_PCNT21_gp 4 /* Peripheral High Counter 2 Bits group position. */ #define XCL_PCNT210_bm (1<<4) /* Peripheral High Counter 2 Bits bit 0 mask. */ #define XCL_PCNT210_bp 4 /* Peripheral High Counter 2 Bits bit 0 position. */ #define XCL_PCNT211_bm (1<<5) /* Peripheral High Counter 2 Bits bit 1 mask. */ #define XCL_PCNT211_bp 5 /* Peripheral High Counter 2 Bits bit 1 position. */ #define XCL_PCNT212_bm (1<<6) /* Peripheral High Counter 2 Bits bit 2 mask. */ #define XCL_PCNT212_bp 6 /* Peripheral High Counter 2 Bits bit 2 position. */ #define XCL_PCNT213_bm (1<<7) /* Peripheral High Counter 2 Bits bit 3 mask. */ #define XCL_PCNT213_bp 7 /* Peripheral High Counter 2 Bits bit 3 position. */ #define XCL_PCNT20_gm 0x0F /* Peripheral Low Counter 2 Bits group mask. */ #define XCL_PCNT20_gp 0 /* Peripheral Low Counter 2 Bits group position. */ #define XCL_PCNT200_bm (1<<0) /* Peripheral Low Counter 2 Bits bit 0 mask. */ #define XCL_PCNT200_bp 0 /* Peripheral Low Counter 2 Bits bit 0 position. */ #define XCL_PCNT201_bm (1<<1) /* Peripheral Low Counter 2 Bits bit 1 mask. */ #define XCL_PCNT201_bp 1 /* Peripheral Low Counter 2 Bits bit 1 position. */ #define XCL_PCNT202_bm (1<<2) /* Peripheral Low Counter 2 Bits bit 2 mask. */ #define XCL_PCNT202_bp 2 /* Peripheral Low Counter 2 Bits bit 2 position. */ #define XCL_PCNT203_bm (1<<3) /* Peripheral Low Counter 2 Bits bit 3 mask. */ #define XCL_PCNT203_bp 3 /* Peripheral Low Counter 2 Bits bit 3 position. */ /* XCL.CMPL bit masks and bit positions */ #define XCL_CMPL_gm 0xFF /* TC16 Compare Low Byte group mask. */ #define XCL_CMPL_gp 0 /* TC16 Compare Low Byte group position. */ #define XCL_CMPL0_bm (1<<0) /* TC16 Compare Low Byte bit 0 mask. */ #define XCL_CMPL0_bp 0 /* TC16 Compare Low Byte bit 0 position. */ #define XCL_CMPL1_bm (1<<1) /* TC16 Compare Low Byte bit 1 mask. */ #define XCL_CMPL1_bp 1 /* TC16 Compare Low Byte bit 1 position. */ #define XCL_CMPL2_bm (1<<2) /* TC16 Compare Low Byte bit 2 mask. */ #define XCL_CMPL2_bp 2 /* TC16 Compare Low Byte bit 2 position. */ #define XCL_CMPL3_bm (1<<3) /* TC16 Compare Low Byte bit 3 mask. */ #define XCL_CMPL3_bp 3 /* TC16 Compare Low Byte bit 3 position. */ #define XCL_CMPL4_bm (1<<4) /* TC16 Compare Low Byte bit 4 mask. */ #define XCL_CMPL4_bp 4 /* TC16 Compare Low Byte bit 4 position. */ #define XCL_CMPL5_bm (1<<5) /* TC16 Compare Low Byte bit 5 mask. */ #define XCL_CMPL5_bp 5 /* TC16 Compare Low Byte bit 5 position. */ #define XCL_CMPL6_bm (1<<6) /* TC16 Compare Low Byte bit 6 mask. */ #define XCL_CMPL6_bp 6 /* TC16 Compare Low Byte bit 6 position. */ #define XCL_CMPL7_bm (1<<7) /* TC16 Compare Low Byte bit 7 mask. */ #define XCL_CMPL7_bp 7 /* TC16 Compare Low Byte bit 7 position. */ #define XCL_BCMP0_gm 0xFF /* BTC0 Compare Byte group mask. */ #define XCL_BCMP0_gp 0 /* BTC0 Compare Byte group position. */ #define XCL_BCMP00_bm (1<<0) /* BTC0 Compare Byte bit 0 mask. */ #define XCL_BCMP00_bp 0 /* BTC0 Compare Byte bit 0 position. */ #define XCL_BCMP01_bm (1<<1) /* BTC0 Compare Byte bit 1 mask. */ #define XCL_BCMP01_bp 1 /* BTC0 Compare Byte bit 1 position. */ #define XCL_BCMP02_bm (1<<2) /* BTC0 Compare Byte bit 2 mask. */ #define XCL_BCMP02_bp 2 /* BTC0 Compare Byte bit 2 position. */ #define XCL_BCMP03_bm (1<<3) /* BTC0 Compare Byte bit 3 mask. */ #define XCL_BCMP03_bp 3 /* BTC0 Compare Byte bit 3 position. */ #define XCL_BCMP04_bm (1<<4) /* BTC0 Compare Byte bit 4 mask. */ #define XCL_BCMP04_bp 4 /* BTC0 Compare Byte bit 4 position. */ #define XCL_BCMP05_bm (1<<5) /* BTC0 Compare Byte bit 5 mask. */ #define XCL_BCMP05_bp 5 /* BTC0 Compare Byte bit 5 position. */ #define XCL_BCMP06_bm (1<<6) /* BTC0 Compare Byte bit 6 mask. */ #define XCL_BCMP06_bp 6 /* BTC0 Compare Byte bit 6 position. */ #define XCL_BCMP07_bm (1<<7) /* BTC0 Compare Byte bit 7 mask. */ #define XCL_BCMP07_bp 7 /* BTC0 Compare Byte bit 7 position. */ /* XCL.CMPH bit masks and bit positions */ #define XCL_CMPH_gm 0xFF /* TC16 Compare High Byte group mask. */ #define XCL_CMPH_gp 0 /* TC16 Compare High Byte group position. */ #define XCL_CMPH0_bm (1<<0) /* TC16 Compare High Byte bit 0 mask. */ #define XCL_CMPH0_bp 0 /* TC16 Compare High Byte bit 0 position. */ #define XCL_CMPH1_bm (1<<1) /* TC16 Compare High Byte bit 1 mask. */ #define XCL_CMPH1_bp 1 /* TC16 Compare High Byte bit 1 position. */ #define XCL_CMPH2_bm (1<<2) /* TC16 Compare High Byte bit 2 mask. */ #define XCL_CMPH2_bp 2 /* TC16 Compare High Byte bit 2 position. */ #define XCL_CMPH3_bm (1<<3) /* TC16 Compare High Byte bit 3 mask. */ #define XCL_CMPH3_bp 3 /* TC16 Compare High Byte bit 3 position. */ #define XCL_CMPH4_bm (1<<4) /* TC16 Compare High Byte bit 4 mask. */ #define XCL_CMPH4_bp 4 /* TC16 Compare High Byte bit 4 position. */ #define XCL_CMPH5_bm (1<<5) /* TC16 Compare High Byte bit 5 mask. */ #define XCL_CMPH5_bp 5 /* TC16 Compare High Byte bit 5 position. */ #define XCL_CMPH6_bm (1<<6) /* TC16 Compare High Byte bit 6 mask. */ #define XCL_CMPH6_bp 6 /* TC16 Compare High Byte bit 6 position. */ #define XCL_CMPH7_bm (1<<7) /* TC16 Compare High Byte bit 7 mask. */ #define XCL_CMPH7_bp 7 /* TC16 Compare High Byte bit 7 position. */ #define XCL_BCMP1_gm 0xFF /* BTC1 Compare Byte group mask. */ #define XCL_BCMP1_gp 0 /* BTC1 Compare Byte group position. */ #define XCL_BCMP10_bm (1<<0) /* BTC1 Compare Byte bit 0 mask. */ #define XCL_BCMP10_bp 0 /* BTC1 Compare Byte bit 0 position. */ #define XCL_BCMP11_bm (1<<1) /* BTC1 Compare Byte bit 1 mask. */ #define XCL_BCMP11_bp 1 /* BTC1 Compare Byte bit 1 position. */ #define XCL_BCMP12_bm (1<<2) /* BTC1 Compare Byte bit 2 mask. */ #define XCL_BCMP12_bp 2 /* BTC1 Compare Byte bit 2 position. */ #define XCL_BCMP13_bm (1<<3) /* BTC1 Compare Byte bit 3 mask. */ #define XCL_BCMP13_bp 3 /* BTC1 Compare Byte bit 3 position. */ #define XCL_BCMP14_bm (1<<4) /* BTC1 Compare Byte bit 4 mask. */ #define XCL_BCMP14_bp 4 /* BTC1 Compare Byte bit 4 position. */ #define XCL_BCMP15_bm (1<<5) /* BTC1 Compare Byte bit 5 mask. */ #define XCL_BCMP15_bp 5 /* BTC1 Compare Byte bit 5 position. */ #define XCL_BCMP16_bm (1<<6) /* BTC1 Compare Byte bit 6 mask. */ #define XCL_BCMP16_bp 6 /* BTC1 Compare Byte bit 6 position. */ #define XCL_BCMP17_bm (1<<7) /* BTC1 Compare Byte bit 7 mask. */ #define XCL_BCMP17_bp 7 /* BTC1 Compare Byte bit 7 position. */ /* XCL.PERCAPTL bit masks and bit positions */ #define XCL_PERL_gm 0xFF /* TC16 Low Byte Period group mask. */ #define XCL_PERL_gp 0 /* TC16 Low Byte Period group position. */ #define XCL_PERL0_bm (1<<0) /* TC16 Low Byte Period bit 0 mask. */ #define XCL_PERL0_bp 0 /* TC16 Low Byte Period bit 0 position. */ #define XCL_PERL1_bm (1<<1) /* TC16 Low Byte Period bit 1 mask. */ #define XCL_PERL1_bp 1 /* TC16 Low Byte Period bit 1 position. */ #define XCL_PERL2_bm (1<<2) /* TC16 Low Byte Period bit 2 mask. */ #define XCL_PERL2_bp 2 /* TC16 Low Byte Period bit 2 position. */ #define XCL_PERL3_bm (1<<3) /* TC16 Low Byte Period bit 3 mask. */ #define XCL_PERL3_bp 3 /* TC16 Low Byte Period bit 3 position. */ #define XCL_PERL4_bm (1<<4) /* TC16 Low Byte Period bit 4 mask. */ #define XCL_PERL4_bp 4 /* TC16 Low Byte Period bit 4 position. */ #define XCL_PERL5_bm (1<<5) /* TC16 Low Byte Period bit 5 mask. */ #define XCL_PERL5_bp 5 /* TC16 Low Byte Period bit 5 position. */ #define XCL_PERL6_bm (1<<6) /* TC16 Low Byte Period bit 6 mask. */ #define XCL_PERL6_bp 6 /* TC16 Low Byte Period bit 6 position. */ #define XCL_PERL7_bm (1<<7) /* TC16 Low Byte Period bit 7 mask. */ #define XCL_PERL7_bp 7 /* TC16 Low Byte Period bit 7 position. */ #define XCL_CAPTL_gm 0xFF /* TC16 Capture Value Low Byte group mask. */ #define XCL_CAPTL_gp 0 /* TC16 Capture Value Low Byte group position. */ #define XCL_CAPTL0_bm (1<<0) /* TC16 Capture Value Low Byte bit 0 mask. */ #define XCL_CAPTL0_bp 0 /* TC16 Capture Value Low Byte bit 0 position. */ #define XCL_CAPTL1_bm (1<<1) /* TC16 Capture Value Low Byte bit 1 mask. */ #define XCL_CAPTL1_bp 1 /* TC16 Capture Value Low Byte bit 1 position. */ #define XCL_CAPTL2_bm (1<<2) /* TC16 Capture Value Low Byte bit 2 mask. */ #define XCL_CAPTL2_bp 2 /* TC16 Capture Value Low Byte bit 2 position. */ #define XCL_CAPTL3_bm (1<<3) /* TC16 Capture Value Low Byte bit 3 mask. */ #define XCL_CAPTL3_bp 3 /* TC16 Capture Value Low Byte bit 3 position. */ #define XCL_CAPTL4_bm (1<<4) /* TC16 Capture Value Low Byte bit 4 mask. */ #define XCL_CAPTL4_bp 4 /* TC16 Capture Value Low Byte bit 4 position. */ #define XCL_CAPTL5_bm (1<<5) /* TC16 Capture Value Low Byte bit 5 mask. */ #define XCL_CAPTL5_bp 5 /* TC16 Capture Value Low Byte bit 5 position. */ #define XCL_CAPTL6_bm (1<<6) /* TC16 Capture Value Low Byte bit 6 mask. */ #define XCL_CAPTL6_bp 6 /* TC16 Capture Value Low Byte bit 6 position. */ #define XCL_CAPTL7_bm (1<<7) /* TC16 Capture Value Low Byte bit 7 mask. */ #define XCL_CAPTL7_bp 7 /* TC16 Capture Value Low Byte bit 7 position. */ #define XCL_BPER0_gm 0xFF /* BTC0 Period group mask. */ #define XCL_BPER0_gp 0 /* BTC0 Period group position. */ #define XCL_BPER00_bm (1<<0) /* BTC0 Period bit 0 mask. */ #define XCL_BPER00_bp 0 /* BTC0 Period bit 0 position. */ #define XCL_BPER01_bm (1<<1) /* BTC0 Period bit 1 mask. */ #define XCL_BPER01_bp 1 /* BTC0 Period bit 1 position. */ #define XCL_BPER02_bm (1<<2) /* BTC0 Period bit 2 mask. */ #define XCL_BPER02_bp 2 /* BTC0 Period bit 2 position. */ #define XCL_BPER03_bm (1<<3) /* BTC0 Period bit 3 mask. */ #define XCL_BPER03_bp 3 /* BTC0 Period bit 3 position. */ #define XCL_BPER04_bm (1<<4) /* BTC0 Period bit 4 mask. */ #define XCL_BPER04_bp 4 /* BTC0 Period bit 4 position. */ #define XCL_BPER05_bm (1<<5) /* BTC0 Period bit 5 mask. */ #define XCL_BPER05_bp 5 /* BTC0 Period bit 5 position. */ #define XCL_BPER06_bm (1<<6) /* BTC0 Period bit 6 mask. */ #define XCL_BPER06_bp 6 /* BTC0 Period bit 6 position. */ #define XCL_BPER07_bm (1<<7) /* BTC0 Period bit 7 mask. */ #define XCL_BPER07_bp 7 /* BTC0 Period bit 7 position. */ #define XCL_BCAPT0_gm 0xFF /* BTC0 Capture Value Byte group mask. */ #define XCL_BCAPT0_gp 0 /* BTC0 Capture Value Byte group position. */ #define XCL_BCAPT00_bm (1<<0) /* BTC0 Capture Value Byte bit 0 mask. */ #define XCL_BCAPT00_bp 0 /* BTC0 Capture Value Byte bit 0 position. */ #define XCL_BCAPT01_bm (1<<1) /* BTC0 Capture Value Byte bit 1 mask. */ #define XCL_BCAPT01_bp 1 /* BTC0 Capture Value Byte bit 1 position. */ #define XCL_BCAPT02_bm (1<<2) /* BTC0 Capture Value Byte bit 2 mask. */ #define XCL_BCAPT02_bp 2 /* BTC0 Capture Value Byte bit 2 position. */ #define XCL_BCAPT03_bm (1<<3) /* BTC0 Capture Value Byte bit 3 mask. */ #define XCL_BCAPT03_bp 3 /* BTC0 Capture Value Byte bit 3 position. */ #define XCL_BCAPT04_bm (1<<4) /* BTC0 Capture Value Byte bit 4 mask. */ #define XCL_BCAPT04_bp 4 /* BTC0 Capture Value Byte bit 4 position. */ #define XCL_BCAPT05_bm (1<<5) /* BTC0 Capture Value Byte bit 5 mask. */ #define XCL_BCAPT05_bp 5 /* BTC0 Capture Value Byte bit 5 position. */ #define XCL_BCAPT06_bm (1<<6) /* BTC0 Capture Value Byte bit 6 mask. */ #define XCL_BCAPT06_bp 6 /* BTC0 Capture Value Byte bit 6 position. */ #define XCL_BCAPT07_bm (1<<7) /* BTC0 Capture Value Byte bit 7 mask. */ #define XCL_BCAPT07_bp 7 /* BTC0 Capture Value Byte bit 7 position. */ /* XCL.PERCAPTH bit masks and bit positions */ #define XCL_PERH_gm 0xFF /* TC16 High Byte Period group mask. */ #define XCL_PERH_gp 0 /* TC16 High Byte Period group position. */ #define XCL_PERH0_bm (1<<0) /* TC16 High Byte Period bit 0 mask. */ #define XCL_PERH0_bp 0 /* TC16 High Byte Period bit 0 position. */ #define XCL_PERH1_bm (1<<1) /* TC16 High Byte Period bit 1 mask. */ #define XCL_PERH1_bp 1 /* TC16 High Byte Period bit 1 position. */ #define XCL_PERH2_bm (1<<2) /* TC16 High Byte Period bit 2 mask. */ #define XCL_PERH2_bp 2 /* TC16 High Byte Period bit 2 position. */ #define XCL_PERH3_bm (1<<3) /* TC16 High Byte Period bit 3 mask. */ #define XCL_PERH3_bp 3 /* TC16 High Byte Period bit 3 position. */ #define XCL_PERH4_bm (1<<4) /* TC16 High Byte Period bit 4 mask. */ #define XCL_PERH4_bp 4 /* TC16 High Byte Period bit 4 position. */ #define XCL_PERH5_bm (1<<5) /* TC16 High Byte Period bit 5 mask. */ #define XCL_PERH5_bp 5 /* TC16 High Byte Period bit 5 position. */ #define XCL_PERH6_bm (1<<6) /* TC16 High Byte Period bit 6 mask. */ #define XCL_PERH6_bp 6 /* TC16 High Byte Period bit 6 position. */ #define XCL_PERH7_bm (1<<7) /* TC16 High Byte Period bit 7 mask. */ #define XCL_PERH7_bp 7 /* TC16 High Byte Period bit 7 position. */ #define XCL_CAPTH_gm 0xFF /* TC16 Capture Value High Byte group mask. */ #define XCL_CAPTH_gp 0 /* TC16 Capture Value High Byte group position. */ #define XCL_CAPTH0_bm (1<<0) /* TC16 Capture Value High Byte bit 0 mask. */ #define XCL_CAPTH0_bp 0 /* TC16 Capture Value High Byte bit 0 position. */ #define XCL_CAPTH1_bm (1<<1) /* TC16 Capture Value High Byte bit 1 mask. */ #define XCL_CAPTH1_bp 1 /* TC16 Capture Value High Byte bit 1 position. */ #define XCL_CAPTH2_bm (1<<2) /* TC16 Capture Value High Byte bit 2 mask. */ #define XCL_CAPTH2_bp 2 /* TC16 Capture Value High Byte bit 2 position. */ #define XCL_CAPTH3_bm (1<<3) /* TC16 Capture Value High Byte bit 3 mask. */ #define XCL_CAPTH3_bp 3 /* TC16 Capture Value High Byte bit 3 position. */ #define XCL_CAPTH4_bm (1<<4) /* TC16 Capture Value High Byte bit 4 mask. */ #define XCL_CAPTH4_bp 4 /* TC16 Capture Value High Byte bit 4 position. */ #define XCL_CAPTH5_bm (1<<5) /* TC16 Capture Value High Byte bit 5 mask. */ #define XCL_CAPTH5_bp 5 /* TC16 Capture Value High Byte bit 5 position. */ #define XCL_CAPTH6_bm (1<<6) /* TC16 Capture Value High Byte bit 6 mask. */ #define XCL_CAPTH6_bp 6 /* TC16 Capture Value High Byte bit 6 position. */ #define XCL_CAPTH7_bm (1<<7) /* TC16 Capture Value High Byte bit 7 mask. */ #define XCL_CAPTH7_bp 7 /* TC16 Capture Value High Byte bit 7 position. */ #define XCL_BPER1_gm 0xFF /* BTC1 Period group mask. */ #define XCL_BPER1_gp 0 /* BTC1 Period group position. */ #define XCL_BPER10_bm (1<<0) /* BTC1 Period bit 0 mask. */ #define XCL_BPER10_bp 0 /* BTC1 Period bit 0 position. */ #define XCL_BPER11_bm (1<<1) /* BTC1 Period bit 1 mask. */ #define XCL_BPER11_bp 1 /* BTC1 Period bit 1 position. */ #define XCL_BPER12_bm (1<<2) /* BTC1 Period bit 2 mask. */ #define XCL_BPER12_bp 2 /* BTC1 Period bit 2 position. */ #define XCL_BPER13_bm (1<<3) /* BTC1 Period bit 3 mask. */ #define XCL_BPER13_bp 3 /* BTC1 Period bit 3 position. */ #define XCL_BPER14_bm (1<<4) /* BTC1 Period bit 4 mask. */ #define XCL_BPER14_bp 4 /* BTC1 Period bit 4 position. */ #define XCL_BPER15_bm (1<<5) /* BTC1 Period bit 5 mask. */ #define XCL_BPER15_bp 5 /* BTC1 Period bit 5 position. */ #define XCL_BPER16_bm (1<<6) /* BTC1 Period bit 6 mask. */ #define XCL_BPER16_bp 6 /* BTC1 Period bit 6 position. */ #define XCL_BPER17_bm (1<<7) /* BTC1 Period bit 7 mask. */ #define XCL_BPER17_bp 7 /* BTC1 Period bit 7 position. */ #define XCL_BCAPT1_gm 0xFF /* BTC1 Capture Value Byte group mask. */ #define XCL_BCAPT1_gp 0 /* BTC1 Capture Value Byte group position. */ #define XCL_BCAPT10_bm (1<<0) /* BTC1 Capture Value Byte bit 0 mask. */ #define XCL_BCAPT10_bp 0 /* BTC1 Capture Value Byte bit 0 position. */ #define XCL_BCAPT11_bm (1<<1) /* BTC1 Capture Value Byte bit 1 mask. */ #define XCL_BCAPT11_bp 1 /* BTC1 Capture Value Byte bit 1 position. */ #define XCL_BCAPT12_bm (1<<2) /* BTC1 Capture Value Byte bit 2 mask. */ #define XCL_BCAPT12_bp 2 /* BTC1 Capture Value Byte bit 2 position. */ #define XCL_BCAPT13_bm (1<<3) /* BTC1 Capture Value Byte bit 3 mask. */ #define XCL_BCAPT13_bp 3 /* BTC1 Capture Value Byte bit 3 position. */ #define XCL_BCAPT14_bm (1<<4) /* BTC1 Capture Value Byte bit 4 mask. */ #define XCL_BCAPT14_bp 4 /* BTC1 Capture Value Byte bit 4 position. */ #define XCL_BCAPT15_bm (1<<5) /* BTC1 Capture Value Byte bit 5 mask. */ #define XCL_BCAPT15_bp 5 /* BTC1 Capture Value Byte bit 5 position. */ #define XCL_BCAPT16_bm (1<<6) /* BTC1 Capture Value Byte bit 6 mask. */ #define XCL_BCAPT16_bp 6 /* BTC1 Capture Value Byte bit 6 position. */ #define XCL_BCAPT17_bm (1<<7) /* BTC1 Capture Value Byte bit 7 mask. */ #define XCL_BCAPT17_bp 7 /* BTC1 Capture Value Byte bit 7 position. */ /* TWI - Two-Wire Interface */ /* TWI.CTRL bit masks and bit positions */ #define TWI_BRIDGEEN_bm 0x80 /* Bridge Enable bit mask. */ #define TWI_BRIDGEEN_bp 7 /* Bridge Enable bit position. */ #define TWI_SFMPEN_bm 0x40 /* Slave Fast Mode Plus Enable bit mask. */ #define TWI_SFMPEN_bp 6 /* Slave Fast Mode Plus Enable bit position. */ #define TWI_SSDAHOLD_gm 0x30 /* Slave SDA Hold Time Enable group mask. */ #define TWI_SSDAHOLD_gp 4 /* Slave SDA Hold Time Enable group position. */ #define TWI_SSDAHOLD0_bm (1<<4) /* Slave SDA Hold Time Enable bit 0 mask. */ #define TWI_SSDAHOLD0_bp 4 /* Slave SDA Hold Time Enable bit 0 position. */ #define TWI_SSDAHOLD1_bm (1<<5) /* Slave SDA Hold Time Enable bit 1 mask. */ #define TWI_SSDAHOLD1_bp 5 /* Slave SDA Hold Time Enable bit 1 position. */ #define TWI_FMPEN_bm 0x08 /* FMPLUS Enable bit mask. */ #define TWI_FMPEN_bp 3 /* FMPLUS Enable bit position. */ #define TWI_SDAHOLD_gm 0x06 /* SDA Hold Time Enable group mask. */ #define TWI_SDAHOLD_gp 1 /* SDA Hold Time Enable group position. */ #define TWI_SDAHOLD0_bm (1<<1) /* SDA Hold Time Enable bit 0 mask. */ #define TWI_SDAHOLD0_bp 1 /* SDA Hold Time Enable bit 0 position. */ #define TWI_SDAHOLD1_bm (1<<2) /* SDA Hold Time Enable bit 1 mask. */ #define TWI_SDAHOLD1_bp 2 /* SDA Hold Time Enable bit 1 position. */ #define TWI_EDIEN_bm 0x01 /* External Driver Interface Enable bit mask. */ #define TWI_EDIEN_bp 0 /* External Driver Interface Enable bit position. */ /* TWI_MASTER.CTRLA bit masks and bit positions */ #define TWI_MASTER_INTLVL_gm 0xC0 /* Interrupt Level group mask. */ #define TWI_MASTER_INTLVL_gp 6 /* Interrupt Level group position. */ #define TWI_MASTER_INTLVL0_bm (1<<6) /* Interrupt Level bit 0 mask. */ #define TWI_MASTER_INTLVL0_bp 6 /* Interrupt Level bit 0 position. */ #define TWI_MASTER_INTLVL1_bm (1<<7) /* Interrupt Level bit 1 mask. */ #define TWI_MASTER_INTLVL1_bp 7 /* Interrupt Level bit 1 position. */ #define TWI_MASTER_RIEN_bm 0x20 /* Read Interrupt Enable bit mask. */ #define TWI_MASTER_RIEN_bp 5 /* Read Interrupt Enable bit position. */ #define TWI_MASTER_WIEN_bm 0x10 /* Write Interrupt Enable bit mask. */ #define TWI_MASTER_WIEN_bp 4 /* Write Interrupt Enable bit position. */ #define TWI_MASTER_ENABLE_bm 0x08 /* Enable TWI Master bit mask. */ #define TWI_MASTER_ENABLE_bp 3 /* Enable TWI Master bit position. */ /* TWI_MASTER.CTRLB bit masks and bit positions */ #define TWI_MASTER_TIMEOUT_gm 0x0C /* Inactive Bus Timeout group mask. */ #define TWI_MASTER_TIMEOUT_gp 2 /* Inactive Bus Timeout group position. */ #define TWI_MASTER_TIMEOUT0_bm (1<<2) /* Inactive Bus Timeout bit 0 mask. */ #define TWI_MASTER_TIMEOUT0_bp 2 /* Inactive Bus Timeout bit 0 position. */ #define TWI_MASTER_TIMEOUT1_bm (1<<3) /* Inactive Bus Timeout bit 1 mask. */ #define TWI_MASTER_TIMEOUT1_bp 3 /* Inactive Bus Timeout bit 1 position. */ #define TWI_MASTER_QCEN_bm 0x02 /* Quick Command Enable bit mask. */ #define TWI_MASTER_QCEN_bp 1 /* Quick Command Enable bit position. */ #define TWI_MASTER_SMEN_bm 0x01 /* Smart Mode Enable bit mask. */ #define TWI_MASTER_SMEN_bp 0 /* Smart Mode Enable bit position. */ #define TWI_MASTER_TTOUTEN_bm 0x10 /* Ttimeout Enable bit mask. */ #define TWI_MASTER_TTOUTEN_bp 4 /* Ttimeout Enable bit position. */ #define TWI_MASTER_TSEXTEN_bm 0x20 /* Slave Extend Timeout Enable bit mask. */ #define TWI_MASTER_TSEXTEN_bp 5 /* Slave Extend Timeout Enable bit position. */ #define TWI_MASTER_TMEXTEN_bm 0x40 /* Master Extend Timeout Enable bit mask. */ #define TWI_MASTER_TMEXTEN_bp 6 /* Master Extend Timeout Enable bit position. */ #define TWI_MASTER_TOIE_bm 0x80 /* Timeout Interrupt Enable bit mask. */ #define TWI_MASTER_TOIE_bp 7 /* Timeout Interrupt Enable bit position. */ /* TWI_MASTER.CTRLC bit masks and bit positions */ #define TWI_MASTER_ACKACT_bm 0x04 /* Acknowledge Action bit mask. */ #define TWI_MASTER_ACKACT_bp 2 /* Acknowledge Action bit position. */ #define TWI_MASTER_CMD_gm 0x03 /* Command group mask. */ #define TWI_MASTER_CMD_gp 0 /* Command group position. */ #define TWI_MASTER_CMD0_bm (1<<0) /* Command bit 0 mask. */ #define TWI_MASTER_CMD0_bp 0 /* Command bit 0 position. */ #define TWI_MASTER_CMD1_bm (1<<1) /* Command bit 1 mask. */ #define TWI_MASTER_CMD1_bp 1 /* Command bit 1 position. */ /* TWI_MASTER.STATUS bit masks and bit positions */ #define TWI_MASTER_RIF_bm 0x80 /* Read Interrupt Flag bit mask. */ #define TWI_MASTER_RIF_bp 7 /* Read Interrupt Flag bit position. */ #define TWI_MASTER_WIF_bm 0x40 /* Write Interrupt Flag bit mask. */ #define TWI_MASTER_WIF_bp 6 /* Write Interrupt Flag bit position. */ #define TWI_MASTER_CLKHOLD_bm 0x20 /* Clock Hold bit mask. */ #define TWI_MASTER_CLKHOLD_bp 5 /* Clock Hold bit position. */ #define TWI_MASTER_RXACK_bm 0x10 /* Received Acknowledge bit mask. */ #define TWI_MASTER_RXACK_bp 4 /* Received Acknowledge bit position. */ #define TWI_MASTER_ARBLOST_bm 0x08 /* Arbitration Lost bit mask. */ #define TWI_MASTER_ARBLOST_bp 3 /* Arbitration Lost bit position. */ #define TWI_MASTER_BUSERR_bm 0x04 /* Bus Error bit mask. */ #define TWI_MASTER_BUSERR_bp 2 /* Bus Error bit position. */ #define TWI_MASTER_BUSSTATE_gm 0x03 /* Bus State group mask. */ #define TWI_MASTER_BUSSTATE_gp 0 /* Bus State group position. */ #define TWI_MASTER_BUSSTATE0_bm (1<<0) /* Bus State bit 0 mask. */ #define TWI_MASTER_BUSSTATE0_bp 0 /* Bus State bit 0 position. */ #define TWI_MASTER_BUSSTATE1_bm (1<<1) /* Bus State bit 1 mask. */ #define TWI_MASTER_BUSSTATE1_bp 1 /* Bus State bit 1 position. */ /* TWI_SLAVE.CTRLA bit masks and bit positions */ #define TWI_SLAVE_INTLVL_gm 0xC0 /* Interrupt Level group mask. */ #define TWI_SLAVE_INTLVL_gp 6 /* Interrupt Level group position. */ #define TWI_SLAVE_INTLVL0_bm (1<<6) /* Interrupt Level bit 0 mask. */ #define TWI_SLAVE_INTLVL0_bp 6 /* Interrupt Level bit 0 position. */ #define TWI_SLAVE_INTLVL1_bm (1<<7) /* Interrupt Level bit 1 mask. */ #define TWI_SLAVE_INTLVL1_bp 7 /* Interrupt Level bit 1 position. */ #define TWI_SLAVE_DIEN_bm 0x20 /* Data Interrupt Enable bit mask. */ #define TWI_SLAVE_DIEN_bp 5 /* Data Interrupt Enable bit position. */ #define TWI_SLAVE_APIEN_bm 0x10 /* Address/Stop Interrupt Enable bit mask. */ #define TWI_SLAVE_APIEN_bp 4 /* Address/Stop Interrupt Enable bit position. */ #define TWI_SLAVE_ENABLE_bm 0x08 /* Enable TWI Slave bit mask. */ #define TWI_SLAVE_ENABLE_bp 3 /* Enable TWI Slave bit position. */ #define TWI_SLAVE_PIEN_bm 0x04 /* Stop Interrupt Enable bit mask. */ #define TWI_SLAVE_PIEN_bp 2 /* Stop Interrupt Enable bit position. */ #define TWI_SLAVE_PMEN_bm 0x02 /* Promiscuous Mode Enable bit mask. */ #define TWI_SLAVE_PMEN_bp 1 /* Promiscuous Mode Enable bit position. */ #define TWI_SLAVE_SMEN_bm 0x01 /* Smart Mode Enable bit mask. */ #define TWI_SLAVE_SMEN_bp 0 /* Smart Mode Enable bit position. */ /* TWI_SLAVE.CTRLB bit masks and bit positions */ #define TWI_SLAVE_ACKACT_bm 0x04 /* Acknowledge Action bit mask. */ #define TWI_SLAVE_ACKACT_bp 2 /* Acknowledge Action bit position. */ #define TWI_SLAVE_CMD_gm 0x03 /* Command group mask. */ #define TWI_SLAVE_CMD_gp 0 /* Command group position. */ #define TWI_SLAVE_CMD0_bm (1<<0) /* Command bit 0 mask. */ #define TWI_SLAVE_CMD0_bp 0 /* Command bit 0 position. */ #define TWI_SLAVE_CMD1_bm (1<<1) /* Command bit 1 mask. */ #define TWI_SLAVE_CMD1_bp 1 /* Command bit 1 position. */ #define TWI_SLAVE_TTOUTEN_bm 0x10 /* Ttimeout Enable bit mask. */ #define TWI_SLAVE_TTOUTEN_bp 4 /* Ttimeout Enable bit position. */ #define TWI_SLAVE_TOIE_bm 0x80 /* Timeout Interrupt Enable bit mask. */ #define TWI_SLAVE_TOIE_bp 7 /* Timeout Interrupt Enable bit position. */ /* TWI_SLAVE.STATUS bit masks and bit positions */ #define TWI_SLAVE_DIF_bm 0x80 /* Data Interrupt Flag bit mask. */ #define TWI_SLAVE_DIF_bp 7 /* Data Interrupt Flag bit position. */ #define TWI_SLAVE_APIF_bm 0x40 /* Address/Stop Interrupt Flag bit mask. */ #define TWI_SLAVE_APIF_bp 6 /* Address/Stop Interrupt Flag bit position. */ #define TWI_SLAVE_CLKHOLD_bm 0x20 /* Clock Hold bit mask. */ #define TWI_SLAVE_CLKHOLD_bp 5 /* Clock Hold bit position. */ #define TWI_SLAVE_RXACK_bm 0x10 /* Received Acknowledge bit mask. */ #define TWI_SLAVE_RXACK_bp 4 /* Received Acknowledge bit position. */ #define TWI_SLAVE_COLL_bm 0x08 /* Collision bit mask. */ #define TWI_SLAVE_COLL_bp 3 /* Collision bit position. */ #define TWI_SLAVE_BUSERR_bm 0x04 /* Bus Error bit mask. */ #define TWI_SLAVE_BUSERR_bp 2 /* Bus Error bit position. */ #define TWI_SLAVE_DIR_bm 0x02 /* Read/Write Direction bit mask. */ #define TWI_SLAVE_DIR_bp 1 /* Read/Write Direction bit position. */ #define TWI_SLAVE_AP_bm 0x01 /* Slave Address or Stop bit mask. */ #define TWI_SLAVE_AP_bp 0 /* Slave Address or Stop bit position. */ /* TWI_SLAVE.ADDRMASK bit masks and bit positions */ #define TWI_SLAVE_ADDRMASK_gm 0xFE /* Address Mask group mask. */ #define TWI_SLAVE_ADDRMASK_gp 1 /* Address Mask group position. */ #define TWI_SLAVE_ADDRMASK0_bm (1<<1) /* Address Mask bit 0 mask. */ #define TWI_SLAVE_ADDRMASK0_bp 1 /* Address Mask bit 0 position. */ #define TWI_SLAVE_ADDRMASK1_bm (1<<2) /* Address Mask bit 1 mask. */ #define TWI_SLAVE_ADDRMASK1_bp 2 /* Address Mask bit 1 position. */ #define TWI_SLAVE_ADDRMASK2_bm (1<<3) /* Address Mask bit 2 mask. */ #define TWI_SLAVE_ADDRMASK2_bp 3 /* Address Mask bit 2 position. */ #define TWI_SLAVE_ADDRMASK3_bm (1<<4) /* Address Mask bit 3 mask. */ #define TWI_SLAVE_ADDRMASK3_bp 4 /* Address Mask bit 3 position. */ #define TWI_SLAVE_ADDRMASK4_bm (1<<5) /* Address Mask bit 4 mask. */ #define TWI_SLAVE_ADDRMASK4_bp 5 /* Address Mask bit 4 position. */ #define TWI_SLAVE_ADDRMASK5_bm (1<<6) /* Address Mask bit 5 mask. */ #define TWI_SLAVE_ADDRMASK5_bp 6 /* Address Mask bit 5 position. */ #define TWI_SLAVE_ADDRMASK6_bm (1<<7) /* Address Mask bit 6 mask. */ #define TWI_SLAVE_ADDRMASK6_bp 7 /* Address Mask bit 6 position. */ #define TWI_SLAVE_ADDREN_bm 0x01 /* Address Enable bit mask. */ #define TWI_SLAVE_ADDREN_bp 0 /* Address Enable bit position. */ /* TWI_TIMEOUT.TOS bit masks and bit positions */ #define TWI_TIMEOUT_TTOUTMIF_bm 0x01 /* Master Ttimeout Interrupt Flag bit mask. */ #define TWI_TIMEOUT_TTOUTMIF_bp 0 /* Master Ttimeout Interrupt Flag bit position. */ #define TWI_TIMEOUT_TSEXTIF_bm 0x02 /* Slave Extend Interrupt Flag bit mask. */ #define TWI_TIMEOUT_TSEXTIF_bp 1 /* Slave Extend Interrupt Flag bit position. */ #define TWI_TIMEOUT_TMEXTIF_bm 0x04 /* Master Extend Interrupt Flag bit mask. */ #define TWI_TIMEOUT_TMEXTIF_bp 2 /* Master Extend Interrupt Flag bit position. */ #define TWI_TIMEOUT_TTOUTSIF_bm 0x10 /* Slave Ttimeout Interrupt Flag bit mask. */ #define TWI_TIMEOUT_TTOUTSIF_bp 4 /* Slave Ttimeout Interrupt Flag bit position. */ /* TWI_TIMEOUT.TOCONF bit masks and bit positions */ #define TWI_TIMEOUT_TTOUTMSEL_gm 0x07 /* Master Ttimeout Select group mask. */ #define TWI_TIMEOUT_TTOUTMSEL_gp 0 /* Master Ttimeout Select group position. */ #define TWI_TIMEOUT_TTOUTMSEL0_bm (1<<0) /* Master Ttimeout Select bit 0 mask. */ #define TWI_TIMEOUT_TTOUTMSEL0_bp 0 /* Master Ttimeout Select bit 0 position. */ #define TWI_TIMEOUT_TTOUTMSEL1_bm (1<<1) /* Master Ttimeout Select bit 1 mask. */ #define TWI_TIMEOUT_TTOUTMSEL1_bp 1 /* Master Ttimeout Select bit 1 position. */ #define TWI_TIMEOUT_TTOUTMSEL2_bm (1<<2) /* Master Ttimeout Select bit 2 mask. */ #define TWI_TIMEOUT_TTOUTMSEL2_bp 2 /* Master Ttimeout Select bit 2 position. */ #define TWI_TIMEOUT_TMSEXTSEL_gm 0x18 /* Master/Slave Timeout Select group mask. */ #define TWI_TIMEOUT_TMSEXTSEL_gp 3 /* Master/Slave Timeout Select group position. */ #define TWI_TIMEOUT_TMSEXTSEL0_bm (1<<3) /* Master/Slave Timeout Select bit 0 mask. */ #define TWI_TIMEOUT_TMSEXTSEL0_bp 3 /* Master/Slave Timeout Select bit 0 position. */ #define TWI_TIMEOUT_TMSEXTSEL1_bm (1<<4) /* Master/Slave Timeout Select bit 1 mask. */ #define TWI_TIMEOUT_TMSEXTSEL1_bp 4 /* Master/Slave Timeout Select bit 1 position. */ #define TWI_TIMEOUT_TTOUTSSEL_gm 0xE0 /* Slave Ttimeout Select group mask. */ #define TWI_TIMEOUT_TTOUTSSEL_gp 5 /* Slave Ttimeout Select group position. */ #define TWI_TIMEOUT_TTOUTSSEL0_bm (1<<5) /* Slave Ttimeout Select bit 0 mask. */ #define TWI_TIMEOUT_TTOUTSSEL0_bp 5 /* Slave Ttimeout Select bit 0 position. */ #define TWI_TIMEOUT_TTOUTSSEL1_bm (1<<6) /* Slave Ttimeout Select bit 1 mask. */ #define TWI_TIMEOUT_TTOUTSSEL1_bp 6 /* Slave Ttimeout Select bit 1 position. */ #define TWI_TIMEOUT_TTOUTSSEL2_bm (1<<7) /* Slave Ttimeout Select bit 2 mask. */ #define TWI_TIMEOUT_TTOUTSSEL2_bp 7 /* Slave Ttimeout Select bit 2 position. */ /* PORT - Port Configuration */ /* PORT.INTCTRL bit masks and bit positions */ #define PORT_INTLVL_gm 0x03 /* Port Interrupt Level group mask. */ #define PORT_INTLVL_gp 0 /* Port Interrupt Level group position. */ #define PORT_INTLVL0_bm (1<<0) /* Port Interrupt Level bit 0 mask. */ #define PORT_INTLVL0_bp 0 /* Port Interrupt Level bit 0 position. */ #define PORT_INTLVL1_bm (1<<1) /* Port Interrupt Level bit 1 mask. */ #define PORT_INTLVL1_bp 1 /* Port Interrupt Level bit 1 position. */ /* PORT.INTFLAGS bit masks and bit positions */ #define PORT_INT7IF_bm 0x80 /* Pin 7 Interrupt Flag bit mask. */ #define PORT_INT7IF_bp 7 /* Pin 7 Interrupt Flag bit position. */ #define PORT_INT6IF_bm 0x40 /* Pin 6 Interrupt Flag bit mask. */ #define PORT_INT6IF_bp 6 /* Pin 6 Interrupt Flag bit position. */ #define PORT_INT5IF_bm 0x20 /* Pin 5 Interrupt Flag bit mask. */ #define PORT_INT5IF_bp 5 /* Pin 5 Interrupt Flag bit position. */ #define PORT_INT4IF_bm 0x10 /* Pin 4 Interrupt Flag bit mask. */ #define PORT_INT4IF_bp 4 /* Pin 4 Interrupt Flag bit position. */ #define PORT_INT3IF_bm 0x08 /* Pin 3 Interrupt Flag bit mask. */ #define PORT_INT3IF_bp 3 /* Pin 3 Interrupt Flag bit position. */ #define PORT_INT2IF_bm 0x04 /* Pin 2 Interrupt Flag bit mask. */ #define PORT_INT2IF_bp 2 /* Pin 2 Interrupt Flag bit position. */ #define PORT_INT1IF_bm 0x02 /* Pin 1 Interrupt Flag bit mask. */ #define PORT_INT1IF_bp 1 /* Pin 1 Interrupt Flag bit position. */ #define PORT_INT0IF_bm 0x01 /* Pin 0 Interrupt Flag bit mask. */ #define PORT_INT0IF_bp 0 /* Pin 0 Interrupt Flag bit position. */ /* PORT.REMAP bit masks and bit positions */ #define PORT_USART0_bm 0x10 /* Usart0 bit mask. */ #define PORT_USART0_bp 4 /* Usart0 bit position. */ #define PORT_TC4D_bm 0x08 /* Timer/Counter 4 Output Compare D bit mask. */ #define PORT_TC4D_bp 3 /* Timer/Counter 4 Output Compare D bit position. */ #define PORT_TC4C_bm 0x04 /* Timer/Counter 4 Output Compare C bit mask. */ #define PORT_TC4C_bp 2 /* Timer/Counter 4 Output Compare C bit position. */ #define PORT_TC4B_bm 0x02 /* Timer/Counter 4 Output Compare B bit mask. */ #define PORT_TC4B_bp 1 /* Timer/Counter 4 Output Compare B bit position. */ #define PORT_TC4A_bm 0x01 /* Timer/Counter 4 Output Compare A bit mask. */ #define PORT_TC4A_bp 0 /* Timer/Counter 4 Output Compare A bit position. */ /* PORT.PIN0CTRL bit masks and bit positions */ #define PORT_INVEN_bm 0x40 /* Inverted I/O Enable bit mask. */ #define PORT_INVEN_bp 6 /* Inverted I/O Enable bit position. */ #define PORT_OPC_gm 0x38 /* Output/Pull Configuration group mask. */ #define PORT_OPC_gp 3 /* Output/Pull Configuration group position. */ #define PORT_OPC0_bm (1<<3) /* Output/Pull Configuration bit 0 mask. */ #define PORT_OPC0_bp 3 /* Output/Pull Configuration bit 0 position. */ #define PORT_OPC1_bm (1<<4) /* Output/Pull Configuration bit 1 mask. */ #define PORT_OPC1_bp 4 /* Output/Pull Configuration bit 1 position. */ #define PORT_OPC2_bm (1<<5) /* Output/Pull Configuration bit 2 mask. */ #define PORT_OPC2_bp 5 /* Output/Pull Configuration bit 2 position. */ #define PORT_ISC_gm 0x07 /* Input/Sense Configuration group mask. */ #define PORT_ISC_gp 0 /* Input/Sense Configuration group position. */ #define PORT_ISC0_bm (1<<0) /* Input/Sense Configuration bit 0 mask. */ #define PORT_ISC0_bp 0 /* Input/Sense Configuration bit 0 position. */ #define PORT_ISC1_bm (1<<1) /* Input/Sense Configuration bit 1 mask. */ #define PORT_ISC1_bp 1 /* Input/Sense Configuration bit 1 position. */ #define PORT_ISC2_bm (1<<2) /* Input/Sense Configuration bit 2 mask. */ #define PORT_ISC2_bp 2 /* Input/Sense Configuration bit 2 position. */ /* PORT.PIN1CTRL bit masks and bit positions */ /* PORT_INVEN Predefined. */ /* PORT_INVEN Predefined. */ /* PORT_OPC Predefined. */ /* PORT_OPC Predefined. */ /* PORT_ISC Predefined. */ /* PORT_ISC Predefined. */ /* PORT.PIN2CTRL bit masks and bit positions */ /* PORT_INVEN Predefined. */ /* PORT_INVEN Predefined. */ /* PORT_OPC Predefined. */ /* PORT_OPC Predefined. */ /* PORT_ISC Predefined. */ /* PORT_ISC Predefined. */ /* PORT.PIN3CTRL bit masks and bit positions */ /* PORT_INVEN Predefined. */ /* PORT_INVEN Predefined. */ /* PORT_OPC Predefined. */ /* PORT_OPC Predefined. */ /* PORT_ISC Predefined. */ /* PORT_ISC Predefined. */ /* PORT.PIN4CTRL bit masks and bit positions */ /* PORT_INVEN Predefined. */ /* PORT_INVEN Predefined. */ /* PORT_OPC Predefined. */ /* PORT_OPC Predefined. */ /* PORT_ISC Predefined. */ /* PORT_ISC Predefined. */ /* PORT.PIN5CTRL bit masks and bit positions */ /* PORT_INVEN Predefined. */ /* PORT_INVEN Predefined. */ /* PORT_OPC Predefined. */ /* PORT_OPC Predefined. */ /* PORT_ISC Predefined. */ /* PORT_ISC Predefined. */ /* PORT.PIN6CTRL bit masks and bit positions */ /* PORT_INVEN Predefined. */ /* PORT_INVEN Predefined. */ /* PORT_OPC Predefined. */ /* PORT_OPC Predefined. */ /* PORT_ISC Predefined. */ /* PORT_ISC Predefined. */ /* PORT.PIN7CTRL bit masks and bit positions */ /* PORT_INVEN Predefined. */ /* PORT_INVEN Predefined. */ /* PORT_OPC Predefined. */ /* PORT_OPC Predefined. */ /* PORT_ISC Predefined. */ /* PORT_ISC Predefined. */ /* TC - 16-bit Timer/Counter With PWM */ /* TC4.CTRLA bit masks and bit positions */ #define TC4_SYNCHEN_bm 0x40 /* Synchronization Enabled bit mask. */ #define TC4_SYNCHEN_bp 6 /* Synchronization Enabled bit position. */ #define TC4_EVSTART_bm 0x20 /* Start on Next Event bit mask. */ #define TC4_EVSTART_bp 5 /* Start on Next Event bit position. */ #define TC4_UPSTOP_bm 0x10 /* Stop on Next Update bit mask. */ #define TC4_UPSTOP_bp 4 /* Stop on Next Update bit position. */ #define TC4_CLKSEL_gm 0x0F /* Clock Select group mask. */ #define TC4_CLKSEL_gp 0 /* Clock Select group position. */ #define TC4_CLKSEL0_bm (1<<0) /* Clock Select bit 0 mask. */ #define TC4_CLKSEL0_bp 0 /* Clock Select bit 0 position. */ #define TC4_CLKSEL1_bm (1<<1) /* Clock Select bit 1 mask. */ #define TC4_CLKSEL1_bp 1 /* Clock Select bit 1 position. */ #define TC4_CLKSEL2_bm (1<<2) /* Clock Select bit 2 mask. */ #define TC4_CLKSEL2_bp 2 /* Clock Select bit 2 position. */ #define TC4_CLKSEL3_bm (1<<3) /* Clock Select bit 3 mask. */ #define TC4_CLKSEL3_bp 3 /* Clock Select bit 3 position. */ /* TC4.CTRLB bit masks and bit positions */ #define TC4_BYTEM_gm 0xC0 /* Byte Mode group mask. */ #define TC4_BYTEM_gp 6 /* Byte Mode group position. */ #define TC4_BYTEM0_bm (1<<6) /* Byte Mode bit 0 mask. */ #define TC4_BYTEM0_bp 6 /* Byte Mode bit 0 position. */ #define TC4_BYTEM1_bm (1<<7) /* Byte Mode bit 1 mask. */ #define TC4_BYTEM1_bp 7 /* Byte Mode bit 1 position. */ #define TC4_CIRCEN_gm 0x30 /* Circular Buffer Enable group mask. */ #define TC4_CIRCEN_gp 4 /* Circular Buffer Enable group position. */ #define TC4_CIRCEN0_bm (1<<4) /* Circular Buffer Enable bit 0 mask. */ #define TC4_CIRCEN0_bp 4 /* Circular Buffer Enable bit 0 position. */ #define TC4_CIRCEN1_bm (1<<5) /* Circular Buffer Enable bit 1 mask. */ #define TC4_CIRCEN1_bp 5 /* Circular Buffer Enable bit 1 position. */ #define TC4_WGMODE_gm 0x07 /* Waveform Generation Mode group mask. */ #define TC4_WGMODE_gp 0 /* Waveform Generation Mode group position. */ #define TC4_WGMODE0_bm (1<<0) /* Waveform Generation Mode bit 0 mask. */ #define TC4_WGMODE0_bp 0 /* Waveform Generation Mode bit 0 position. */ #define TC4_WGMODE1_bm (1<<1) /* Waveform Generation Mode bit 1 mask. */ #define TC4_WGMODE1_bp 1 /* Waveform Generation Mode bit 1 position. */ #define TC4_WGMODE2_bm (1<<2) /* Waveform Generation Mode bit 2 mask. */ #define TC4_WGMODE2_bp 2 /* Waveform Generation Mode bit 2 position. */ /* TC4.CTRLC bit masks and bit positions */ #define TC4_POLD_bm 0x80 /* Channel D Output Polarity bit mask. */ #define TC4_POLD_bp 7 /* Channel D Output Polarity bit position. */ #define TC4_POLC_bm 0x40 /* Channel C Output Polarity bit mask. */ #define TC4_POLC_bp 6 /* Channel C Output Polarity bit position. */ #define TC4_POLB_bm 0x20 /* Channel B Output Polarity bit mask. */ #define TC4_POLB_bp 5 /* Channel B Output Polarity bit position. */ #define TC4_POLA_bm 0x10 /* Channel A Output Polarity bit mask. */ #define TC4_POLA_bp 4 /* Channel A Output Polarity bit position. */ #define TC4_CMPD_bm 0x08 /* Channel D Compare Output Value bit mask. */ #define TC4_CMPD_bp 3 /* Channel D Compare Output Value bit position. */ #define TC4_CMPC_bm 0x04 /* Channel C Compare Output Value bit mask. */ #define TC4_CMPC_bp 2 /* Channel C Compare Output Value bit position. */ #define TC4_CMPB_bm 0x02 /* Channel B Compare Output Value bit mask. */ #define TC4_CMPB_bp 1 /* Channel B Compare Output Value bit position. */ #define TC4_CMPA_bm 0x01 /* Channel A Compare Output Value bit mask. */ #define TC4_CMPA_bp 0 /* Channel A Compare Output Value bit position. */ #define TC4_HCMPD_bm 0x80 /* High Channel D Compare Output Value bit mask. */ #define TC4_HCMPD_bp 7 /* High Channel D Compare Output Value bit position. */ #define TC4_HCMPC_bm 0x40 /* High Channel C Compare Output Value bit mask. */ #define TC4_HCMPC_bp 6 /* High Channel C Compare Output Value bit position. */ #define TC4_HCMPB_bm 0x20 /* High Channel B Compare Output Value bit mask. */ #define TC4_HCMPB_bp 5 /* High Channel B Compare Output Value bit position. */ #define TC4_HCMPA_bm 0x10 /* High Channel A Compare Output Value bit mask. */ #define TC4_HCMPA_bp 4 /* High Channel A Compare Output Value bit position. */ #define TC4_LCMPD_bm 0x08 /* Low Channel D Compare Output Value bit mask. */ #define TC4_LCMPD_bp 3 /* Low Channel D Compare Output Value bit position. */ #define TC4_LCMPC_bm 0x04 /* Low Channel C Compare Output Value bit mask. */ #define TC4_LCMPC_bp 2 /* Low Channel C Compare Output Value bit position. */ #define TC4_LCMPB_bm 0x02 /* Low Channel B Compare Output Value bit mask. */ #define TC4_LCMPB_bp 1 /* Low Channel B Compare Output Value bit position. */ #define TC4_LCMPA_bm 0x01 /* Low Channel A Compare Output Value bit mask. */ #define TC4_LCMPA_bp 0 /* Low Channel A Compare Output Value bit position. */ /* TC4.CTRLD bit masks and bit positions */ #define TC4_EVACT_gm 0xE0 /* Event Action group mask. */ #define TC4_EVACT_gp 5 /* Event Action group position. */ #define TC4_EVACT0_bm (1<<5) /* Event Action bit 0 mask. */ #define TC4_EVACT0_bp 5 /* Event Action bit 0 position. */ #define TC4_EVACT1_bm (1<<6) /* Event Action bit 1 mask. */ #define TC4_EVACT1_bp 6 /* Event Action bit 1 position. */ #define TC4_EVACT2_bm (1<<7) /* Event Action bit 2 mask. */ #define TC4_EVACT2_bp 7 /* Event Action bit 2 position. */ #define TC4_EVDLY_bm 0x10 /* Event Delay bit mask. */ #define TC4_EVDLY_bp 4 /* Event Delay bit position. */ #define TC4_EVSEL_gm 0x0F /* Event Source Select group mask. */ #define TC4_EVSEL_gp 0 /* Event Source Select group position. */ #define TC4_EVSEL0_bm (1<<0) /* Event Source Select bit 0 mask. */ #define TC4_EVSEL0_bp 0 /* Event Source Select bit 0 position. */ #define TC4_EVSEL1_bm (1<<1) /* Event Source Select bit 1 mask. */ #define TC4_EVSEL1_bp 1 /* Event Source Select bit 1 position. */ #define TC4_EVSEL2_bm (1<<2) /* Event Source Select bit 2 mask. */ #define TC4_EVSEL2_bp 2 /* Event Source Select bit 2 position. */ #define TC4_EVSEL3_bm (1<<3) /* Event Source Select bit 3 mask. */ #define TC4_EVSEL3_bp 3 /* Event Source Select bit 3 position. */ /* TC4.CTRLE bit masks and bit positions */ #define TC4_CCDMODE_gm 0xC0 /* Channel D Compare or Capture Mode group mask. */ #define TC4_CCDMODE_gp 6 /* Channel D Compare or Capture Mode group position. */ #define TC4_CCDMODE0_bm (1<<6) /* Channel D Compare or Capture Mode bit 0 mask. */ #define TC4_CCDMODE0_bp 6 /* Channel D Compare or Capture Mode bit 0 position. */ #define TC4_CCDMODE1_bm (1<<7) /* Channel D Compare or Capture Mode bit 1 mask. */ #define TC4_CCDMODE1_bp 7 /* Channel D Compare or Capture Mode bit 1 position. */ #define TC4_CCCMODE_gm 0x30 /* Channel C Compare or Capture Mode group mask. */ #define TC4_CCCMODE_gp 4 /* Channel C Compare or Capture Mode group position. */ #define TC4_CCCMODE0_bm (1<<4) /* Channel C Compare or Capture Mode bit 0 mask. */ #define TC4_CCCMODE0_bp 4 /* Channel C Compare or Capture Mode bit 0 position. */ #define TC4_CCCMODE1_bm (1<<5) /* Channel C Compare or Capture Mode bit 1 mask. */ #define TC4_CCCMODE1_bp 5 /* Channel C Compare or Capture Mode bit 1 position. */ #define TC4_CCBMODE_gm 0x0C /* Channel B Compare or Capture Mode group mask. */ #define TC4_CCBMODE_gp 2 /* Channel B Compare or Capture Mode group position. */ #define TC4_CCBMODE0_bm (1<<2) /* Channel B Compare or Capture Mode bit 0 mask. */ #define TC4_CCBMODE0_bp 2 /* Channel B Compare or Capture Mode bit 0 position. */ #define TC4_CCBMODE1_bm (1<<3) /* Channel B Compare or Capture Mode bit 1 mask. */ #define TC4_CCBMODE1_bp 3 /* Channel B Compare or Capture Mode bit 1 position. */ #define TC4_CCAMODE_gm 0x03 /* Channel A Compare or Capture Mode group mask. */ #define TC4_CCAMODE_gp 0 /* Channel A Compare or Capture Mode group position. */ #define TC4_CCAMODE0_bm (1<<0) /* Channel A Compare or Capture Mode bit 0 mask. */ #define TC4_CCAMODE0_bp 0 /* Channel A Compare or Capture Mode bit 0 position. */ #define TC4_CCAMODE1_bm (1<<1) /* Channel A Compare or Capture Mode bit 1 mask. */ #define TC4_CCAMODE1_bp 1 /* Channel A Compare or Capture Mode bit 1 position. */ #define TC4_LCCDMODE_gm 0xC0 /* Channel Low D Compare or Capture Mode group mask. */ #define TC4_LCCDMODE_gp 6 /* Channel Low D Compare or Capture Mode group position. */ #define TC4_LCCDMODE0_bm (1<<6) /* Channel Low D Compare or Capture Mode bit 0 mask. */ #define TC4_LCCDMODE0_bp 6 /* Channel Low D Compare or Capture Mode bit 0 position. */ #define TC4_LCCDMODE1_bm (1<<7) /* Channel Low D Compare or Capture Mode bit 1 mask. */ #define TC4_LCCDMODE1_bp 7 /* Channel Low D Compare or Capture Mode bit 1 position. */ #define TC4_LCCCMODE_gm 0x30 /* Channel Low C Compare or Capture Mode group mask. */ #define TC4_LCCCMODE_gp 4 /* Channel Low C Compare or Capture Mode group position. */ #define TC4_LCCCMODE0_bm (1<<4) /* Channel Low C Compare or Capture Mode bit 0 mask. */ #define TC4_LCCCMODE0_bp 4 /* Channel Low C Compare or Capture Mode bit 0 position. */ #define TC4_LCCCMODE1_bm (1<<5) /* Channel Low C Compare or Capture Mode bit 1 mask. */ #define TC4_LCCCMODE1_bp 5 /* Channel Low C Compare or Capture Mode bit 1 position. */ #define TC4_LCCBMODE_gm 0x0C /* Channel Low B Compare or Capture Mode group mask. */ #define TC4_LCCBMODE_gp 2 /* Channel Low B Compare or Capture Mode group position. */ #define TC4_LCCBMODE0_bm (1<<2) /* Channel Low B Compare or Capture Mode bit 0 mask. */ #define TC4_LCCBMODE0_bp 2 /* Channel Low B Compare or Capture Mode bit 0 position. */ #define TC4_LCCBMODE1_bm (1<<3) /* Channel Low B Compare or Capture Mode bit 1 mask. */ #define TC4_LCCBMODE1_bp 3 /* Channel Low B Compare or Capture Mode bit 1 position. */ #define TC4_LCCAMODE_gm 0x03 /* Channel Low A Compare or Capture Mode group mask. */ #define TC4_LCCAMODE_gp 0 /* Channel Low A Compare or Capture Mode group position. */ #define TC4_LCCAMODE0_bm (1<<0) /* Channel Low A Compare or Capture Mode bit 0 mask. */ #define TC4_LCCAMODE0_bp 0 /* Channel Low A Compare or Capture Mode bit 0 position. */ #define TC4_LCCAMODE1_bm (1<<1) /* Channel Low A Compare or Capture Mode bit 1 mask. */ #define TC4_LCCAMODE1_bp 1 /* Channel Low A Compare or Capture Mode bit 1 position. */ /* TC4.CTRLF bit masks and bit positions */ #define TC4_HCCDMODE_gm 0xC0 /* Channel High D Compare or Capture Mode group mask. */ #define TC4_HCCDMODE_gp 6 /* Channel High D Compare or Capture Mode group position. */ #define TC4_HCCDMODE0_bm (1<<6) /* Channel High D Compare or Capture Mode bit 0 mask. */ #define TC4_HCCDMODE0_bp 6 /* Channel High D Compare or Capture Mode bit 0 position. */ #define TC4_HCCDMODE1_bm (1<<7) /* Channel High D Compare or Capture Mode bit 1 mask. */ #define TC4_HCCDMODE1_bp 7 /* Channel High D Compare or Capture Mode bit 1 position. */ #define TC4_HCCCMODE_gm 0x30 /* Channel High C Compare or Capture Mode group mask. */ #define TC4_HCCCMODE_gp 4 /* Channel High C Compare or Capture Mode group position. */ #define TC4_HCCCMODE0_bm (1<<4) /* Channel High C Compare or Capture Mode bit 0 mask. */ #define TC4_HCCCMODE0_bp 4 /* Channel High C Compare or Capture Mode bit 0 position. */ #define TC4_HCCCMODE1_bm (1<<5) /* Channel High C Compare or Capture Mode bit 1 mask. */ #define TC4_HCCCMODE1_bp 5 /* Channel High C Compare or Capture Mode bit 1 position. */ #define TC4_HCCBMODE_gm 0x0C /* Channel High B Compare or Capture Mode group mask. */ #define TC4_HCCBMODE_gp 2 /* Channel High B Compare or Capture Mode group position. */ #define TC4_HCCBMODE0_bm (1<<2) /* Channel High B Compare or Capture Mode bit 0 mask. */ #define TC4_HCCBMODE0_bp 2 /* Channel High B Compare or Capture Mode bit 0 position. */ #define TC4_HCCBMODE1_bm (1<<3) /* Channel High B Compare or Capture Mode bit 1 mask. */ #define TC4_HCCBMODE1_bp 3 /* Channel High B Compare or Capture Mode bit 1 position. */ #define TC4_HCCAMODE_gm 0x03 /* Channel High A Compare or Capture Mode group mask. */ #define TC4_HCCAMODE_gp 0 /* Channel High A Compare or Capture Mode group position. */ #define TC4_HCCAMODE0_bm (1<<0) /* Channel High A Compare or Capture Mode bit 0 mask. */ #define TC4_HCCAMODE0_bp 0 /* Channel High A Compare or Capture Mode bit 0 position. */ #define TC4_HCCAMODE1_bm (1<<1) /* Channel High A Compare or Capture Mode bit 1 mask. */ #define TC4_HCCAMODE1_bp 1 /* Channel High A Compare or Capture Mode bit 1 position. */ /* TC4.INTCTRLA bit masks and bit positions */ #define TC4_TRGINTLVL_gm 0x30 /* Timer Trigger Restart Interrupt Level group mask. */ #define TC4_TRGINTLVL_gp 4 /* Timer Trigger Restart Interrupt Level group position. */ #define TC4_TRGINTLVL0_bm (1<<4) /* Timer Trigger Restart Interrupt Level bit 0 mask. */ #define TC4_TRGINTLVL0_bp 4 /* Timer Trigger Restart Interrupt Level bit 0 position. */ #define TC4_TRGINTLVL1_bm (1<<5) /* Timer Trigger Restart Interrupt Level bit 1 mask. */ #define TC4_TRGINTLVL1_bp 5 /* Timer Trigger Restart Interrupt Level bit 1 position. */ #define TC4_ERRINTLVL_gm 0x0C /* Timer Error Interrupt Level group mask. */ #define TC4_ERRINTLVL_gp 2 /* Timer Error Interrupt Level group position. */ #define TC4_ERRINTLVL0_bm (1<<2) /* Timer Error Interrupt Level bit 0 mask. */ #define TC4_ERRINTLVL0_bp 2 /* Timer Error Interrupt Level bit 0 position. */ #define TC4_ERRINTLVL1_bm (1<<3) /* Timer Error Interrupt Level bit 1 mask. */ #define TC4_ERRINTLVL1_bp 3 /* Timer Error Interrupt Level bit 1 position. */ #define TC4_OVFINTLVL_gm 0x03 /* Timer Overflow/Underflow Interrupt Level group mask. */ #define TC4_OVFINTLVL_gp 0 /* Timer Overflow/Underflow Interrupt Level group position. */ #define TC4_OVFINTLVL0_bm (1<<0) /* Timer Overflow/Underflow Interrupt Level bit 0 mask. */ #define TC4_OVFINTLVL0_bp 0 /* Timer Overflow/Underflow Interrupt Level bit 0 position. */ #define TC4_OVFINTLVL1_bm (1<<1) /* Timer Overflow/Underflow Interrupt Level bit 1 mask. */ #define TC4_OVFINTLVL1_bp 1 /* Timer Overflow/Underflow Interrupt Level bit 1 position. */ /* TC4.INTCTRLB bit masks and bit positions */ #define TC4_CCDINTLVL_gm 0xC0 /* Channel D Compare or Capture Interrupt Level group mask. */ #define TC4_CCDINTLVL_gp 6 /* Channel D Compare or Capture Interrupt Level group position. */ #define TC4_CCDINTLVL0_bm (1<<6) /* Channel D Compare or Capture Interrupt Level bit 0 mask. */ #define TC4_CCDINTLVL0_bp 6 /* Channel D Compare or Capture Interrupt Level bit 0 position. */ #define TC4_CCDINTLVL1_bm (1<<7) /* Channel D Compare or Capture Interrupt Level bit 1 mask. */ #define TC4_CCDINTLVL1_bp 7 /* Channel D Compare or Capture Interrupt Level bit 1 position. */ #define TC4_CCCINTLVL_gm 0x30 /* Channel C Compare or Capture Interrupt Level group mask. */ #define TC4_CCCINTLVL_gp 4 /* Channel C Compare or Capture Interrupt Level group position. */ #define TC4_CCCINTLVL0_bm (1<<4) /* Channel C Compare or Capture Interrupt Level bit 0 mask. */ #define TC4_CCCINTLVL0_bp 4 /* Channel C Compare or Capture Interrupt Level bit 0 position. */ #define TC4_CCCINTLVL1_bm (1<<5) /* Channel C Compare or Capture Interrupt Level bit 1 mask. */ #define TC4_CCCINTLVL1_bp 5 /* Channel C Compare or Capture Interrupt Level bit 1 position. */ #define TC4_CCBINTLVL_gm 0x0C /* Channel B Compare or Capture Interrupt Level group mask. */ #define TC4_CCBINTLVL_gp 2 /* Channel B Compare or Capture Interrupt Level group position. */ #define TC4_CCBINTLVL0_bm (1<<2) /* Channel B Compare or Capture Interrupt Level bit 0 mask. */ #define TC4_CCBINTLVL0_bp 2 /* Channel B Compare or Capture Interrupt Level bit 0 position. */ #define TC4_CCBINTLVL1_bm (1<<3) /* Channel B Compare or Capture Interrupt Level bit 1 mask. */ #define TC4_CCBINTLVL1_bp 3 /* Channel B Compare or Capture Interrupt Level bit 1 position. */ #define TC4_CCAINTLVL_gm 0x03 /* Channel A Compare or Capture Interrupt Level group mask. */ #define TC4_CCAINTLVL_gp 0 /* Channel A Compare or Capture Interrupt Level group position. */ #define TC4_CCAINTLVL0_bm (1<<0) /* Channel A Compare or Capture Interrupt Level bit 0 mask. */ #define TC4_CCAINTLVL0_bp 0 /* Channel A Compare or Capture Interrupt Level bit 0 position. */ #define TC4_CCAINTLVL1_bm (1<<1) /* Channel A Compare or Capture Interrupt Level bit 1 mask. */ #define TC4_CCAINTLVL1_bp 1 /* Channel A Compare or Capture Interrupt Level bit 1 position. */ #define TC4_LCCDINTLVL_gm 0xC0 /* Channel Low D Compare or Capture Interrupt Level group mask. */ #define TC4_LCCDINTLVL_gp 6 /* Channel Low D Compare or Capture Interrupt Level group position. */ #define TC4_LCCDINTLVL0_bm (1<<6) /* Channel Low D Compare or Capture Interrupt Level bit 0 mask. */ #define TC4_LCCDINTLVL0_bp 6 /* Channel Low D Compare or Capture Interrupt Level bit 0 position. */ #define TC4_LCCDINTLVL1_bm (1<<7) /* Channel Low D Compare or Capture Interrupt Level bit 1 mask. */ #define TC4_LCCDINTLVL1_bp 7 /* Channel Low D Compare or Capture Interrupt Level bit 1 position. */ #define TC4_LCCCINTLVL_gm 0x30 /* Channel Low C Compare or Capture Interrupt Level group mask. */ #define TC4_LCCCINTLVL_gp 4 /* Channel Low C Compare or Capture Interrupt Level group position. */ #define TC4_LCCCINTLVL0_bm (1<<4) /* Channel Low C Compare or Capture Interrupt Level bit 0 mask. */ #define TC4_LCCCINTLVL0_bp 4 /* Channel Low C Compare or Capture Interrupt Level bit 0 position. */ #define TC4_LCCCINTLVL1_bm (1<<5) /* Channel Low C Compare or Capture Interrupt Level bit 1 mask. */ #define TC4_LCCCINTLVL1_bp 5 /* Channel Low C Compare or Capture Interrupt Level bit 1 position. */ #define TC4_LCCBINTLVL_gm 0x0C /* Channel Low B Compare or Capture Interrupt Level group mask. */ #define TC4_LCCBINTLVL_gp 2 /* Channel Low B Compare or Capture Interrupt Level group position. */ #define TC4_LCCBINTLVL0_bm (1<<2) /* Channel Low B Compare or Capture Interrupt Level bit 0 mask. */ #define TC4_LCCBINTLVL0_bp 2 /* Channel Low B Compare or Capture Interrupt Level bit 0 position. */ #define TC4_LCCBINTLVL1_bm (1<<3) /* Channel Low B Compare or Capture Interrupt Level bit 1 mask. */ #define TC4_LCCBINTLVL1_bp 3 /* Channel Low B Compare or Capture Interrupt Level bit 1 position. */ #define TC4_LCCAINTLVL_gm 0x03 /* Channel Low A Compare or Capture Interrupt Level group mask. */ #define TC4_LCCAINTLVL_gp 0 /* Channel Low A Compare or Capture Interrupt Level group position. */ #define TC4_LCCAINTLVL0_bm (1<<0) /* Channel Low A Compare or Capture Interrupt Level bit 0 mask. */ #define TC4_LCCAINTLVL0_bp 0 /* Channel Low A Compare or Capture Interrupt Level bit 0 position. */ #define TC4_LCCAINTLVL1_bm (1<<1) /* Channel Low A Compare or Capture Interrupt Level bit 1 mask. */ #define TC4_LCCAINTLVL1_bp 1 /* Channel Low A Compare or Capture Interrupt Level bit 1 position. */ /* TC4.CTRLGCLR bit masks and bit positions */ #define TC4_STOP_bm 0x20 /* Timer/Counter Stop bit mask. */ #define TC4_STOP_bp 5 /* Timer/Counter Stop bit position. */ #define TC4_CMD_gm 0x0C /* Command group mask. */ #define TC4_CMD_gp 2 /* Command group position. */ #define TC4_CMD0_bm (1<<2) /* Command bit 0 mask. */ #define TC4_CMD0_bp 2 /* Command bit 0 position. */ #define TC4_CMD1_bm (1<<3) /* Command bit 1 mask. */ #define TC4_CMD1_bp 3 /* Command bit 1 position. */ #define TC4_LUPD_bm 0x02 /* Lock Update bit mask. */ #define TC4_LUPD_bp 1 /* Lock Update bit position. */ #define TC4_DIR_bm 0x01 /* Counter Direction bit mask. */ #define TC4_DIR_bp 0 /* Counter Direction bit position. */ /* TC4.CTRLGSET bit masks and bit positions */ /* TC4_STOP Predefined. */ /* TC4_STOP Predefined. */ /* TC4_CMD Predefined. */ /* TC4_CMD Predefined. */ /* TC4_LUPD Predefined. */ /* TC4_LUPD Predefined. */ /* TC4_DIR Predefined. */ /* TC4_DIR Predefined. */ /* TC4.CTRLHCLR bit masks and bit positions */ #define TC4_CCDBV_bm 0x10 /* Channel D Compare or Capture Buffer Valid bit mask. */ #define TC4_CCDBV_bp 4 /* Channel D Compare or Capture Buffer Valid bit position. */ #define TC4_CCCBV_bm 0x08 /* Channel C Compare or Capture Buffer Valid bit mask. */ #define TC4_CCCBV_bp 3 /* Channel C Compare or Capture Buffer Valid bit position. */ #define TC4_CCBBV_bm 0x04 /* Channel B Compare or Capture Buffer Valid bit mask. */ #define TC4_CCBBV_bp 2 /* Channel B Compare or Capture Buffer Valid bit position. */ #define TC4_CCABV_bm 0x02 /* Channel A Compare or Capture Buffer Valid bit mask. */ #define TC4_CCABV_bp 1 /* Channel A Compare or Capture Buffer Valid bit position. */ #define TC4_PERBV_bm 0x01 /* Period Buffer Valid bit mask. */ #define TC4_PERBV_bp 0 /* Period Buffer Valid bit position. */ #define TC4_LCCDBV_bm 0x10 /* Channel Low D Compare or Capture Buffer Valid bit mask. */ #define TC4_LCCDBV_bp 4 /* Channel Low D Compare or Capture Buffer Valid bit position. */ #define TC4_LCCCBV_bm 0x08 /* Channel Low C Compare or Capture Buffer Valid bit mask. */ #define TC4_LCCCBV_bp 3 /* Channel Low C Compare or Capture Buffer Valid bit position. */ #define TC4_LCCBBV_bm 0x04 /* Channel Low B Compare or Capture Buffer Valid bit mask. */ #define TC4_LCCBBV_bp 2 /* Channel Low B Compare or Capture Buffer Valid bit position. */ #define TC4_LCCABV_bm 0x02 /* Channel Low A Compare or Capture Buffer Valid bit mask. */ #define TC4_LCCABV_bp 1 /* Channel Low A Compare or Capture Buffer Valid bit position. */ #define TC4_LPERBV_bm 0x01 /* Period Low Buffer Valid bit mask. */ #define TC4_LPERBV_bp 0 /* Period Low Buffer Valid bit position. */ /* TC4.CTRLHSET bit masks and bit positions */ /* TC4_CCDBV Predefined. */ /* TC4_CCDBV Predefined. */ /* TC4_CCCBV Predefined. */ /* TC4_CCCBV Predefined. */ /* TC4_CCBBV Predefined. */ /* TC4_CCBBV Predefined. */ /* TC4_CCABV Predefined. */ /* TC4_CCABV Predefined. */ /* TC4_PERBV Predefined. */ /* TC4_PERBV Predefined. */ /* TC4_LCCDBV Predefined. */ /* TC4_LCCDBV Predefined. */ /* TC4_LCCCBV Predefined. */ /* TC4_LCCCBV Predefined. */ /* TC4_LCCBBV Predefined. */ /* TC4_LCCBBV Predefined. */ /* TC4_LCCABV Predefined. */ /* TC4_LCCABV Predefined. */ /* TC4_LPERBV Predefined. */ /* TC4_LPERBV Predefined. */ /* TC4.INTFLAGS bit masks and bit positions */ #define TC4_CCDIF_bm 0x80 /* Channel D Compare or Capture Interrupt Flag bit mask. */ #define TC4_CCDIF_bp 7 /* Channel D Compare or Capture Interrupt Flag bit position. */ #define TC4_CCCIF_bm 0x40 /* Channel C Compare or Capture Interrupt Flag bit mask. */ #define TC4_CCCIF_bp 6 /* Channel C Compare or Capture Interrupt Flag bit position. */ #define TC4_CCBIF_bm 0x20 /* Channel B Compare or Capture Interrupt Flag bit mask. */ #define TC4_CCBIF_bp 5 /* Channel B Compare or Capture Interrupt Flag bit position. */ #define TC4_CCAIF_bm 0x10 /* Channel A Compare or Capture Interrupt Flag bit mask. */ #define TC4_CCAIF_bp 4 /* Channel A Compare or Capture Interrupt Flag bit position. */ #define TC4_TRGIF_bm 0x04 /* Trigger Restart Interrupt Flag bit mask. */ #define TC4_TRGIF_bp 2 /* Trigger Restart Interrupt Flag bit position. */ #define TC4_ERRIF_bm 0x02 /* Error Interrupt Flag bit mask. */ #define TC4_ERRIF_bp 1 /* Error Interrupt Flag bit position. */ #define TC4_OVFIF_bm 0x01 /* Overflow/Underflow Interrupt Flag bit mask. */ #define TC4_OVFIF_bp 0 /* Overflow/Underflow Interrupt Flag bit position. */ #define TC4_LCCDIF_bm 0x80 /* Channel Low D Compare or Capture Interrupt Flag bit mask. */ #define TC4_LCCDIF_bp 7 /* Channel Low D Compare or Capture Interrupt Flag bit position. */ #define TC4_LCCCIF_bm 0x40 /* Channel Low C Compare or Capture Interrupt Flag bit mask. */ #define TC4_LCCCIF_bp 6 /* Channel Low C Compare or Capture Interrupt Flag bit position. */ #define TC4_LCCBIF_bm 0x20 /* Channel Low B Compare or Capture Interrupt Flag bit mask. */ #define TC4_LCCBIF_bp 5 /* Channel Low B Compare or Capture Interrupt Flag bit position. */ #define TC4_LCCAIF_bm 0x10 /* Channel Low A Compare or Capture Interrupt Flag bit mask. */ #define TC4_LCCAIF_bp 4 /* Channel Low A Compare or Capture Interrupt Flag bit position. */ /* TC5.CTRLA bit masks and bit positions */ #define TC5_SYNCHEN_bm 0x40 /* Synchronization Enabled bit mask. */ #define TC5_SYNCHEN_bp 6 /* Synchronization Enabled bit position. */ #define TC5_EVSTART_bm 0x20 /* Start on Next Event bit mask. */ #define TC5_EVSTART_bp 5 /* Start on Next Event bit position. */ #define TC5_UPSTOP_bm 0x10 /* Stop on Next Update bit mask. */ #define TC5_UPSTOP_bp 4 /* Stop on Next Update bit position. */ #define TC5_CLKSEL_gm 0x0F /* Clock Select group mask. */ #define TC5_CLKSEL_gp 0 /* Clock Select group position. */ #define TC5_CLKSEL0_bm (1<<0) /* Clock Select bit 0 mask. */ #define TC5_CLKSEL0_bp 0 /* Clock Select bit 0 position. */ #define TC5_CLKSEL1_bm (1<<1) /* Clock Select bit 1 mask. */ #define TC5_CLKSEL1_bp 1 /* Clock Select bit 1 position. */ #define TC5_CLKSEL2_bm (1<<2) /* Clock Select bit 2 mask. */ #define TC5_CLKSEL2_bp 2 /* Clock Select bit 2 position. */ #define TC5_CLKSEL3_bm (1<<3) /* Clock Select bit 3 mask. */ #define TC5_CLKSEL3_bp 3 /* Clock Select bit 3 position. */ /* TC5.CTRLB bit masks and bit positions */ #define TC5_BYTEM_gm 0xC0 /* Byte Mode group mask. */ #define TC5_BYTEM_gp 6 /* Byte Mode group position. */ #define TC5_BYTEM0_bm (1<<6) /* Byte Mode bit 0 mask. */ #define TC5_BYTEM0_bp 6 /* Byte Mode bit 0 position. */ #define TC5_BYTEM1_bm (1<<7) /* Byte Mode bit 1 mask. */ #define TC5_BYTEM1_bp 7 /* Byte Mode bit 1 position. */ #define TC5_CIRCEN_gm 0x30 /* Circular Buffer Enable group mask. */ #define TC5_CIRCEN_gp 4 /* Circular Buffer Enable group position. */ #define TC5_CIRCEN0_bm (1<<4) /* Circular Buffer Enable bit 0 mask. */ #define TC5_CIRCEN0_bp 4 /* Circular Buffer Enable bit 0 position. */ #define TC5_CIRCEN1_bm (1<<5) /* Circular Buffer Enable bit 1 mask. */ #define TC5_CIRCEN1_bp 5 /* Circular Buffer Enable bit 1 position. */ #define TC5_WGMODE_gm 0x07 /* Waveform Generation Mode group mask. */ #define TC5_WGMODE_gp 0 /* Waveform Generation Mode group position. */ #define TC5_WGMODE0_bm (1<<0) /* Waveform Generation Mode bit 0 mask. */ #define TC5_WGMODE0_bp 0 /* Waveform Generation Mode bit 0 position. */ #define TC5_WGMODE1_bm (1<<1) /* Waveform Generation Mode bit 1 mask. */ #define TC5_WGMODE1_bp 1 /* Waveform Generation Mode bit 1 position. */ #define TC5_WGMODE2_bm (1<<2) /* Waveform Generation Mode bit 2 mask. */ #define TC5_WGMODE2_bp 2 /* Waveform Generation Mode bit 2 position. */ /* TC5.CTRLC bit masks and bit positions */ #define TC5_POLB_bm 0x20 /* Channel B Output Polarity bit mask. */ #define TC5_POLB_bp 5 /* Channel B Output Polarity bit position. */ #define TC5_POLA_bm 0x10 /* Channel A Output Polarity bit mask. */ #define TC5_POLA_bp 4 /* Channel A Output Polarity bit position. */ #define TC5_CMPB_bm 0x02 /* Channel B Compare Output Value bit mask. */ #define TC5_CMPB_bp 1 /* Channel B Compare Output Value bit position. */ #define TC5_CMPA_bm 0x01 /* Channel A Compare Output Value bit mask. */ #define TC5_CMPA_bp 0 /* Channel A Compare Output Value bit position. */ #define TC5_HCMPB_bm 0x20 /* High Channel B Compare Output Value bit mask. */ #define TC5_HCMPB_bp 5 /* High Channel B Compare Output Value bit position. */ #define TC5_HCMPA_bm 0x10 /* High Channel A Compare Output Value bit mask. */ #define TC5_HCMPA_bp 4 /* High Channel A Compare Output Value bit position. */ #define TC5_LCMPB_bm 0x02 /* Low Channel B Compare Output Value bit mask. */ #define TC5_LCMPB_bp 1 /* Low Channel B Compare Output Value bit position. */ #define TC5_LCMPA_bm 0x01 /* Low Channel A Compare Output Value bit mask. */ #define TC5_LCMPA_bp 0 /* Low Channel A Compare Output Value bit position. */ /* TC5.CTRLD bit masks and bit positions */ #define TC5_EVACT_gm 0xE0 /* Event Action group mask. */ #define TC5_EVACT_gp 5 /* Event Action group position. */ #define TC5_EVACT0_bm (1<<5) /* Event Action bit 0 mask. */ #define TC5_EVACT0_bp 5 /* Event Action bit 0 position. */ #define TC5_EVACT1_bm (1<<6) /* Event Action bit 1 mask. */ #define TC5_EVACT1_bp 6 /* Event Action bit 1 position. */ #define TC5_EVACT2_bm (1<<7) /* Event Action bit 2 mask. */ #define TC5_EVACT2_bp 7 /* Event Action bit 2 position. */ #define TC5_EVDLY_bm 0x10 /* Event Delay bit mask. */ #define TC5_EVDLY_bp 4 /* Event Delay bit position. */ #define TC5_EVSEL_gm 0x0F /* Event Source Select group mask. */ #define TC5_EVSEL_gp 0 /* Event Source Select group position. */ #define TC5_EVSEL0_bm (1<<0) /* Event Source Select bit 0 mask. */ #define TC5_EVSEL0_bp 0 /* Event Source Select bit 0 position. */ #define TC5_EVSEL1_bm (1<<1) /* Event Source Select bit 1 mask. */ #define TC5_EVSEL1_bp 1 /* Event Source Select bit 1 position. */ #define TC5_EVSEL2_bm (1<<2) /* Event Source Select bit 2 mask. */ #define TC5_EVSEL2_bp 2 /* Event Source Select bit 2 position. */ #define TC5_EVSEL3_bm (1<<3) /* Event Source Select bit 3 mask. */ #define TC5_EVSEL3_bp 3 /* Event Source Select bit 3 position. */ /* TC5.CTRLE bit masks and bit positions */ #define TC5_CCBMODE_gm 0x0C /* Channel B Compare or Capture Mode group mask. */ #define TC5_CCBMODE_gp 2 /* Channel B Compare or Capture Mode group position. */ #define TC5_CCBMODE0_bm (1<<2) /* Channel B Compare or Capture Mode bit 0 mask. */ #define TC5_CCBMODE0_bp 2 /* Channel B Compare or Capture Mode bit 0 position. */ #define TC5_CCBMODE1_bm (1<<3) /* Channel B Compare or Capture Mode bit 1 mask. */ #define TC5_CCBMODE1_bp 3 /* Channel B Compare or Capture Mode bit 1 position. */ #define TC5_CCAMODE_gm 0x03 /* Channel A Compare or Capture Mode group mask. */ #define TC5_CCAMODE_gp 0 /* Channel A Compare or Capture Mode group position. */ #define TC5_CCAMODE0_bm (1<<0) /* Channel A Compare or Capture Mode bit 0 mask. */ #define TC5_CCAMODE0_bp 0 /* Channel A Compare or Capture Mode bit 0 position. */ #define TC5_CCAMODE1_bm (1<<1) /* Channel A Compare or Capture Mode bit 1 mask. */ #define TC5_CCAMODE1_bp 1 /* Channel A Compare or Capture Mode bit 1 position. */ #define TC5_LCCBMODE_gm 0x0C /* Channel Low B Compare or Capture Mode group mask. */ #define TC5_LCCBMODE_gp 2 /* Channel Low B Compare or Capture Mode group position. */ #define TC5_LCCBMODE0_bm (1<<2) /* Channel Low B Compare or Capture Mode bit 0 mask. */ #define TC5_LCCBMODE0_bp 2 /* Channel Low B Compare or Capture Mode bit 0 position. */ #define TC5_LCCBMODE1_bm (1<<3) /* Channel Low B Compare or Capture Mode bit 1 mask. */ #define TC5_LCCBMODE1_bp 3 /* Channel Low B Compare or Capture Mode bit 1 position. */ #define TC5_LCCAMODE_gm 0x03 /* Channel Low A Compare or Capture Mode group mask. */ #define TC5_LCCAMODE_gp 0 /* Channel Low A Compare or Capture Mode group position. */ #define TC5_LCCAMODE0_bm (1<<0) /* Channel Low A Compare or Capture Mode bit 0 mask. */ #define TC5_LCCAMODE0_bp 0 /* Channel Low A Compare or Capture Mode bit 0 position. */ #define TC5_LCCAMODE1_bm (1<<1) /* Channel Low A Compare or Capture Mode bit 1 mask. */ #define TC5_LCCAMODE1_bp 1 /* Channel Low A Compare or Capture Mode bit 1 position. */ /* TC5.CTRLF bit masks and bit positions */ #define TC5_HCCBMODE_gm 0x0C /* Channel High B Compare or Capture Mode group mask. */ #define TC5_HCCBMODE_gp 2 /* Channel High B Compare or Capture Mode group position. */ #define TC5_HCCBMODE0_bm (1<<2) /* Channel High B Compare or Capture Mode bit 0 mask. */ #define TC5_HCCBMODE0_bp 2 /* Channel High B Compare or Capture Mode bit 0 position. */ #define TC5_HCCBMODE1_bm (1<<3) /* Channel High B Compare or Capture Mode bit 1 mask. */ #define TC5_HCCBMODE1_bp 3 /* Channel High B Compare or Capture Mode bit 1 position. */ #define TC5_HCCAMODE_gm 0x03 /* Channel High A Compare or Capture Mode group mask. */ #define TC5_HCCAMODE_gp 0 /* Channel High A Compare or Capture Mode group position. */ #define TC5_HCCAMODE0_bm (1<<0) /* Channel High A Compare or Capture Mode bit 0 mask. */ #define TC5_HCCAMODE0_bp 0 /* Channel High A Compare or Capture Mode bit 0 position. */ #define TC5_HCCAMODE1_bm (1<<1) /* Channel High A Compare or Capture Mode bit 1 mask. */ #define TC5_HCCAMODE1_bp 1 /* Channel High A Compare or Capture Mode bit 1 position. */ /* TC5.INTCTRLA bit masks and bit positions */ #define TC5_TRGINTLVL_gm 0x30 /* Timer Trigger Restart Interrupt Level group mask. */ #define TC5_TRGINTLVL_gp 4 /* Timer Trigger Restart Interrupt Level group position. */ #define TC5_TRGINTLVL0_bm (1<<4) /* Timer Trigger Restart Interrupt Level bit 0 mask. */ #define TC5_TRGINTLVL0_bp 4 /* Timer Trigger Restart Interrupt Level bit 0 position. */ #define TC5_TRGINTLVL1_bm (1<<5) /* Timer Trigger Restart Interrupt Level bit 1 mask. */ #define TC5_TRGINTLVL1_bp 5 /* Timer Trigger Restart Interrupt Level bit 1 position. */ #define TC5_ERRINTLVL_gm 0x0C /* Timer Error Interrupt Level group mask. */ #define TC5_ERRINTLVL_gp 2 /* Timer Error Interrupt Level group position. */ #define TC5_ERRINTLVL0_bm (1<<2) /* Timer Error Interrupt Level bit 0 mask. */ #define TC5_ERRINTLVL0_bp 2 /* Timer Error Interrupt Level bit 0 position. */ #define TC5_ERRINTLVL1_bm (1<<3) /* Timer Error Interrupt Level bit 1 mask. */ #define TC5_ERRINTLVL1_bp 3 /* Timer Error Interrupt Level bit 1 position. */ #define TC5_OVFINTLVL_gm 0x03 /* Timer Overflow/Underflow Interrupt Level group mask. */ #define TC5_OVFINTLVL_gp 0 /* Timer Overflow/Underflow Interrupt Level group position. */ #define TC5_OVFINTLVL0_bm (1<<0) /* Timer Overflow/Underflow Interrupt Level bit 0 mask. */ #define TC5_OVFINTLVL0_bp 0 /* Timer Overflow/Underflow Interrupt Level bit 0 position. */ #define TC5_OVFINTLVL1_bm (1<<1) /* Timer Overflow/Underflow Interrupt Level bit 1 mask. */ #define TC5_OVFINTLVL1_bp 1 /* Timer Overflow/Underflow Interrupt Level bit 1 position. */ /* TC5.INTCTRLB bit masks and bit positions */ #define TC5_CCBINTLVL_gm 0x0C /* Channel B Compare or Capture Interrupt Level group mask. */ #define TC5_CCBINTLVL_gp 2 /* Channel B Compare or Capture Interrupt Level group position. */ #define TC5_CCBINTLVL0_bm (1<<2) /* Channel B Compare or Capture Interrupt Level bit 0 mask. */ #define TC5_CCBINTLVL0_bp 2 /* Channel B Compare or Capture Interrupt Level bit 0 position. */ #define TC5_CCBINTLVL1_bm (1<<3) /* Channel B Compare or Capture Interrupt Level bit 1 mask. */ #define TC5_CCBINTLVL1_bp 3 /* Channel B Compare or Capture Interrupt Level bit 1 position. */ #define TC5_CCAINTLVL_gm 0x03 /* Channel A Compare or Capture Interrupt Level group mask. */ #define TC5_CCAINTLVL_gp 0 /* Channel A Compare or Capture Interrupt Level group position. */ #define TC5_CCAINTLVL0_bm (1<<0) /* Channel A Compare or Capture Interrupt Level bit 0 mask. */ #define TC5_CCAINTLVL0_bp 0 /* Channel A Compare or Capture Interrupt Level bit 0 position. */ #define TC5_CCAINTLVL1_bm (1<<1) /* Channel A Compare or Capture Interrupt Level bit 1 mask. */ #define TC5_CCAINTLVL1_bp 1 /* Channel A Compare or Capture Interrupt Level bit 1 position. */ #define TC5_LCCBINTLVL_gm 0x0C /* Channel Low B Compare or Capture Interrupt Level group mask. */ #define TC5_LCCBINTLVL_gp 2 /* Channel Low B Compare or Capture Interrupt Level group position. */ #define TC5_LCCBINTLVL0_bm (1<<2) /* Channel Low B Compare or Capture Interrupt Level bit 0 mask. */ #define TC5_LCCBINTLVL0_bp 2 /* Channel Low B Compare or Capture Interrupt Level bit 0 position. */ #define TC5_LCCBINTLVL1_bm (1<<3) /* Channel Low B Compare or Capture Interrupt Level bit 1 mask. */ #define TC5_LCCBINTLVL1_bp 3 /* Channel Low B Compare or Capture Interrupt Level bit 1 position. */ #define TC5_LCCAINTLVL_gm 0x03 /* Channel Low A Compare or Capture Interrupt Level group mask. */ #define TC5_LCCAINTLVL_gp 0 /* Channel Low A Compare or Capture Interrupt Level group position. */ #define TC5_LCCAINTLVL0_bm (1<<0) /* Channel Low A Compare or Capture Interrupt Level bit 0 mask. */ #define TC5_LCCAINTLVL0_bp 0 /* Channel Low A Compare or Capture Interrupt Level bit 0 position. */ #define TC5_LCCAINTLVL1_bm (1<<1) /* Channel Low A Compare or Capture Interrupt Level bit 1 mask. */ #define TC5_LCCAINTLVL1_bp 1 /* Channel Low A Compare or Capture Interrupt Level bit 1 position. */ /* TC5.CTRLGCLR bit masks and bit positions */ #define TC5_STOP_bm 0x20 /* Timer/Counter Stop bit mask. */ #define TC5_STOP_bp 5 /* Timer/Counter Stop bit position. */ #define TC5_CMD_gm 0x0C /* Command group mask. */ #define TC5_CMD_gp 2 /* Command group position. */ #define TC5_CMD0_bm (1<<2) /* Command bit 0 mask. */ #define TC5_CMD0_bp 2 /* Command bit 0 position. */ #define TC5_CMD1_bm (1<<3) /* Command bit 1 mask. */ #define TC5_CMD1_bp 3 /* Command bit 1 position. */ #define TC5_LUPD_bm 0x02 /* Lock Update bit mask. */ #define TC5_LUPD_bp 1 /* Lock Update bit position. */ #define TC5_DIR_bm 0x01 /* Counter Direction bit mask. */ #define TC5_DIR_bp 0 /* Counter Direction bit position. */ /* TC5.CTRLGSET bit masks and bit positions */ /* TC5_STOP Predefined. */ /* TC5_STOP Predefined. */ /* TC5_CMD Predefined. */ /* TC5_CMD Predefined. */ /* TC5_LUPD Predefined. */ /* TC5_LUPD Predefined. */ /* TC5_DIR Predefined. */ /* TC5_DIR Predefined. */ /* TC5.CTRLHCLR bit masks and bit positions */ #define TC5_CCBBV_bm 0x04 /* Channel B Compare or Capture Buffer Valid bit mask. */ #define TC5_CCBBV_bp 2 /* Channel B Compare or Capture Buffer Valid bit position. */ #define TC5_CCABV_bm 0x02 /* Channel A Compare or Capture Buffer Valid bit mask. */ #define TC5_CCABV_bp 1 /* Channel A Compare or Capture Buffer Valid bit position. */ #define TC5_PERBV_bm 0x01 /* Period Buffer Valid bit mask. */ #define TC5_PERBV_bp 0 /* Period Buffer Valid bit position. */ #define TC5_LCCBBV_bm 0x04 /* Channel Low B Compare or Capture Buffer Valid bit mask. */ #define TC5_LCCBBV_bp 2 /* Channel Low B Compare or Capture Buffer Valid bit position. */ #define TC5_LCCABV_bm 0x02 /* Channel Low A Compare or Capture Buffer Valid bit mask. */ #define TC5_LCCABV_bp 1 /* Channel Low A Compare or Capture Buffer Valid bit position. */ #define TC5_LPERBV_bm 0x01 /* Period Low Buffer Valid bit mask. */ #define TC5_LPERBV_bp 0 /* Period Low Buffer Valid bit position. */ /* TC5.CTRLHSET bit masks and bit positions */ /* TC5_CCBBV Predefined. */ /* TC5_CCBBV Predefined. */ /* TC5_CCABV Predefined. */ /* TC5_CCABV Predefined. */ /* TC5_PERBV Predefined. */ /* TC5_PERBV Predefined. */ /* TC5_LCCBBV Predefined. */ /* TC5_LCCBBV Predefined. */ /* TC5_LCCABV Predefined. */ /* TC5_LCCABV Predefined. */ /* TC5_LPERBV Predefined. */ /* TC5_LPERBV Predefined. */ /* TC5.INTFLAGS bit masks and bit positions */ #define TC5_CCBIF_bm 0x20 /* Channel B Compare or Capture Interrupt Flag bit mask. */ #define TC5_CCBIF_bp 5 /* Channel B Compare or Capture Interrupt Flag bit position. */ #define TC5_CCAIF_bm 0x10 /* Channel A Compare or Capture Interrupt Flag bit mask. */ #define TC5_CCAIF_bp 4 /* Channel A Compare or Capture Interrupt Flag bit position. */ #define TC5_TRGIF_bm 0x04 /* Trigger Restart Interrupt Flag bit mask. */ #define TC5_TRGIF_bp 2 /* Trigger Restart Interrupt Flag bit position. */ #define TC5_ERRIF_bm 0x02 /* Error Interrupt Flag bit mask. */ #define TC5_ERRIF_bp 1 /* Error Interrupt Flag bit position. */ #define TC5_OVFIF_bm 0x01 /* Overflow/Underflow Interrupt Flag bit mask. */ #define TC5_OVFIF_bp 0 /* Overflow/Underflow Interrupt Flag bit position. */ #define TC5_LCCBIF_bm 0x20 /* Channel Low B Compare or Capture Interrupt Flag bit mask. */ #define TC5_LCCBIF_bp 5 /* Channel Low B Compare or Capture Interrupt Flag bit position. */ #define TC5_LCCAIF_bm 0x10 /* Channel Low A Compare or Capture Interrupt Flag bit mask. */ #define TC5_LCCAIF_bp 4 /* Channel Low A Compare or Capture Interrupt Flag bit position. */ /* FAULT - Fault Extension */ /* FAULT.CTRLA bit masks and bit positions */ #define FAULT_RAMP_gm 0xC0 /* Ramp Mode Selection group mask. */ #define FAULT_RAMP_gp 6 /* Ramp Mode Selection group position. */ #define FAULT_RAMP0_bm (1<<6) /* Ramp Mode Selection bit 0 mask. */ #define FAULT_RAMP0_bp 6 /* Ramp Mode Selection bit 0 position. */ #define FAULT_RAMP1_bm (1<<7) /* Ramp Mode Selection bit 1 mask. */ #define FAULT_RAMP1_bp 7 /* Ramp Mode Selection bit 1 position. */ #define FAULT_FDDBD_bm 0x20 /* Fault on Debug Break Detection bit mask. */ #define FAULT_FDDBD_bp 5 /* Fault on Debug Break Detection bit position. */ #define FAULT_PORTCTRL_bm 0x10 /* Port Control Mode bit mask. */ #define FAULT_PORTCTRL_bp 4 /* Port Control Mode bit position. */ #define FAULT_FUSE_bm 0x08 /* Fuse State bit mask. */ #define FAULT_FUSE_bp 3 /* Fuse State bit position. */ #define FAULT_FILTERE_bm 0x04 /* Fault E Digital Filter Selection bit mask. */ #define FAULT_FILTERE_bp 2 /* Fault E Digital Filter Selection bit position. */ #define FAULT_SRCE_gm 0x03 /* Fault E Input selection group mask. */ #define FAULT_SRCE_gp 0 /* Fault E Input selection group position. */ #define FAULT_SRCE0_bm (1<<0) /* Fault E Input selection bit 0 mask. */ #define FAULT_SRCE0_bp 0 /* Fault E Input selection bit 0 position. */ #define FAULT_SRCE1_bm (1<<1) /* Fault E Input selection bit 1 mask. */ #define FAULT_SRCE1_bp 1 /* Fault E Input selection bit 1 position. */ /* FAULT.CTRLB bit masks and bit positions */ #define FAULT_SOFTA_bm 0x80 /* Fault A Software Mode bit mask. */ #define FAULT_SOFTA_bp 7 /* Fault A Software Mode bit position. */ #define FAULT_HALTA_gm 0x60 /* Fault A Halt Action group mask. */ #define FAULT_HALTA_gp 5 /* Fault A Halt Action group position. */ #define FAULT_HALTA0_bm (1<<5) /* Fault A Halt Action bit 0 mask. */ #define FAULT_HALTA0_bp 5 /* Fault A Halt Action bit 0 position. */ #define FAULT_HALTA1_bm (1<<6) /* Fault A Halt Action bit 1 mask. */ #define FAULT_HALTA1_bp 6 /* Fault A Halt Action bit 1 position. */ #define FAULT_RESTARTA_bm 0x10 /* Fault A Restart Action bit mask. */ #define FAULT_RESTARTA_bp 4 /* Fault A Restart Action bit position. */ #define FAULT_KEEPA_bm 0x08 /* Fault A Keep Action bit mask. */ #define FAULT_KEEPA_bp 3 /* Fault A Keep Action bit position. */ #define FAULT_SRCA_gm 0x03 /* Fault A Source Selection group mask. */ #define FAULT_SRCA_gp 0 /* Fault A Source Selection group position. */ #define FAULT_SRCA0_bm (1<<0) /* Fault A Source Selection bit 0 mask. */ #define FAULT_SRCA0_bp 0 /* Fault A Source Selection bit 0 position. */ #define FAULT_SRCA1_bm (1<<1) /* Fault A Source Selection bit 1 mask. */ #define FAULT_SRCA1_bp 1 /* Fault A Source Selection bit 1 position. */ /* FAULT.CTRLC bit masks and bit positions */ #define FAULT_CAPTA_bm 0x20 /* Fault A Capture bit mask. */ #define FAULT_CAPTA_bp 5 /* Fault A Capture bit position. */ #define FAULT_FILTERA_bm 0x04 /* Fault A Digital Filter Selection bit mask. */ #define FAULT_FILTERA_bp 2 /* Fault A Digital Filter Selection bit position. */ #define FAULT_BLANKA_bm 0x02 /* Fault A Blanking bit mask. */ #define FAULT_BLANKA_bp 1 /* Fault A Blanking bit position. */ #define FAULT_QUALA_bm 0x01 /* Fault A Qualification bit mask. */ #define FAULT_QUALA_bp 0 /* Fault A Qualification bit position. */ /* FAULT.CTRLD bit masks and bit positions */ #define FAULT_SOFTB_bm 0x80 /* Fault B Software Mode bit mask. */ #define FAULT_SOFTB_bp 7 /* Fault B Software Mode bit position. */ #define FAULT_HALTB_gm 0x60 /* Fault B Halt Action group mask. */ #define FAULT_HALTB_gp 5 /* Fault B Halt Action group position. */ #define FAULT_HALTB0_bm (1<<5) /* Fault B Halt Action bit 0 mask. */ #define FAULT_HALTB0_bp 5 /* Fault B Halt Action bit 0 position. */ #define FAULT_HALTB1_bm (1<<6) /* Fault B Halt Action bit 1 mask. */ #define FAULT_HALTB1_bp 6 /* Fault B Halt Action bit 1 position. */ #define FAULT_RESTARTB_bm 0x10 /* Fault B Restart Action bit mask. */ #define FAULT_RESTARTB_bp 4 /* Fault B Restart Action bit position. */ #define FAULT_KEEPB_bm 0x08 /* Fault B Keep Action bit mask. */ #define FAULT_KEEPB_bp 3 /* Fault B Keep Action bit position. */ #define FAULT_SRCB_gm 0x03 /* Fault B Source Selection group mask. */ #define FAULT_SRCB_gp 0 /* Fault B Source Selection group position. */ #define FAULT_SRCB0_bm (1<<0) /* Fault B Source Selection bit 0 mask. */ #define FAULT_SRCB0_bp 0 /* Fault B Source Selection bit 0 position. */ #define FAULT_SRCB1_bm (1<<1) /* Fault B Source Selection bit 1 mask. */ #define FAULT_SRCB1_bp 1 /* Fault B Source Selection bit 1 position. */ /* FAULT.CTRLE bit masks and bit positions */ #define FAULT_CAPTB_bm 0x20 /* Fault B Capture bit mask. */ #define FAULT_CAPTB_bp 5 /* Fault B Capture bit position. */ #define FAULT_FILTERB_bm 0x04 /* Fault B Digital Filter Selection bit mask. */ #define FAULT_FILTERB_bp 2 /* Fault B Digital Filter Selection bit position. */ #define FAULT_BLANKB_bm 0x02 /* Fault B Blanking bit mask. */ #define FAULT_BLANKB_bp 1 /* Fault B Blanking bit position. */ #define FAULT_QUALB_bm 0x01 /* Fault B Qualification bit mask. */ #define FAULT_QUALB_bp 0 /* Fault B Qualification bit position. */ /* FAULT.STATUS bit masks and bit positions */ #define FAULT_STATEB_bm 0x80 /* Fault B State bit mask. */ #define FAULT_STATEB_bp 7 /* Fault B State bit position. */ #define FAULT_STATEA_bm 0x40 /* Fault A State bit mask. */ #define FAULT_STATEA_bp 6 /* Fault A State bit position. */ #define FAULT_STATEE_bm 0x20 /* Fault E State bit mask. */ #define FAULT_STATEE_bp 5 /* Fault E State bit position. */ #define FAULT_IDX_bm 0x08 /* Channel Index Flag bit mask. */ #define FAULT_IDX_bp 3 /* Channel Index Flag bit position. */ #define FAULT_FAULTBIN_bm 0x04 /* Fault B Flag bit mask. */ #define FAULT_FAULTBIN_bp 2 /* Fault B Flag bit position. */ #define FAULT_FAULTAIN_bm 0x02 /* Fault A Flag bit mask. */ #define FAULT_FAULTAIN_bp 1 /* Fault A Flag bit position. */ #define FAULT_FAULTEIN_bm 0x01 /* Fault E Flag bit mask. */ #define FAULT_FAULTEIN_bp 0 /* Fault E Flag bit position. */ /* FAULT.CTRLGCLR bit masks and bit positions */ #define FAULT_HALTBCLR_bm 0x80 /* State B Clear bit mask. */ #define FAULT_HALTBCLR_bp 7 /* State B Clear bit position. */ #define FAULT_HALTACLR_bm 0x40 /* State A Clear bit mask. */ #define FAULT_HALTACLR_bp 6 /* State A Clear bit position. */ #define FAULT_STATEECLR_bm 0x20 /* State E Clear bit mask. */ #define FAULT_STATEECLR_bp 5 /* State E Clear bit position. */ #define FAULT_FAULTB_bm 0x04 /* Fault B Flag bit mask. */ #define FAULT_FAULTB_bp 2 /* Fault B Flag bit position. */ #define FAULT_FAULTA_bm 0x02 /* Fault A Flag bit mask. */ #define FAULT_FAULTA_bp 1 /* Fault A Flag bit position. */ #define FAULT_FAULTE_bm 0x01 /* Fault E Flag bit mask. */ #define FAULT_FAULTE_bp 0 /* Fault E Flag bit position. */ /* FAULT.CTRLGSET bit masks and bit positions */ #define FAULT_FAULTBSW_bm 0x80 /* Software Fault B bit mask. */ #define FAULT_FAULTBSW_bp 7 /* Software Fault B bit position. */ #define FAULT_FAULTASW_bm 0x40 /* Software Fault A bit mask. */ #define FAULT_FAULTASW_bp 6 /* Software Fault A bit position. */ #define FAULT_FAULTESW_bm 0x20 /* Software Fault E bit mask. */ #define FAULT_FAULTESW_bp 5 /* Software Fault E bit position. */ #define FAULT_IDXCMD_gm 0x18 /* Channel index Command group mask. */ #define FAULT_IDXCMD_gp 3 /* Channel index Command group position. */ #define FAULT_IDXCMD0_bm (1<<3) /* Channel index Command bit 0 mask. */ #define FAULT_IDXCMD0_bp 3 /* Channel index Command bit 0 position. */ #define FAULT_IDXCMD1_bm (1<<4) /* Channel index Command bit 1 mask. */ #define FAULT_IDXCMD1_bp 4 /* Channel index Command bit 1 position. */ /* WEX - Waveform Extension */ /* WEX.CTRL bit masks and bit positions */ #define WEX_UPSEL_bm 0x80 /* Update Source Selection bit mask. */ #define WEX_UPSEL_bp 7 /* Update Source Selection bit position. */ #define WEX_OTMX_gm 0x70 /* Output Matrix group mask. */ #define WEX_OTMX_gp 4 /* Output Matrix group position. */ #define WEX_OTMX0_bm (1<<4) /* Output Matrix bit 0 mask. */ #define WEX_OTMX0_bp 4 /* Output Matrix bit 0 position. */ #define WEX_OTMX1_bm (1<<5) /* Output Matrix bit 1 mask. */ #define WEX_OTMX1_bp 5 /* Output Matrix bit 1 position. */ #define WEX_OTMX2_bm (1<<6) /* Output Matrix bit 2 mask. */ #define WEX_OTMX2_bp 6 /* Output Matrix bit 2 position. */ #define WEX_DTI3EN_bm 0x08 /* Dead-Time Insertion Generator 3 Enable bit mask. */ #define WEX_DTI3EN_bp 3 /* Dead-Time Insertion Generator 3 Enable bit position. */ #define WEX_DTI2EN_bm 0x04 /* Dead-Time Insertion Generator 2 Enable bit mask. */ #define WEX_DTI2EN_bp 2 /* Dead-Time Insertion Generator 2 Enable bit position. */ #define WEX_DTI1EN_bm 0x02 /* Dead-Time Insertion Generator 1 Enable bit mask. */ #define WEX_DTI1EN_bp 1 /* Dead-Time Insertion Generator 1 Enable bit position. */ #define WEX_DTI0EN_bm 0x01 /* Dead-Time Insertion Generator 0 Enable bit mask. */ #define WEX_DTI0EN_bp 0 /* Dead-Time Insertion Generator 0 Enable bit position. */ /* WEX.STATUSCLR bit masks and bit positions */ #define WEX_SWAPBUF_bm 0x04 /* Swap Buffer Valid bit mask. */ #define WEX_SWAPBUF_bp 2 /* Swap Buffer Valid bit position. */ #define WEX_PGVBUFV_bm 0x02 /* Pattern Generator Value Buffer Valid bit mask. */ #define WEX_PGVBUFV_bp 1 /* Pattern Generator Value Buffer Valid bit position. */ #define WEX_PGOBUFV_bm 0x01 /* Pattern Generator Overwrite Buffer Valid bit mask. */ #define WEX_PGOBUFV_bp 0 /* Pattern Generator Overwrite Buffer Valid bit position. */ /* WEX.STATUSSET bit masks and bit positions */ /* WEX_SWAPBUF Predefined. */ /* WEX_SWAPBUF Predefined. */ /* WEX_PGVBUFV Predefined. */ /* WEX_PGVBUFV Predefined. */ /* WEX_PGOBUFV Predefined. */ /* WEX_PGOBUFV Predefined. */ /* WEX.SWAP bit masks and bit positions */ #define WEX_SWAP3_bm 0x08 /* Swap DTI output pair 3 bit mask. */ #define WEX_SWAP3_bp 3 /* Swap DTI output pair 3 bit position. */ #define WEX_SWAP2_bm 0x04 /* Swap DTI output pair 2 bit mask. */ #define WEX_SWAP2_bp 2 /* Swap DTI output pair 2 bit position. */ #define WEX_SWAP1_bm 0x02 /* Swap DTI output pair 1 bit mask. */ #define WEX_SWAP1_bp 1 /* Swap DTI output pair 1 bit position. */ #define WEX_SWAP0_bm 0x01 /* Swap DTI output pair 0 bit mask. */ #define WEX_SWAP0_bp 0 /* Swap DTI output pair 0 bit position. */ /* WEX.SWAPBUF bit masks and bit positions */ #define WEX_SWAP3BUF_bm 0x08 /* Swap DTI output pair 3 bit mask. */ #define WEX_SWAP3BUF_bp 3 /* Swap DTI output pair 3 bit position. */ #define WEX_SWAP2BUF_bm 0x04 /* Swap DTI output pair 2 bit mask. */ #define WEX_SWAP2BUF_bp 2 /* Swap DTI output pair 2 bit position. */ #define WEX_SWAP1BUF_bm 0x02 /* Swap DTI output pair 1 bit mask. */ #define WEX_SWAP1BUF_bp 1 /* Swap DTI output pair 1 bit position. */ #define WEX_SWAP0BUF_bm 0x01 /* Swap DTI output pair 0 bit mask. */ #define WEX_SWAP0BUF_bp 0 /* Swap DTI output pair 0 bit position. */ /* HIRES - High-Resolution Extension */ /* HIRES.CTRLA bit masks and bit positions */ #define HIRES_HRPLUS_gm 0x0C /* High Resolution Plus group mask. */ #define HIRES_HRPLUS_gp 2 /* High Resolution Plus group position. */ #define HIRES_HRPLUS0_bm (1<<2) /* High Resolution Plus bit 0 mask. */ #define HIRES_HRPLUS0_bp 2 /* High Resolution Plus bit 0 position. */ #define HIRES_HRPLUS1_bm (1<<3) /* High Resolution Plus bit 1 mask. */ #define HIRES_HRPLUS1_bp 3 /* High Resolution Plus bit 1 position. */ #define HIRES_HREN_gm 0x03 /* High Resolution Mode group mask. */ #define HIRES_HREN_gp 0 /* High Resolution Mode group position. */ #define HIRES_HREN0_bm (1<<0) /* High Resolution Mode bit 0 mask. */ #define HIRES_HREN0_bp 0 /* High Resolution Mode bit 0 position. */ #define HIRES_HREN1_bm (1<<1) /* High Resolution Mode bit 1 mask. */ #define HIRES_HREN1_bp 1 /* High Resolution Mode bit 1 position. */ /* USART - Universal Asynchronous Receiver-Transmitter */ /* USART.STATUS bit masks and bit positions */ #define USART_RXCIF_bm 0x80 /* Receive Interrupt Flag bit mask. */ #define USART_RXCIF_bp 7 /* Receive Interrupt Flag bit position. */ #define USART_TXCIF_bm 0x40 /* Transmit Interrupt Flag bit mask. */ #define USART_TXCIF_bp 6 /* Transmit Interrupt Flag bit position. */ #define USART_DREIF_bm 0x20 /* Data Register Empty Flag bit mask. */ #define USART_DREIF_bp 5 /* Data Register Empty Flag bit position. */ #define USART_FERR_bm 0x10 /* Frame Error bit mask. */ #define USART_FERR_bp 4 /* Frame Error bit position. */ #define USART_BUFOVF_bm 0x08 /* Buffer Overflow bit mask. */ #define USART_BUFOVF_bp 3 /* Buffer Overflow bit position. */ #define USART_PERR_bm 0x04 /* Parity Error bit mask. */ #define USART_PERR_bp 2 /* Parity Error bit position. */ #define USART_RXSIF_bm 0x02 /* Receive Start Bit Interrupt Flag bit mask. */ #define USART_RXSIF_bp 1 /* Receive Start Bit Interrupt Flag bit position. */ #define USART_RXB8_bm 0x01 /* Receive Bit 8 bit mask. */ #define USART_RXB8_bp 0 /* Receive Bit 8 bit position. */ #define USART_DRIF_bm 0x01 /* Data Reception Flag bit mask. */ #define USART_DRIF_bp 0 /* Data Reception Flag bit position. */ /* USART.CTRLA bit masks and bit positions */ #define USART_RXSIE_bm 0x80 /* Receive Start Interrupt Enable bit mask. */ #define USART_RXSIE_bp 7 /* Receive Start Interrupt Enable bit position. */ #define USART_DRIE_bm 0x40 /* Data Reception Interrupt Enable bit mask. */ #define USART_DRIE_bp 6 /* Data Reception Interrupt Enable bit position. */ #define USART_RXCINTLVL_gm 0x30 /* Receive Interrupt Level group mask. */ #define USART_RXCINTLVL_gp 4 /* Receive Interrupt Level group position. */ #define USART_RXCINTLVL0_bm (1<<4) /* Receive Interrupt Level bit 0 mask. */ #define USART_RXCINTLVL0_bp 4 /* Receive Interrupt Level bit 0 position. */ #define USART_RXCINTLVL1_bm (1<<5) /* Receive Interrupt Level bit 1 mask. */ #define USART_RXCINTLVL1_bp 5 /* Receive Interrupt Level bit 1 position. */ #define USART_TXCINTLVL_gm 0x0C /* Transmit Interrupt Level group mask. */ #define USART_TXCINTLVL_gp 2 /* Transmit Interrupt Level group position. */ #define USART_TXCINTLVL0_bm (1<<2) /* Transmit Interrupt Level bit 0 mask. */ #define USART_TXCINTLVL0_bp 2 /* Transmit Interrupt Level bit 0 position. */ #define USART_TXCINTLVL1_bm (1<<3) /* Transmit Interrupt Level bit 1 mask. */ #define USART_TXCINTLVL1_bp 3 /* Transmit Interrupt Level bit 1 position. */ #define USART_DREINTLVL_gm 0x03 /* Data Register Empty Interrupt Level group mask. */ #define USART_DREINTLVL_gp 0 /* Data Register Empty Interrupt Level group position. */ #define USART_DREINTLVL0_bm (1<<0) /* Data Register Empty Interrupt Level bit 0 mask. */ #define USART_DREINTLVL0_bp 0 /* Data Register Empty Interrupt Level bit 0 position. */ #define USART_DREINTLVL1_bm (1<<1) /* Data Register Empty Interrupt Level bit 1 mask. */ #define USART_DREINTLVL1_bp 1 /* Data Register Empty Interrupt Level bit 1 position. */ /* USART.CTRLB bit masks and bit positions */ #define USART_ONEWIRE_bm 0x80 /* One Wire Mode bit mask. */ #define USART_ONEWIRE_bp 7 /* One Wire Mode bit position. */ #define USART_SFDEN_bm 0x40 /* Start Frame Detection Enable bit mask. */ #define USART_SFDEN_bp 6 /* Start Frame Detection Enable bit position. */ #define USART_RXEN_bm 0x10 /* Receiver Enable bit mask. */ #define USART_RXEN_bp 4 /* Receiver Enable bit position. */ #define USART_TXEN_bm 0x08 /* Transmitter Enable bit mask. */ #define USART_TXEN_bp 3 /* Transmitter Enable bit position. */ #define USART_CLK2X_bm 0x04 /* Double transmission speed bit mask. */ #define USART_CLK2X_bp 2 /* Double transmission speed bit position. */ #define USART_MPCM_bm 0x02 /* Multi-processor Communication Mode bit mask. */ #define USART_MPCM_bp 1 /* Multi-processor Communication Mode bit position. */ #define USART_TXB8_bm 0x01 /* Transmit bit 8 bit mask. */ #define USART_TXB8_bp 0 /* Transmit bit 8 bit position. */ /* USART.CTRLC bit masks and bit positions */ #define USART_CMODE_gm 0xC0 /* Communication Mode group mask. */ #define USART_CMODE_gp 6 /* Communication Mode group position. */ #define USART_CMODE0_bm (1<<6) /* Communication Mode bit 0 mask. */ #define USART_CMODE0_bp 6 /* Communication Mode bit 0 position. */ #define USART_CMODE1_bm (1<<7) /* Communication Mode bit 1 mask. */ #define USART_CMODE1_bp 7 /* Communication Mode bit 1 position. */ #define USART_PMODE_gm 0x30 /* Parity Mode group mask. */ #define USART_PMODE_gp 4 /* Parity Mode group position. */ #define USART_PMODE0_bm (1<<4) /* Parity Mode bit 0 mask. */ #define USART_PMODE0_bp 4 /* Parity Mode bit 0 position. */ #define USART_PMODE1_bm (1<<5) /* Parity Mode bit 1 mask. */ #define USART_PMODE1_bp 5 /* Parity Mode bit 1 position. */ #define USART_SBMODE_bm 0x08 /* Stop Bit Mode bit mask. */ #define USART_SBMODE_bp 3 /* Stop Bit Mode bit position. */ #define USART_CHSIZE_gm 0x07 /* Character Size group mask. */ #define USART_CHSIZE_gp 0 /* Character Size group position. */ #define USART_CHSIZE0_bm (1<<0) /* Character Size bit 0 mask. */ #define USART_CHSIZE0_bp 0 /* Character Size bit 0 position. */ #define USART_CHSIZE1_bm (1<<1) /* Character Size bit 1 mask. */ #define USART_CHSIZE1_bp 1 /* Character Size bit 1 position. */ #define USART_CHSIZE2_bm (1<<2) /* Character Size bit 2 mask. */ #define USART_CHSIZE2_bp 2 /* Character Size bit 2 position. */ /* USART.CTRLD bit masks and bit positions */ #define USART_DECTYPE_gm 0x30 /* Receive Interrupt Level group mask. */ #define USART_DECTYPE_gp 4 /* Receive Interrupt Level group position. */ #define USART_DECTYPE0_bm (1<<4) /* Receive Interrupt Level bit 0 mask. */ #define USART_DECTYPE0_bp 4 /* Receive Interrupt Level bit 0 position. */ #define USART_DECTYPE1_bm (1<<5) /* Receive Interrupt Level bit 1 mask. */ #define USART_DECTYPE1_bp 5 /* Receive Interrupt Level bit 1 position. */ #define USART_LUTACT_gm 0x0C /* Transmit Interrupt Level group mask. */ #define USART_LUTACT_gp 2 /* Transmit Interrupt Level group position. */ #define USART_LUTACT0_bm (1<<2) /* Transmit Interrupt Level bit 0 mask. */ #define USART_LUTACT0_bp 2 /* Transmit Interrupt Level bit 0 position. */ #define USART_LUTACT1_bm (1<<3) /* Transmit Interrupt Level bit 1 mask. */ #define USART_LUTACT1_bp 3 /* Transmit Interrupt Level bit 1 position. */ #define USART_PECACT_gm 0x03 /* Data Register Empty Interrupt Level group mask. */ #define USART_PECACT_gp 0 /* Data Register Empty Interrupt Level group position. */ #define USART_PECACT0_bm (1<<0) /* Data Register Empty Interrupt Level bit 0 mask. */ #define USART_PECACT0_bp 0 /* Data Register Empty Interrupt Level bit 0 position. */ #define USART_PECACT1_bm (1<<1) /* Data Register Empty Interrupt Level bit 1 mask. */ #define USART_PECACT1_bp 1 /* Data Register Empty Interrupt Level bit 1 position. */ /* USART.BAUDCTRLA bit masks and bit positions */ #define USART_BSEL_gm 0xFF /* Baud Rate Selection Bits [7:0] group mask. */ #define USART_BSEL_gp 0 /* Baud Rate Selection Bits [7:0] group position. */ #define USART_BSEL0_bm (1<<0) /* Baud Rate Selection Bits [7:0] bit 0 mask. */ #define USART_BSEL0_bp 0 /* Baud Rate Selection Bits [7:0] bit 0 position. */ #define USART_BSEL1_bm (1<<1) /* Baud Rate Selection Bits [7:0] bit 1 mask. */ #define USART_BSEL1_bp 1 /* Baud Rate Selection Bits [7:0] bit 1 position. */ #define USART_BSEL2_bm (1<<2) /* Baud Rate Selection Bits [7:0] bit 2 mask. */ #define USART_BSEL2_bp 2 /* Baud Rate Selection Bits [7:0] bit 2 position. */ #define USART_BSEL3_bm (1<<3) /* Baud Rate Selection Bits [7:0] bit 3 mask. */ #define USART_BSEL3_bp 3 /* Baud Rate Selection Bits [7:0] bit 3 position. */ #define USART_BSEL4_bm (1<<4) /* Baud Rate Selection Bits [7:0] bit 4 mask. */ #define USART_BSEL4_bp 4 /* Baud Rate Selection Bits [7:0] bit 4 position. */ #define USART_BSEL5_bm (1<<5) /* Baud Rate Selection Bits [7:0] bit 5 mask. */ #define USART_BSEL5_bp 5 /* Baud Rate Selection Bits [7:0] bit 5 position. */ #define USART_BSEL6_bm (1<<6) /* Baud Rate Selection Bits [7:0] bit 6 mask. */ #define USART_BSEL6_bp 6 /* Baud Rate Selection Bits [7:0] bit 6 position. */ #define USART_BSEL7_bm (1<<7) /* Baud Rate Selection Bits [7:0] bit 7 mask. */ #define USART_BSEL7_bp 7 /* Baud Rate Selection Bits [7:0] bit 7 position. */ /* USART.BAUDCTRLB bit masks and bit positions */ #define USART_BSCALE_gm 0xF0 /* Baud Rate Scale group mask. */ #define USART_BSCALE_gp 4 /* Baud Rate Scale group position. */ #define USART_BSCALE0_bm (1<<4) /* Baud Rate Scale bit 0 mask. */ #define USART_BSCALE0_bp 4 /* Baud Rate Scale bit 0 position. */ #define USART_BSCALE1_bm (1<<5) /* Baud Rate Scale bit 1 mask. */ #define USART_BSCALE1_bp 5 /* Baud Rate Scale bit 1 position. */ #define USART_BSCALE2_bm (1<<6) /* Baud Rate Scale bit 2 mask. */ #define USART_BSCALE2_bp 6 /* Baud Rate Scale bit 2 position. */ #define USART_BSCALE3_bm (1<<7) /* Baud Rate Scale bit 3 mask. */ #define USART_BSCALE3_bp 7 /* Baud Rate Scale bit 3 position. */ /* USART_BSEL Predefined. */ /* USART_BSEL Predefined. */ /* SPI - Serial Peripheral Interface */ /* SPI.CTRL bit masks and bit positions */ #define SPI_CLK2X_bm 0x80 /* Enable Double Speed bit mask. */ #define SPI_CLK2X_bp 7 /* Enable Double Speed bit position. */ #define SPI_ENABLE_bm 0x40 /* Enable SPI Module bit mask. */ #define SPI_ENABLE_bp 6 /* Enable SPI Module bit position. */ #define SPI_DORD_bm 0x20 /* Data Order Setting bit mask. */ #define SPI_DORD_bp 5 /* Data Order Setting bit position. */ #define SPI_MASTER_bm 0x10 /* Master Operation Enable bit mask. */ #define SPI_MASTER_bp 4 /* Master Operation Enable bit position. */ #define SPI_MODE_gm 0x0C /* SPI Mode group mask. */ #define SPI_MODE_gp 2 /* SPI Mode group position. */ #define SPI_MODE0_bm (1<<2) /* SPI Mode bit 0 mask. */ #define SPI_MODE0_bp 2 /* SPI Mode bit 0 position. */ #define SPI_MODE1_bm (1<<3) /* SPI Mode bit 1 mask. */ #define SPI_MODE1_bp 3 /* SPI Mode bit 1 position. */ #define SPI_PRESCALER_gm 0x03 /* Prescaler group mask. */ #define SPI_PRESCALER_gp 0 /* Prescaler group position. */ #define SPI_PRESCALER0_bm (1<<0) /* Prescaler bit 0 mask. */ #define SPI_PRESCALER0_bp 0 /* Prescaler bit 0 position. */ #define SPI_PRESCALER1_bm (1<<1) /* Prescaler bit 1 mask. */ #define SPI_PRESCALER1_bp 1 /* Prescaler bit 1 position. */ /* SPI.INTCTRL bit masks and bit positions */ #define SPI_RXCIE_bm 0x80 /* Receive Complete Interrupt Enable (In Buffer Modes Only). bit mask. */ #define SPI_RXCIE_bp 7 /* Receive Complete Interrupt Enable (In Buffer Modes Only). bit position. */ #define SPI_TXCIE_bm 0x40 /* Transmit Complete Interrupt Enable (In Buffer Modes Only). bit mask. */ #define SPI_TXCIE_bp 6 /* Transmit Complete Interrupt Enable (In Buffer Modes Only). bit position. */ #define SPI_DREIE_bm 0x20 /* Data Register Empty Interrupt Enable (In Buffer Modes Only). bit mask. */ #define SPI_DREIE_bp 5 /* Data Register Empty Interrupt Enable (In Buffer Modes Only). bit position. */ #define SPI_SSIE_bm 0x10 /* Slave Select Trigger Interrupt Enable (In Buffer Modes Only). bit mask. */ #define SPI_SSIE_bp 4 /* Slave Select Trigger Interrupt Enable (In Buffer Modes Only). bit position. */ #define SPI_INTLVL_gm 0x03 /* Interrupt level group mask. */ #define SPI_INTLVL_gp 0 /* Interrupt level group position. */ #define SPI_INTLVL0_bm (1<<0) /* Interrupt level bit 0 mask. */ #define SPI_INTLVL0_bp 0 /* Interrupt level bit 0 position. */ #define SPI_INTLVL1_bm (1<<1) /* Interrupt level bit 1 mask. */ #define SPI_INTLVL1_bp 1 /* Interrupt level bit 1 position. */ /* SPI.STATUS bit masks and bit positions */ #define SPI_IF_bm 0x80 /* Interrupt Flag (In Standard Mode Only). bit mask. */ #define SPI_IF_bp 7 /* Interrupt Flag (In Standard Mode Only). bit position. */ #define SPI_RXCIF_bm 0x80 /* Receive Complete Interrupt Flag (In Buffer Modes Only). bit mask. */ #define SPI_RXCIF_bp 7 /* Receive Complete Interrupt Flag (In Buffer Modes Only). bit position. */ #define SPI_WRCOL_bm 0x40 /* Write Collision Flag (In Standard Mode Only). bit mask. */ #define SPI_WRCOL_bp 6 /* Write Collision Flag (In Standard Mode Only). bit position. */ #define SPI_TXCIF_bm 0x40 /* Transmit Complete Interrupt Flag (In Buffer Modes Only). bit mask. */ #define SPI_TXCIF_bp 6 /* Transmit Complete Interrupt Flag (In Buffer Modes Only). bit position. */ #define SPI_DREIF_bm 0x20 /* Data Register Empty Interrupt Flag (In Buffer Modes Only). bit mask. */ #define SPI_DREIF_bp 5 /* Data Register Empty Interrupt Flag (In Buffer Modes Only). bit position. */ #define SPI_SSIF_bm 0x10 /* Slave Select Trigger Interrupt Flag (In Buffer Modes Only). bit mask. */ #define SPI_SSIF_bp 4 /* Slave Select Trigger Interrupt Flag (In Buffer Modes Only). bit position. */ #define SPI_BUFOVF_bm 0x01 /* Buffer Overflow (In Buffer Modes Only). bit mask. */ #define SPI_BUFOVF_bp 0 /* Buffer Overflow (In Buffer Modes Only). bit position. */ /* SPI.CTRLB bit masks and bit positions */ #define SPI_BUFMODE_gm 0xC0 /* Buffer Modes group mask. */ #define SPI_BUFMODE_gp 6 /* Buffer Modes group position. */ #define SPI_BUFMODE0_bm (1<<6) /* Buffer Modes bit 0 mask. */ #define SPI_BUFMODE0_bp 6 /* Buffer Modes bit 0 position. */ #define SPI_BUFMODE1_bm (1<<7) /* Buffer Modes bit 1 mask. */ #define SPI_BUFMODE1_bp 7 /* Buffer Modes bit 1 position. */ #define SPI_SSD_bm 0x04 /* Slave Select Disable bit mask. */ #define SPI_SSD_bp 2 /* Slave Select Disable bit position. */ /* IRCOM - IR Communication Module */ /* IRCOM.CTRL bit masks and bit positions */ #define IRCOM_EVSEL_gm 0x0F /* Event Channel Select group mask. */ #define IRCOM_EVSEL_gp 0 /* Event Channel Select group position. */ #define IRCOM_EVSEL0_bm (1<<0) /* Event Channel Select bit 0 mask. */ #define IRCOM_EVSEL0_bp 0 /* Event Channel Select bit 0 position. */ #define IRCOM_EVSEL1_bm (1<<1) /* Event Channel Select bit 1 mask. */ #define IRCOM_EVSEL1_bp 1 /* Event Channel Select bit 1 position. */ #define IRCOM_EVSEL2_bm (1<<2) /* Event Channel Select bit 2 mask. */ #define IRCOM_EVSEL2_bp 2 /* Event Channel Select bit 2 position. */ #define IRCOM_EVSEL3_bm (1<<3) /* Event Channel Select bit 3 mask. */ #define IRCOM_EVSEL3_bp 3 /* Event Channel Select bit 3 position. */ /* FUSE - Fuses and Lockbits */ /* NVM_LOCKBITS.LOCKBITS bit masks and bit positions */ #define NVM_LOCKBITS_BLBB_gm 0xC0 /* Boot Lock Bits - Boot Section group mask. */ #define NVM_LOCKBITS_BLBB_gp 6 /* Boot Lock Bits - Boot Section group position. */ #define NVM_LOCKBITS_BLBB0_bm (1<<6) /* Boot Lock Bits - Boot Section bit 0 mask. */ #define NVM_LOCKBITS_BLBB0_bp 6 /* Boot Lock Bits - Boot Section bit 0 position. */ #define NVM_LOCKBITS_BLBB1_bm (1<<7) /* Boot Lock Bits - Boot Section bit 1 mask. */ #define NVM_LOCKBITS_BLBB1_bp 7 /* Boot Lock Bits - Boot Section bit 1 position. */ #define NVM_LOCKBITS_BLBA_gm 0x30 /* Boot Lock Bits - Application Section group mask. */ #define NVM_LOCKBITS_BLBA_gp 4 /* Boot Lock Bits - Application Section group position. */ #define NVM_LOCKBITS_BLBA0_bm (1<<4) /* Boot Lock Bits - Application Section bit 0 mask. */ #define NVM_LOCKBITS_BLBA0_bp 4 /* Boot Lock Bits - Application Section bit 0 position. */ #define NVM_LOCKBITS_BLBA1_bm (1<<5) /* Boot Lock Bits - Application Section bit 1 mask. */ #define NVM_LOCKBITS_BLBA1_bp 5 /* Boot Lock Bits - Application Section bit 1 position. */ #define NVM_LOCKBITS_BLBAT_gm 0x0C /* Boot Lock Bits - Application Table group mask. */ #define NVM_LOCKBITS_BLBAT_gp 2 /* Boot Lock Bits - Application Table group position. */ #define NVM_LOCKBITS_BLBAT0_bm (1<<2) /* Boot Lock Bits - Application Table bit 0 mask. */ #define NVM_LOCKBITS_BLBAT0_bp 2 /* Boot Lock Bits - Application Table bit 0 position. */ #define NVM_LOCKBITS_BLBAT1_bm (1<<3) /* Boot Lock Bits - Application Table bit 1 mask. */ #define NVM_LOCKBITS_BLBAT1_bp 3 /* Boot Lock Bits - Application Table bit 1 position. */ #define NVM_LOCKBITS_LB_gm 0x03 /* Lock Bits group mask. */ #define NVM_LOCKBITS_LB_gp 0 /* Lock Bits group position. */ #define NVM_LOCKBITS_LB0_bm (1<<0) /* Lock Bits bit 0 mask. */ #define NVM_LOCKBITS_LB0_bp 0 /* Lock Bits bit 0 position. */ #define NVM_LOCKBITS_LB1_bm (1<<1) /* Lock Bits bit 1 mask. */ #define NVM_LOCKBITS_LB1_bp 1 /* Lock Bits bit 1 position. */ /* NVM_FUSES.FUSEBYTE1 bit masks and bit positions */ #define NVM_FUSES_WDWP_gm 0xF0 /* Watchdog Window Timeout Period group mask. */ #define NVM_FUSES_WDWP_gp 4 /* Watchdog Window Timeout Period group position. */ #define NVM_FUSES_WDWP0_bm (1<<4) /* Watchdog Window Timeout Period bit 0 mask. */ #define NVM_FUSES_WDWP0_bp 4 /* Watchdog Window Timeout Period bit 0 position. */ #define NVM_FUSES_WDWP1_bm (1<<5) /* Watchdog Window Timeout Period bit 1 mask. */ #define NVM_FUSES_WDWP1_bp 5 /* Watchdog Window Timeout Period bit 1 position. */ #define NVM_FUSES_WDWP2_bm (1<<6) /* Watchdog Window Timeout Period bit 2 mask. */ #define NVM_FUSES_WDWP2_bp 6 /* Watchdog Window Timeout Period bit 2 position. */ #define NVM_FUSES_WDWP3_bm (1<<7) /* Watchdog Window Timeout Period bit 3 mask. */ #define NVM_FUSES_WDWP3_bp 7 /* Watchdog Window Timeout Period bit 3 position. */ #define NVM_FUSES_WDP_gm 0x0F /* Watchdog Timeout Period group mask. */ #define NVM_FUSES_WDP_gp 0 /* Watchdog Timeout Period group position. */ #define NVM_FUSES_WDP0_bm (1<<0) /* Watchdog Timeout Period bit 0 mask. */ #define NVM_FUSES_WDP0_bp 0 /* Watchdog Timeout Period bit 0 position. */ #define NVM_FUSES_WDP1_bm (1<<1) /* Watchdog Timeout Period bit 1 mask. */ #define NVM_FUSES_WDP1_bp 1 /* Watchdog Timeout Period bit 1 position. */ #define NVM_FUSES_WDP2_bm (1<<2) /* Watchdog Timeout Period bit 2 mask. */ #define NVM_FUSES_WDP2_bp 2 /* Watchdog Timeout Period bit 2 position. */ #define NVM_FUSES_WDP3_bm (1<<3) /* Watchdog Timeout Period bit 3 mask. */ #define NVM_FUSES_WDP3_bp 3 /* Watchdog Timeout Period bit 3 position. */ /* NVM_FUSES.FUSEBYTE2 bit masks and bit positions */ #define NVM_FUSES_BOOTRST_bm 0x40 /* Boot Loader Section Reset Vector bit mask. */ #define NVM_FUSES_BOOTRST_bp 6 /* Boot Loader Section Reset Vector bit position. */ #define NVM_FUSES_BODPD_gm 0x03 /* BOD Operation in Power-Down Mode group mask. */ #define NVM_FUSES_BODPD_gp 0 /* BOD Operation in Power-Down Mode group position. */ #define NVM_FUSES_BODPD0_bm (1<<0) /* BOD Operation in Power-Down Mode bit 0 mask. */ #define NVM_FUSES_BODPD0_bp 0 /* BOD Operation in Power-Down Mode bit 0 position. */ #define NVM_FUSES_BODPD1_bm (1<<1) /* BOD Operation in Power-Down Mode bit 1 mask. */ #define NVM_FUSES_BODPD1_bp 1 /* BOD Operation in Power-Down Mode bit 1 position. */ /* NVM_FUSES.FUSEBYTE4 bit masks and bit positions */ #define NVM_FUSES_RSTDISBL_bm 0x10 /* External Reset Disable bit mask. */ #define NVM_FUSES_RSTDISBL_bp 4 /* External Reset Disable bit position. */ #define NVM_FUSES_SUT_gm 0x0C /* Start-up Time group mask. */ #define NVM_FUSES_SUT_gp 2 /* Start-up Time group position. */ #define NVM_FUSES_SUT0_bm (1<<2) /* Start-up Time bit 0 mask. */ #define NVM_FUSES_SUT0_bp 2 /* Start-up Time bit 0 position. */ #define NVM_FUSES_SUT1_bm (1<<3) /* Start-up Time bit 1 mask. */ #define NVM_FUSES_SUT1_bp 3 /* Start-up Time bit 1 position. */ #define NVM_FUSES_WDLOCK_bm 0x02 /* Watchdog Timer Lock bit mask. */ #define NVM_FUSES_WDLOCK_bp 1 /* Watchdog Timer Lock bit position. */ /* NVM_FUSES.FUSEBYTE5 bit masks and bit positions */ #define NVM_FUSES_BODACT_gm 0x30 /* BOD Operation in Active Mode group mask. */ #define NVM_FUSES_BODACT_gp 4 /* BOD Operation in Active Mode group position. */ #define NVM_FUSES_BODACT0_bm (1<<4) /* BOD Operation in Active Mode bit 0 mask. */ #define NVM_FUSES_BODACT0_bp 4 /* BOD Operation in Active Mode bit 0 position. */ #define NVM_FUSES_BODACT1_bm (1<<5) /* BOD Operation in Active Mode bit 1 mask. */ #define NVM_FUSES_BODACT1_bp 5 /* BOD Operation in Active Mode bit 1 position. */ #define NVM_FUSES_EESAVE_bm 0x08 /* Preserve EEPROM Through Chip Erase bit mask. */ #define NVM_FUSES_EESAVE_bp 3 /* Preserve EEPROM Through Chip Erase bit position. */ #define NVM_FUSES_BODLVL_gm 0x07 /* Brownout Detection Voltage Level group mask. */ #define NVM_FUSES_BODLVL_gp 0 /* Brownout Detection Voltage Level group position. */ #define NVM_FUSES_BODLVL0_bm (1<<0) /* Brownout Detection Voltage Level bit 0 mask. */ #define NVM_FUSES_BODLVL0_bp 0 /* Brownout Detection Voltage Level bit 0 position. */ #define NVM_FUSES_BODLVL1_bm (1<<1) /* Brownout Detection Voltage Level bit 1 mask. */ #define NVM_FUSES_BODLVL1_bp 1 /* Brownout Detection Voltage Level bit 1 position. */ #define NVM_FUSES_BODLVL2_bm (1<<2) /* Brownout Detection Voltage Level bit 2 mask. */ #define NVM_FUSES_BODLVL2_bp 2 /* Brownout Detection Voltage Level bit 2 position. */ /* NVM_FUSES.FUSEBYTE6 bit masks and bit positions */ #define NVM_FUSES_FDACT5_bm 0x80 /* Fault Dectection Action on TC5 bit mask. */ #define NVM_FUSES_FDACT5_bp 7 /* Fault Dectection Action on TC5 bit position. */ #define NVM_FUSES_FDACT4_bm 0x40 /* Fault Dectection Action on TC4 bit mask. */ #define NVM_FUSES_FDACT4_bp 6 /* Fault Dectection Action on TC4 bit position. */ #define NVM_FUSES_VALUE_gm 0x3F /* Port Pin Value group mask. */ #define NVM_FUSES_VALUE_gp 0 /* Port Pin Value group position. */ #define NVM_FUSES_VALUE0_bm (1<<0) /* Port Pin Value bit 0 mask. */ #define NVM_FUSES_VALUE0_bp 0 /* Port Pin Value bit 0 position. */ #define NVM_FUSES_VALUE1_bm (1<<1) /* Port Pin Value bit 1 mask. */ #define NVM_FUSES_VALUE1_bp 1 /* Port Pin Value bit 1 position. */ #define NVM_FUSES_VALUE2_bm (1<<2) /* Port Pin Value bit 2 mask. */ #define NVM_FUSES_VALUE2_bp 2 /* Port Pin Value bit 2 position. */ #define NVM_FUSES_VALUE3_bm (1<<3) /* Port Pin Value bit 3 mask. */ #define NVM_FUSES_VALUE3_bp 3 /* Port Pin Value bit 3 position. */ #define NVM_FUSES_VALUE4_bm (1<<4) /* Port Pin Value bit 4 mask. */ #define NVM_FUSES_VALUE4_bp 4 /* Port Pin Value bit 4 position. */ #define NVM_FUSES_VALUE5_bm (1<<5) /* Port Pin Value bit 5 mask. */ #define NVM_FUSES_VALUE5_bp 5 /* Port Pin Value bit 5 position. */ // Generic Port Pins #define PIN0_bm 0x01 #define PIN0_bp 0 #define PIN1_bm 0x02 #define PIN1_bp 1 #define PIN2_bm 0x04 #define PIN2_bp 2 #define PIN3_bm 0x08 #define PIN3_bp 3 #define PIN4_bm 0x10 #define PIN4_bp 4 #define PIN5_bm 0x20 #define PIN5_bp 5 #define PIN6_bm 0x40 #define PIN6_bp 6 #define PIN7_bm 0x80 #define PIN7_bp 7 /* ========== Interrupt Vector Definitions ========== */ /* Vector 0 is the reset vector */ /* OSC interrupt vectors */ #define OSC_OSCF_vect_num 1 #define OSC_OSCF_vect _VECTOR(1) /* Oscillator Failure Interrupt (NMI) */ /* PORTR interrupt vectors */ #define PORTR_INT_vect_num 2 #define PORTR_INT_vect _VECTOR(2) /* External Interrupt */ /* EDMA interrupt vectors */ #define EDMA_CH0_vect_num 3 #define EDMA_CH0_vect _VECTOR(3) /* EDMA Channel 0 Interrupt */ #define EDMA_CH1_vect_num 4 #define EDMA_CH1_vect _VECTOR(4) /* EDMA Channel 1 Interrupt */ #define EDMA_CH2_vect_num 5 #define EDMA_CH2_vect _VECTOR(5) /* EDMA Channel 2 Interrupt */ #define EDMA_CH3_vect_num 6 #define EDMA_CH3_vect _VECTOR(6) /* EDMA Channel 3 Interrupt */ /* RTC interrupt vectors */ #define RTC_OVF_vect_num 7 #define RTC_OVF_vect _VECTOR(7) /* Overflow Interrupt */ #define RTC_COMP_vect_num 8 #define RTC_COMP_vect _VECTOR(8) /* Compare Interrupt */ /* PORTC interrupt vectors */ #define PORTC_INT_vect_num 9 #define PORTC_INT_vect _VECTOR(9) /* External Interrupt */ /* TWIC interrupt vectors */ #define TWIC_TWIS_vect_num 10 #define TWIC_TWIS_vect _VECTOR(10) /* TWI Slave Interrupt */ #define TWIC_TWIM_vect_num 11 #define TWIC_TWIM_vect _VECTOR(11) /* TWI Master Interrupt */ /* TCC4 interrupt vectors */ #define TCC4_OVF_vect_num 12 #define TCC4_OVF_vect _VECTOR(12) /* Overflow Interrupt */ #define TCC4_ERR_vect_num 13 #define TCC4_ERR_vect _VECTOR(13) /* Error Interrupt */ #define TCC4_CCA_vect_num 14 #define TCC4_CCA_vect _VECTOR(14) /* Channel A Compare or Capture Interrupt */ #define TCC4_CCB_vect_num 15 #define TCC4_CCB_vect _VECTOR(15) /* Channel B Compare or Capture Interrupt */ #define TCC4_CCC_vect_num 16 #define TCC4_CCC_vect _VECTOR(16) /* Channel C Compare or Capture Interrupt */ #define TCC4_CCD_vect_num 17 #define TCC4_CCD_vect _VECTOR(17) /* Channel D Compare or Capture Interrupt */ /* TCC5 interrupt vectors */ #define TCC5_OVF_vect_num 18 #define TCC5_OVF_vect _VECTOR(18) /* Overflow Interrupt */ #define TCC5_ERR_vect_num 19 #define TCC5_ERR_vect _VECTOR(19) /* Error Interrupt */ #define TCC5_CCA_vect_num 20 #define TCC5_CCA_vect _VECTOR(20) /* Channel A Compare or Capture Interrupt */ #define TCC5_CCB_vect_num 21 #define TCC5_CCB_vect _VECTOR(21) /* Channel B Compare or Capture Interrupt */ /* SPIC interrupt vectors */ #define SPIC_INT_vect_num 22 #define SPIC_INT_vect _VECTOR(22) /* SPI Interrupt */ /* USARTC0 interrupt vectors */ #define USARTC0_RXC_vect_num 23 #define USARTC0_RXC_vect _VECTOR(23) /* Reception Complete Interrupt */ #define USARTC0_DRE_vect_num 24 #define USARTC0_DRE_vect _VECTOR(24) /* Data Register Empty Interrupt */ #define USARTC0_TXC_vect_num 25 #define USARTC0_TXC_vect _VECTOR(25) /* Transmission Complete Interrupt */ /* NVM interrupt vectors */ #define NVM_EE_vect_num 26 #define NVM_EE_vect _VECTOR(26) /* EE Interrupt */ #define NVM_SPM_vect_num 27 #define NVM_SPM_vect _VECTOR(27) /* SPM Interrupt */ /* XCL interrupt vectors */ #define XCL_UNF_vect_num 28 #define XCL_UNF_vect _VECTOR(28) /* Timer/Counter Underflow Interrupt */ #define XCL_CC_vect_num 29 #define XCL_CC_vect _VECTOR(29) /* Timer/Counter Compare or Capture Interrupt */ /* PORTA interrupt vectors */ #define PORTA_INT_vect_num 30 #define PORTA_INT_vect _VECTOR(30) /* External Interrupt */ /* ACA interrupt vectors */ #define ACA_AC0_vect_num 31 #define ACA_AC0_vect _VECTOR(31) /* AC0 Interrupt */ #define ACA_AC1_vect_num 32 #define ACA_AC1_vect _VECTOR(32) /* AC1 Interrupt */ #define ACA_ACW_vect_num 33 #define ACA_ACW_vect _VECTOR(33) /* ACW Window Mode Interrupt */ /* ADCA interrupt vectors */ #define ADCA_CH0_vect_num 34 #define ADCA_CH0_vect _VECTOR(34) /* ADC Channel Interrupt */ /* PORTD interrupt vectors */ #define PORTD_INT_vect_num 35 #define PORTD_INT_vect _VECTOR(35) /* External Interrupt */ /* TCD5 interrupt vectors */ #define TCD5_OVF_vect_num 36 #define TCD5_OVF_vect _VECTOR(36) /* Overflow Interrupt */ #define TCD5_ERR_vect_num 37 #define TCD5_ERR_vect _VECTOR(37) /* Error Interrupt */ #define TCD5_CCA_vect_num 38 #define TCD5_CCA_vect _VECTOR(38) /* Channel A Compare or Capture Interrupt */ #define TCD5_CCB_vect_num 39 #define TCD5_CCB_vect _VECTOR(39) /* Channel B Compare or Capture Interrupt */ /* USARTD0 interrupt vectors */ #define USARTD0_RXC_vect_num 40 #define USARTD0_RXC_vect _VECTOR(40) /* Reception Complete Interrupt */ #define USARTD0_DRE_vect_num 41 #define USARTD0_DRE_vect _VECTOR(41) /* Data Register Empty Interrupt */ #define USARTD0_TXC_vect_num 42 #define USARTD0_TXC_vect _VECTOR(42) /* Transmission Complete Interrupt */ #define _VECTOR_SIZE 4 /* Size of individual vector. */ #define _VECTORS_SIZE (43 * _VECTOR_SIZE) /* ========== Constants ========== */ #define PROGMEM_START (0x0000) #define PROGMEM_SIZE (20480) #define PROGMEM_END (PROGMEM_START + PROGMEM_SIZE - 1) #define APP_SECTION_START (0x0000) #define APP_SECTION_SIZE (16384) #define APP_SECTION_PAGE_SIZE (128) #define APP_SECTION_END (APP_SECTION_START + APP_SECTION_SIZE - 1) #define APPTABLE_SECTION_START (0x3000) #define APPTABLE_SECTION_SIZE (4096) #define APPTABLE_SECTION_PAGE_SIZE (128) #define APPTABLE_SECTION_END (APPTABLE_SECTION_START + APPTABLE_SECTION_SIZE - 1) #define BOOT_SECTION_START (0x4000) #define BOOT_SECTION_SIZE (4096) #define BOOT_SECTION_PAGE_SIZE (128) #define BOOT_SECTION_END (BOOT_SECTION_START + BOOT_SECTION_SIZE - 1) #define DATAMEM_START (0x0000) #define DATAMEM_SIZE (10240) #define DATAMEM_END (DATAMEM_START + DATAMEM_SIZE - 1) #define IO_START (0x0000) #define IO_SIZE (4096) #define IO_PAGE_SIZE (0) #define IO_END (IO_START + IO_SIZE - 1) #define MAPPED_EEPROM_START (0x1000) #define MAPPED_EEPROM_SIZE (512) #define MAPPED_EEPROM_PAGE_SIZE (0) #define MAPPED_EEPROM_END (MAPPED_EEPROM_START + MAPPED_EEPROM_SIZE - 1) #define INTERNAL_SRAM_START (0x2000) #define INTERNAL_SRAM_SIZE (2048) #define INTERNAL_SRAM_PAGE_SIZE (0) #define INTERNAL_SRAM_END (INTERNAL_SRAM_START + INTERNAL_SRAM_SIZE - 1) #define EEPROM_START (0x0000) #define EEPROM_SIZE (512) #define EEPROM_PAGE_SIZE (32) #define EEPROM_END (EEPROM_START + EEPROM_SIZE - 1) #define SIGNATURES_START (0x0000) #define SIGNATURES_SIZE (3) #define SIGNATURES_PAGE_SIZE (0) #define SIGNATURES_END (SIGNATURES_START + SIGNATURES_SIZE - 1) #define FUSES_START (0x0000) #define FUSES_SIZE (7) #define FUSES_PAGE_SIZE (0) #define FUSES_END (FUSES_START + FUSES_SIZE - 1) #define LOCKBITS_START (0x0000) #define LOCKBITS_SIZE (1) #define LOCKBITS_PAGE_SIZE (0) #define LOCKBITS_END (LOCKBITS_START + LOCKBITS_SIZE - 1) #define USER_SIGNATURES_START (0x0000) #define USER_SIGNATURES_SIZE (128) #define USER_SIGNATURES_PAGE_SIZE (128) #define USER_SIGNATURES_END (USER_SIGNATURES_START + USER_SIGNATURES_SIZE - 1) #define PROD_SIGNATURES_START (0x0000) #define PROD_SIGNATURES_SIZE (52) #define PROD_SIGNATURES_PAGE_SIZE (128) #define PROD_SIGNATURES_END (PROD_SIGNATURES_START + PROD_SIGNATURES_SIZE - 1) #define FLASHSTART PROGMEM_START #define FLASHEND PROGMEM_END #define SPM_PAGESIZE 128 #define RAMSTART INTERNAL_SRAM_START #define RAMSIZE INTERNAL_SRAM_SIZE #define RAMEND INTERNAL_SRAM_END #define E2END EEPROM_END #define E2PAGESIZE EEPROM_PAGE_SIZE /* ========== Fuses ========== */ #define FUSE_MEMORY_SIZE 7 /* Fuse Byte 0 Reserved */ /* Fuse Byte 1 */ #define FUSE_WDP0 (unsigned char)~_BV(0) /* Watchdog Timeout Period Bit 0 */ #define FUSE_WDP1 (unsigned char)~_BV(1) /* Watchdog Timeout Period Bit 1 */ #define FUSE_WDP2 (unsigned char)~_BV(2) /* Watchdog Timeout Period Bit 2 */ #define FUSE_WDP3 (unsigned char)~_BV(3) /* Watchdog Timeout Period Bit 3 */ #define FUSE_WDWP0 (unsigned char)~_BV(4) /* Watchdog Window Timeout Period Bit 0 */ #define FUSE_WDWP1 (unsigned char)~_BV(5) /* Watchdog Window Timeout Period Bit 1 */ #define FUSE_WDWP2 (unsigned char)~_BV(6) /* Watchdog Window Timeout Period Bit 2 */ #define FUSE_WDWP3 (unsigned char)~_BV(7) /* Watchdog Window Timeout Period Bit 3 */ #define FUSE1_DEFAULT (0xFF) /* Fuse Byte 2 */ #define FUSE_BODPD0 (unsigned char)~_BV(0) /* BOD Operation in Power-Down Mode Bit 0 */ #define FUSE_BODPD1 (unsigned char)~_BV(1) /* BOD Operation in Power-Down Mode Bit 1 */ #define FUSE_BOOTRST (unsigned char)~_BV(6) /* Boot Loader Section Reset Vector */ #define FUSE2_DEFAULT (0xFF) /* Fuse Byte 3 Reserved */ /* Fuse Byte 4 */ #define FUSE_WDLOCK (unsigned char)~_BV(1) /* Watchdog Timer Lock */ #define FUSE_SUT0 (unsigned char)~_BV(2) /* Start-up Time Bit 0 */ #define FUSE_SUT1 (unsigned char)~_BV(3) /* Start-up Time Bit 1 */ #define FUSE_RSTDISBL (unsigned char)~_BV(4) /* External Reset Disable */ #define FUSE4_DEFAULT (0xFF) /* Fuse Byte 5 */ #define FUSE_BODLVL0 (unsigned char)~_BV(0) /* Brownout Detection Voltage Level Bit 0 */ #define FUSE_BODLVL1 (unsigned char)~_BV(1) /* Brownout Detection Voltage Level Bit 1 */ #define FUSE_BODLVL2 (unsigned char)~_BV(2) /* Brownout Detection Voltage Level Bit 2 */ #define FUSE_EESAVE (unsigned char)~_BV(3) /* Preserve EEPROM Through Chip Erase */ #define FUSE_BODACT0 (unsigned char)~_BV(4) /* BOD Operation in Active Mode Bit 0 */ #define FUSE_BODACT1 (unsigned char)~_BV(5) /* BOD Operation in Active Mode Bit 1 */ #define FUSE5_DEFAULT (0xFF) /* Fuse Byte 6 */ #define FUSE_VALUE0 (unsigned char)~_BV(0) /* Port Pin Value Bit 0 */ #define FUSE_VALUE1 (unsigned char)~_BV(1) /* Port Pin Value Bit 1 */ #define FUSE_VALUE2 (unsigned char)~_BV(2) /* Port Pin Value Bit 2 */ #define FUSE_VALUE3 (unsigned char)~_BV(3) /* Port Pin Value Bit 3 */ #define FUSE_VALUE4 (unsigned char)~_BV(4) /* Port Pin Value Bit 4 */ #define FUSE_VALUE5 (unsigned char)~_BV(5) /* Port Pin Value Bit 5 */ #define FUSE_FDACT4 (unsigned char)~_BV(6) /* Fault Dectection Action on TC4 */ #define FUSE_FDACT5 (unsigned char)~_BV(7) /* Fault Dectection Action on TC5 */ #define FUSE6_DEFAULT (0xFF) /* ========== Lock Bits ========== */ #define __LOCK_BITS_EXIST #define __BOOT_LOCK_APPLICATION_TABLE_BITS_EXIST #define __BOOT_LOCK_APPLICATION_BITS_EXIST #define __BOOT_LOCK_BOOT_BITS_EXIST /* ========== Signature ========== */ #define SIGNATURE_0 0x1E #define SIGNATURE_1 0x94 #define SIGNATURE_2 0x45 #endif /* #ifdef _AVR_ATXMEGA16E5_H_INCLUDED */