Skip to content

SyntaxSugar

askn37 edited this page Sep 17, 2026 · 3 revisions

Macro_API 糖衣構文

Macro_API では、異なる品種で同一の機能を有する IOレジスタ・定義値等には、ソースコードレベルでの相互移植性・相互互換性の便宜を図るために、共通するラベル名/別名を与えている。

  • 対象項目は随時追加・修正されている。全てを網羅しているわけではない。必ずしも後方互換を重んじてはいない。
  • 本稿の糖衣構文は、ENABLE_MACRO_API 定義かつ DISABLE_MACRO_API 未定義かつ __AVR_ARCH__ >= 102 で有効。
  • 表記揺れや(Errataによる)定義漏れの再定義は、多数派を尊重する。
  • EVSYS 関連は相互完全互換は不可能なため、サブセット(部分的互換性維持)である。
  • レジスタ名に対する別名は、機能群.機能名(構造体形式)には提供されず、機能群_機能名 にのみ提供される。
  • いくつかは "ポカよけ" のために別名定義されており、新規設計非推奨。
  • *_gc の enum宣言を含む値は ASSEMBLER 記述では引用できない。
  • 本稿では reduceAVR については言及しない。

USART_RS485*

  • 初出:tinyAVR-0/1、modernAVR-0
  • 後方互換:tinyAVR-2、AVR_Dx/Ex/Sx
  • 非互換;AVR_LA
  • 非推奨:Not Recommended for New Designs(ポカよけ)
  • USART_RS485_INTは、RS485通信で XDIR 切替時に x1 CLK_BAUD の待機時間を挿入する。後品種では公的には削除されたが AVR_LA 以外は予約ビットとして実在する。tinyAVR-2 では機能削除されたはずでありながら、機能している挙動を示す。AVR_LA では USART 周辺機能が再設計され、USART_GUARD_nBIT 機能に置き換えられた。
USART[0.].CTRLA |= Label Type Value
USART_RS485_gm define 0x03
USART_RS485_gp define 0
USART_RS485_0_bm define 0x01
USART_RS485_1_bm define 0x02
USART_RS485_OFF_gc enum 0x00
USART_RS485_EXT_gc enum 0x01
USART_RS485_INT_gc enum 0x02

CLKCTRL_CLKSEL_OSC*_gc

  • 初出:AVR_Dx/Ex/Lx/Sx
  • 前方互換:tinyAVR-0/1/2、modernAVR-0
  • AVR_DA 以降で改められた表記の別名。相互互換。
CLKCTRL.MCLKCTRLA |= Label Type Value
CLKCTRL_CLKSEL_OSCHF_gc enum CLKCTRL_CLKSEL_OSC20M_gc
CLKCTRL_CLKSEL_OSC32K_gc enum CLKCTRL_CLKSEL_OSCULP32K_gc

  • 初出:tinyAVR-0/1/2、modernAVR-0
  • 後方互換:AVR_Dx/Ex/Lx/Sx
  • AVR_DA 以降で改められた表記の別名。相互互換。
CLKCTRL.MCLKCTRLA |= Label Type Value
CLKCTRL_CLKSEL_OSC20M_gc enum CLKCTRL_CLKSEL_OSCHF_gc
CLKCTRL_CLKSEL_OSCULP32K_gc enum CLKCTRL_CLKSEL_OSC32K_gc

CLKCTRL_PDIV_*_gc

  • 初出:tinyAVR-0/1/2、modernAVR-0、AVR_DA/DB/DD
  • 後方互換:AVR_DU/EA/EB/LA/SD
  • この項はデータシート記述と名称が一致しない問題が古くから存在した。後品種では CLKCTRL_PDIV_DIV*_gc に改められた。
CLKCTRL.MCLKCTRLB |= Label Type Value
CLKCTRL_PDIV_2X_gc enum (0x00<<1)
CLKCTRL_PDIV_4X_gc enum (0x01<<1)
CLKCTRL_PDIV_8X_gc enum (0x02<<1)
CLKCTRL_PDIV_16X_gc enum (0x03<<1)
CLKCTRL_PDIV_32X_gc enum (0x04<<1)
CLKCTRL_PDIV_64X_gc enum (0x05<<1)
CLKCTRL_PDIV_6X_gc enum (0x08<<1)
CLKCTRL_PDIV_10X_gc enum (0x09<<1)
CLKCTRL_PDIV_12X_gc enum (0x0A<<1)
CLKCTRL_PDIV_24X_gc enum (0x0B<<1)
CLKCTRL_PDIV_48X_gc enum (0x0C<<1)

  • 初出:AVR_DU/EA/EB/LA/SD
  • 前方互換:tinyAVR-0/1/2、modernAVR-0、AVR_DA/DB/DD
  • 前品種の CLKCTRL_PDIV_*X_gc から改められた。
CLKCTRL.MCLKCTRLB |= Label Type Value
CLKCTRL_PDIV_DIV2_gc enum (0x00<<1)
CLKCTRL_PDIV_DIV4_gc enum (0x01<<1)
CLKCTRL_PDIV_DIV8_gc enum (0x02<<1)
CLKCTRL_PDIV_DIV16_gc enum (0x03<<1)
CLKCTRL_PDIV_DIV32_gc enum (0x04<<1)
CLKCTRL_PDIV_DIV64_gc enum (0x05<<1)
CLKCTRL_PDIV_DIV6_gc enum (0x08<<1)
CLKCTRL_PDIV_DIV10_gc enum (0x09<<1)
CLKCTRL_PDIV_DIV12_gc enum (0x0A<<1)
CLKCTRL_PDIV_DIV24_gc enum (0x0B<<1)
CLKCTRL_PDIV_DIV48_gc enum (0x0C<<1)

RTC_CLKSEL_*_gc

  • 初出:AVR_Dx/Ex/Lx/Sx
  • 前方互換:tinyAVR-0/1/2、modernAVR-0
  • AVR_DA 以降で改められた RTC_CLKSEL_TOSC32K_gc 等表記の別名。
RTC.CLKSEL |= Label Type Value
RTC_CLKSEL_OSC32K_gc enum (0x00<<1)
RTC_CLKSEL_OSC1K_gc enum (0x01<<1)
RTC_CLKSEL_XOSC32K_gc enum (0x02<<1)

TCB_CLKSEL_DIV*_gc

  • 初出:tinyAVR-2、AVR_Dx/Ex/Lx/Sx
  • 前方互換:tinyAVR-0/1、modernAVR-0
  • tinyAVR-2 以降で改められた TCB_CLKSEL_CLKDIV1_gc 等表記の別名。
TCB[0.].CTRLA |= Label Type Value
TCB_CLKSEL_DIV1_gc enum (0x00<<1)
TCB_CLKSEL_DIV2_gc enum (0x01<<1)
TCB_CLKSEL_TCA0_gc enum (0x02<<1)

CCL_TRUTH_*_bm

  • 初出:tinyAVR-0/1/2、modernAVR-0、AVR_Dx/Ex/Lx/Sx
  • 前方互換: ATtiny417/814/816/817/1614/1616/1617/3216/3217
  • 対象品種における定義漏れ(Errata)を補完する。
CCL.TRUTH[01] |= Label Type Value Bit config Type Value
CCL_TRUTH_gm define 0xFF CCL_TRUTH_gp define 0
CCL_TRUTH_0_bm define (1<<0) CCL_TRUTH_0_bp define 0
CCL_TRUTH_1_bm define (1<<1) CCL_TRUTH_1_bp define 1
CCL_TRUTH_2_bm define (1<<2) CCL_TRUTH_2_bp define 2
CCL_TRUTH_3_bm define (1<<3) CCL_TRUTH_3_bp define 3
CCL_TRUTH_4_bm define (1<<4) CCL_TRUTH_4_bp define 4
CCL_TRUTH_5_bm define (1<<5) CCL_TRUTH_5_bp define 5
CCL_TRUTH_6_bm define (1<<6) CCL_TRUTH_6_bp define 6
CCL_TRUTH_7_bm define (1<<7) CCL_TRUTH_7_bp define 7

EVSYS_CH*

  • 初出:AVR_LA/SD
  • 前方互換:tinyAVR-2、modernAVR-0、AVR_Dx/Ex
  • 前品種の EVSYS_SWEVENTA_CH* から改められた。全品種で共通するのは EVSYS_CH3_bm まで。それ以降は使用可能な品種のみ定義される。EVSYS_CH8_bm 以降は EVSYS.SWEVENTB に使用する。
EVSYS.SWEVENTA |= Label Type Value Bit config Type Value
EVSYS_CH0_bm define 0x01 EVSYS_CH0_bp define 0
EVSYS_CH1_bm define 0x02 EVSYS_CH1_bp define 1
EVSYS_CH2_bm define 0x04 EVSYS_CH2_bp define 2
EVSYS_CH3_bm define 0x08 EVSYS_CH3_bp define 3
EVSYS_CH4_bm define 0x10 EVSYS_CH4_bp define 4
EVSYS_CH5_bm define 0x20 EVSYS_CH5_bp define 5
EVSYS_CH6_bm define 0x40 EVSYS_CH6_bp define 6
EVSYS_CH7_bm define 0x80 EVSYS_CH7_bp define 7
EVSYS.SWEVENTB |= Label Type Value Bit config Type Value
EVSYS_CH8_bm define 0x01 EVSYS_CH8_bp define 0
EVSYS_CH9_bm define 0x02 EVSYS_CH9_bp define 1

EVSYS_SWEVENTA_CH*

  • 初出:tinyAVR-2、AVR_Dx/Ex
  • 前方互換:modernAVR-0
  • 後方互換:AVR_LA/SD
  • 後品種では EVSYS_CH* に改められた。全品種で共通するのは EVSYS_SWEVENTA_CH3_gc まで。それ以上は使用可能な品種のみ定義される。
  • megaAVR-0 では EVSYS_STROBE0_EV_STROBE_CH* に対する別名。
EVSYS.SWEVENTA |= Label Type Value
EVSYS_SWEVENTA_CH0_gc enum 0x01
EVSYS_SWEVENTA_CH1_gc enum 0x02
EVSYS_SWEVENTA_CH2_gc enum 0x04
EVSYS_SWEVENTA_CH3_gc enum 0x08
EVSYS_SWEVENTA_CH4_gc enum 0x10
EVSYS_SWEVENTA_CH5_gc enum 0x20

EVSYS_CHANNEL_*_gc

  • 初出:AVR_DU/EA/EB/LA/SD
  • 前方互換:tinyAVR-2、modernAVR-0、AVR_DA/DB/DD
  • megaAVR-0 では EVSYS_GENERATOR_*_gc に対する別名。その他では EVSYS_CHANNEL*_*_gc に対する別名。定義値は同名でも品種依存。
  • 本来は enum だが define で宣言される。
  • 全てを網羅しているわけではなく、サブセットである。EVSYS_CHANNEL*_RTC_PIT_DIV*_gc、EVSYS_CHANNEL*_PORT*_PIN*_gc 等に対しては定義しない。(Collision)
EVSYS_CHANNEL[0.] |= Label Type Value
EVSYS_CHANNEL_OFF_gc define EVSYS_CHANNEL0_OFF_gc
EVSYS_CHANNEL_UPDI_SYNCH_gc define EVSYS_CHANNEL0_UPDI_SYNCH_gc
EVSYS_CHANNEL_RTC_OVF_gc define EVSYS_CHANNEL0_RTC_OVF_gc
EVSYS_CHANNEL_RTC_CMP_gc define EVSYS_CHANNEL0_RTC_CMP_gc
etc...

EVSYS_CHANNEL_RTC_EVGEN*_gc

  • 初出:AVR_DU/LA/SD
  • 前方互換:AVR_EA/EB
  • 対象品種のみ定義名が異なる。(表記揺れ別名)
  • 定義値は品種依存。本来は enum だが define で宣言される。
EVSYS_CHANNEL[0.] |= Label Type Value
EVSYS_CHANNEL_RTC_EVGEN0_gc define EVSYS_CHANNEL_RTC_PITEV0_gc
EVSYS_CHANNEL_RTC_EVGEN1_gc define EVSYS_CHANNEL_RTC_PITEV1_gc

EVSYS_CHANNEL_ADC0_RESRDY_gc

  • 初出:AVR_Dx/SD
  • 後方互換:AVR_Ex
  • 前方互換:AVR_LA
  • 対象品種のみ定義名が異なる。(表記揺れ別名)
  • 定義値は品種依存。本来は enum だが define で宣言される。
EVSYS_CHANNEL[0.] |= Label Type Value
EVSYS_CHANNEL_ADC0_RESRDY_gc define EVSYS_CHANNEL_ADC0_RES_gc

FUSE_BROWSAVE*

  • 初出:AVR_DU/SD
  • 前方互換:AVR_EB/LA
  • AVR_EB では、機能は存在するが定義宣言されていない。(Errata)
  • AVR_LA のみ、定義名がFUSE_BOOTROWSAVE*となっていて他と異なる。(表記揺れ別名)
FUSE.SYSCFG0 Bit config Type Value
FUSE_BROWSAVE define (unsigned char)_BV(1)
FUSE_BROWSAVE_bm define 0x02
FUSE_BROWSAVE_bp define 1

FUSE_*SIZE

  • 初出:AVR_Dx/Ex/Lx/Sx
  • 前方互換:tinyAVR-0/1/2、megaAVR-0
  • 定義名変更に伴う表記揺れ別名。
Label Type Value
CODESIZE define APPEND
BOOTSIZE define BOOTEND
FUSE_CODESIZE define FUSE_APPEND
FUSE_BOOTSIZE define FUSE_BOOTEND
FUSE_CODESIZE_DEFAULT define FUSE_APPEND_DEFAULT
FUSE_BOOTSIZE_DEFAULT define FUSE_BOOTEND_DEFAULT

FUSE_HVMONCFG

  • 初出:AVR_LA
  • 廃止(Deprecated Errata)
  • FUSE_HWMONCFG のタイポ。AVR-Lx.DFP 1.0.14 〜 1.3.46(2025-06-19 〜 2026-08-17)にのみ存在した。

GPR_GPR*

  • 初出:AVR_Dx/Ex/Lx/Sx
  • 前方互換:tinyAVR-0/1/2、megaAVR-0
  • 前品種では GPIOR* または GPIO*(廃止)で定義されている汎用レジスタ名称の別名。
Register Type Value
GPR_GPR0 define _SFR_MEM8(0x001C)
GPR_GPR1 define _SFR_MEM8(0x001D)
GPR_GPR2 define _SFR_MEM8(0x001E)
GPR_GPR3 define _SFR_MEM8(0x001F)

SLEEP_MODE_ADC

  • 初出:classicAVR、legendAVR、reduceAVR
  • 前方互換:tinyAVR-0/1/2、megaAVR-0、AVR_Dx/Ex/Lx/Sx
  • 非推奨:Not Recommended for New Designs(ポカよけ)
  • 対象機種では廃止済。新規設計非推奨。
Label Type Value
SLEEP_MODE_ADC define SLEEP_MODE_STANDBY

Syntaxsugar for megaAVR-0

  • 以上に加えて、megaAVR-0 では tinyAVR-2 または AVR_DA 以降から引用した多数の前方互換別名がある。
  • Macro_API の糖衣構文は、この品種のために用意されたのが始まり。
Register Type Value
EVSYS_SWEVENTA define EVSYS_STROBE
EVSYS_USERADC0START define EVSYS_USERADC0
EVSYS_USEREVSYSEVOUTA define EVSYS_USEREVOUTA
EVSYS_USEREVSYSEVOUTB define EVSYS_USEREVOUTB
EVSYS_USEREVSYSEVOUTC define EVSYS_USEREVOUTC
EVSYS_USEREVSYSEVOUTD define EVSYS_USEREVOUTD
EVSYS_USEREVSYSEVOUTE define EVSYS_USEREVOUTE
EVSYS_USEREVSYSEVOUTF define EVSYS_USEREVOUTF
EVSYS_USERUSART0IRDA define EVSYS_USERUSART0
EVSYS_USERUSART1IRDA define EVSYS_USERUSART1
EVSYS_USERUSART2IRDA define EVSYS_USERUSART2
EVSYS_USERUSART3IRDA define EVSYS_USERUSART3
EVSYS_USERTCA0CNTA define EVSYS_USERTCA0
EVSYS_USERTCB0CAPT define EVSYS_USERTCB0
EVSYS_USERTCB1CAPT define EVSYS_USERTCB1
EVSYS_USERTCB2CAPT define EVSYS_USERTCB2
EVSYS_USERTCB3CAPT define EVSYS_USERTCB3
EVSYS.Label Type Value
SWEVENTA define STROBE
USERADC0START define USERADC0
USEREVSYSEVOUTA define USEREVOUTA
USEREVSYSEVOUTB define USEREVOUTB
USEREVSYSEVOUTC define USEREVOUTC
USEREVSYSEVOUTD define USEREVOUTD
USEREVSYSEVOUTE define USEREVOUTE
USEREVSYSEVOUTF define USEREVOUTF
USERUSART0IRDA define USERUSART0
USERUSART1IRDA define USERUSART1
USERUSART2IRDA define USERUSART2
USERUSART3IRDA define USERUSART3
USERTCA0CNTA define USERTCA0
USERTCB0CAPT define USERTCB0
USERTCB1CAPT define USERTCB1
USERTCB2CAPT define USERTCB2
USERTCB3CAPT define USERTCB3
EVSYS.SWEVENTA = Label Type Value
EVSYS_SWEVENTA_CH0_gc define EVSYS_STROBE0_EV_STROBE_CH0_gc
EVSYS_SWEVENTA_CH1_gc define EVSYS_STROBE0_EV_STROBE_CH1_gc
EVSYS_SWEVENTA_CH2_gc define EVSYS_STROBE0_EV_STROBE_CH2_gc
EVSYS_SWEVENTA_CH3_gc define EVSYS_STROBE0_EV_STROBE_CH3_gc
EVSYS_SWEVENTA_CH4_gc define EVSYS_STROBE0_EV_STROBE_CH4_gc
EVSYS_SWEVENTA_CH5_gc define EVSYS_STROBE0_EV_STROBE_CH5_gc
EVSYS_SWEVENTA_CH6_gc define EVSYS_STROBE0_EV_STROBE_CH6_gc
EVSYS_SWEVENTA_CH7_gc define EVSYS_STROBE0_EV_STROBE_CH7_gc
EVSYS.SWEVENTA bit config Type Value
EVSYS_SWEVENTA_gm define 0xFF
EVSYS_SWEVENTA_gp define 0
EVSYS_SWEVENTA_0_bm define (1<<0)
EVSYS_SWEVENTA_0_bp define 0
EVSYS_SWEVENTA_1_bm define (1<<1)
EVSYS_SWEVENTA_1_bp define 1
EVSYS_SWEVENTA_2_bm define (1<<2)
EVSYS_SWEVENTA_2_bp define 2
EVSYS_SWEVENTA_3_bm define (1<<3)
EVSYS_SWEVENTA_3_bp define 3
EVSYS_SWEVENTA_4_bm define (1<<4)
EVSYS_SWEVENTA_4_bp define 4
EVSYS_SWEVENTA_5_bm define (1<<5)
EVSYS_SWEVENTA_5_bp define 5
EVSYS_SWEVENTA_6_bm define (1<<6)
EVSYS_SWEVENTA_6_bp define 6
EVSYS_SWEVENTA_7_bm define (1<<7)
EVSYS_SWEVENTA_7_bp define 7
EVSYS_USER* = Label Type Value
EVSYS_USER_OFF_gc define EVSYS_CHANNEL_OFF_gc
EVSYS_USER_CHANNEL0_gc define EVSYS_CHANNEL_CHANNEL0_gc
EVSYS_USER_CHANNEL1_gc define EVSYS_CHANNEL_CHANNEL1_gc
EVSYS_USER_CHANNEL2_gc define EVSYS_CHANNEL_CHANNEL2_gc
EVSYS_USER_CHANNEL3_gc define EVSYS_CHANNEL_CHANNEL3_gc
EVSYS_USER_CHANNEL4_gc define EVSYS_CHANNEL_CHANNEL4_gc
EVSYS_USER_CHANNEL5_gc define EVSYS_CHANNEL_CHANNEL5_gc
EVSYS_USER_CHANNEL6_gc define EVSYS_CHANNEL_CHANNEL6_gc
EVSYS_USER_CHANNEL7_gc define EVSYS_CHANNEL_CHANNEL7_gc
EVSYS_CHANNEL[0.] = Label Type Value
EVSYS_CHANNEL_UPDI_SYNCH_gc define EVSYS_GENERATOR_UPDI_gc
EVSYS_CHANNEL_RTC_OVF_gc define EVSYS_GENERATOR_RTC_OVF_gc
EVSYS_CHANNEL_RTC_CMP_gc define EVSYS_GENERATOR_RTC_CMP_gc
EVSYS_CHANNEL_CCL_LUT0_gc define EVSYS_GENERATOR_CCL_LUT0_gc
EVSYS_CHANNEL_CCL_LUT1_gc define EVSYS_GENERATOR_CCL_LUT1_gc
EVSYS_CHANNEL_CCL_LUT2_gc define EVSYS_GENERATOR_CCL_LUT2_gc
EVSYS_CHANNEL_CCL_LUT3_gc define EVSYS_GENERATOR_CCL_LUT3_gc
EVSYS_CHANNEL_AC0_OUT_gc define EVSYS_GENERATOR_AC0_OUT_gc
EVSYS_CHANNEL_ADC0_RESRDY_gc define EVSYS_GENERATOR_ADC0_RESRDY_gc
EVSYS_CHANNEL_USART0_XCK_gc define EVSYS_GENERATOR_USART0_XCK_gc
EVSYS_CHANNEL_USART1_XCK_gc define EVSYS_GENERATOR_USART1_XCK_gc
EVSYS_CHANNEL_USART2_XCK_gc define EVSYS_GENERATOR_USART2_XCK_gc
EVSYS_CHANNEL_USART3_XCK_gc define EVSYS_GENERATOR_USART3_XCK_gc
EVSYS_CHANNEL_SPI0_SCK_gc define EVSYS_GENERATOR_SPI0_SCK_gc
EVSYS_CHANNEL_TCA0_OVF_LUNF_gc define EVSYS_GENERATOR_TCA0_OVF_LUNF_gc
EVSYS_CHANNEL_TCA0_HUNF_gc define EVSYS_GENERATOR_TCA0_HUNF_gc
EVSYS_CHANNEL_TCA0_CMP0_LCMP0_gc define EVSYS_GENERATOR_TCA0_CMP0_gc
EVSYS_CHANNEL_TCA0_CMP1_LCMP1_gc define EVSYS_GENERATOR_TCA0_CMP1_gc
EVSYS_CHANNEL_TCA0_CMP2_LCMP2_gc define EVSYS_GENERATOR_TCA0_CMP2_gc
EVSYS_CHANNEL_TCB0_CAPT_gc define EVSYS_GENERATOR_TCB0_CAPT_gc
EVSYS_CHANNEL_TCB1_CAPT_gc define EVSYS_GENERATOR_TCB1_CAPT_gc
EVSYS_CHANNEL_TCB2_CAPT_gc define EVSYS_GENERATOR_TCB2_CAPT_gc
EVSYS_CHANNEL_TCB3_CAPT_gc define EVSYS_GENERATOR_TCB3_CAPT_gc
EVSYS_CHANNEL[0.] = Label Type Value
EVSYS_CHANNEL[0246]_RTC_PIT_DIV8192_gc define EVSYS_GENERATOR_RTC_PIT0_gc
EVSYS_CHANNEL[0246]_RTC_PIT_DIV4096_gc define EVSYS_GENERATOR_RTC_PIT1_gc
EVSYS_CHANNEL[0246]_RTC_PIT_DIV2048_gc define EVSYS_GENERATOR_RTC_PIT2_gc
EVSYS_CHANNEL[0246]_RTC_PIT_DIV1024_gc define EVSYS_GENERATOR_RTC_PIT3_gc
EVSYS_CHANNEL[1357]_RTC_PIT_DIV512_gc define EVSYS_GENERATOR_RTC_PIT0_gc
EVSYS_CHANNEL[1357]_RTC_PIT_DIV256_gc define EVSYS_GENERATOR_RTC_PIT1_gc
EVSYS_CHANNEL[1357]_RTC_PIT_DIV128_gc define EVSYS_GENERATOR_RTC_PIT2_gc
EVSYS_CHANNEL[1357]_RTC_PIT_DIV64_gc define EVSYS_GENERATOR_RTC_PIT3_gc
EVSYS_CHANNEL[01]_PORTA_PIN0_gc define EVSYS_GENERATOR_PORT0_PIN0_gc
EVSYS_CHANNEL[01]_PORTA_PIN1_gc define EVSYS_GENERATOR_PORT0_PIN1_gc
EVSYS_CHANNEL[01]_PORTA_PIN2_gc define EVSYS_GENERATOR_PORT0_PIN2_gc
EVSYS_CHANNEL[01]_PORTA_PIN3_gc define EVSYS_GENERATOR_PORT0_PIN3_gc
EVSYS_CHANNEL[01]_PORTA_PIN4_gc define EVSYS_GENERATOR_PORT0_PIN4_gc
EVSYS_CHANNEL[01]_PORTA_PIN5_gc define EVSYS_GENERATOR_PORT0_PIN5_gc
EVSYS_CHANNEL[01]_PORTA_PIN6_gc define EVSYS_GENERATOR_PORT0_PIN6_gc
EVSYS_CHANNEL[01]_PORTA_PIN7_gc define EVSYS_GENERATOR_PORT0_PIN7_gc
EVSYS_CHANNEL[01]_PORTB_PIN0_gc define EVSYS_GENERATOR_PORT1_PIN0_gc
EVSYS_CHANNEL[01]_PORTB_PIN1_gc define EVSYS_GENERATOR_PORT1_PIN1_gc
EVSYS_CHANNEL[01]_PORTB_PIN2_gc define EVSYS_GENERATOR_PORT1_PIN2_gc
EVSYS_CHANNEL[01]_PORTB_PIN3_gc define EVSYS_GENERATOR_PORT1_PIN3_gc
EVSYS_CHANNEL[01]_PORTB_PIN4_gc define EVSYS_GENERATOR_PORT1_PIN4_gc
EVSYS_CHANNEL[01]_PORTB_PIN5_gc define EVSYS_GENERATOR_PORT1_PIN5_gc
EVSYS_CHANNEL[01]_PORTB_PIN6_gc define EVSYS_GENERATOR_PORT1_PIN6_gc
EVSYS_CHANNEL[01]_PORTB_PIN7_gc define EVSYS_GENERATOR_PORT1_PIN7_gc
EVSYS_CHANNEL[23]_PORTC_PIN0_gc define EVSYS_GENERATOR_PORT0_PIN0_gc
EVSYS_CHANNEL[23]_PORTC_PIN1_gc define EVSYS_GENERATOR_PORT0_PIN1_gc
EVSYS_CHANNEL[23]_PORTC_PIN2_gc define EVSYS_GENERATOR_PORT0_PIN2_gc
EVSYS_CHANNEL[23]_PORTC_PIN3_gc define EVSYS_GENERATOR_PORT0_PIN3_gc
EVSYS_CHANNEL[23]_PORTC_PIN4_gc define EVSYS_GENERATOR_PORT0_PIN4_gc
EVSYS_CHANNEL[23]_PORTC_PIN5_gc define EVSYS_GENERATOR_PORT0_PIN5_gc
EVSYS_CHANNEL[23]_PORTC_PIN6_gc define EVSYS_GENERATOR_PORT0_PIN6_gc
EVSYS_CHANNEL[23]_PORTC_PIN7_gc define EVSYS_GENERATOR_PORT0_PIN7_gc
EVSYS_CHANNEL[23]_PORTD_PIN0_gc define EVSYS_GENERATOR_PORT1_PIN0_gc
EVSYS_CHANNEL[23]_PORTD_PIN1_gc define EVSYS_GENERATOR_PORT1_PIN1_gc
EVSYS_CHANNEL[23]_PORTD_PIN2_gc define EVSYS_GENERATOR_PORT1_PIN2_gc
EVSYS_CHANNEL[23]_PORTD_PIN3_gc define EVSYS_GENERATOR_PORT1_PIN3_gc
EVSYS_CHANNEL[23]_PORTD_PIN4_gc define EVSYS_GENERATOR_PORT1_PIN4_gc
EVSYS_CHANNEL[23]_PORTD_PIN5_gc define EVSYS_GENERATOR_PORT1_PIN5_gc
EVSYS_CHANNEL[23]_PORTD_PIN6_gc define EVSYS_GENERATOR_PORT1_PIN6_gc
EVSYS_CHANNEL[23]_PORTD_PIN7_gc define EVSYS_GENERATOR_PORT1_PIN7_gc
EVSYS_CHANNEL[45]_PORTE_PIN0_gc define EVSYS_GENERATOR_PORT0_PIN0_gc
EVSYS_CHANNEL[45]_PORTE_PIN1_gc define EVSYS_GENERATOR_PORT0_PIN1_gc
EVSYS_CHANNEL[45]_PORTE_PIN2_gc define EVSYS_GENERATOR_PORT0_PIN2_gc
EVSYS_CHANNEL[45]_PORTE_PIN3_gc define EVSYS_GENERATOR_PORT0_PIN3_gc
EVSYS_CHANNEL[45]_PORTE_PIN4_gc define EVSYS_GENERATOR_PORT0_PIN4_gc
EVSYS_CHANNEL[45]_PORTE_PIN5_gc define EVSYS_GENERATOR_PORT0_PIN5_gc
EVSYS_CHANNEL[45]_PORTE_PIN6_gc define EVSYS_GENERATOR_PORT0_PIN6_gc
EVSYS_CHANNEL[45]_PORTE_PIN7_gc define EVSYS_GENERATOR_PORT0_PIN7_gc
EVSYS_CHANNEL[45]_PORTF_PIN0_gc define EVSYS_GENERATOR_PORT1_PIN0_gc
EVSYS_CHANNEL[45]_PORTF_PIN1_gc define EVSYS_GENERATOR_PORT1_PIN1_gc
EVSYS_CHANNEL[45]_PORTF_PIN2_gc define EVSYS_GENERATOR_PORT1_PIN2_gc
EVSYS_CHANNEL[45]_PORTF_PIN3_gc define EVSYS_GENERATOR_PORT1_PIN3_gc
EVSYS_CHANNEL[45]_PORTF_PIN4_gc define EVSYS_GENERATOR_PORT1_PIN4_gc
EVSYS_CHANNEL[45]_PORTF_PIN5_gc define EVSYS_GENERATOR_PORT1_PIN5_gc
EVSYS_CHANNEL[45]_PORTF_PIN6_gc define EVSYS_GENERATOR_PORT1_PIN6_gc
EVSYS_CHANNEL[45]_PORTF_PIN7_gc define EVSYS_GENERATOR_PORT1_PIN7_gc
PORTMUX.CCLROUTEA |= Label Type Value
PORTMUX_LUT0_DEFAULT_gc enum (0x00<<0)
PORTMUX_LUT0_ALT1_gc enum (0x01<<0)
PORTMUX_LUT1_DEFAULT_gc enum (0x00<<1)
PORTMUX_LUT1_ALT1_gc enum (0x01<<1)
PORTMUX_LUT2_DEFAULT_gc enum (0x00<<2)
PORTMUX_LUT2_ALT1_gc enum (0x01<<2)
TCA[0.]_SINGLE_EVCTRL |= Label Type Value
TCA_SINGLE_EVACTA_CNT_POSEDGE_gc enum (0x00<<1)
TCA_SINGLE_EVACTA_CNT_ANYEDGE_gc enum (0x01<<1)
TCA_SINGLE_EVACTA_CNT_HIGHLVL_gc enum (0x02<<1)
TCA_SINGLE_EVACTA_UPDOWN_gc enum (0x03<<1)
TCA[0.]_SINGLE.EVCTRL Bit config Type Value
TCA_SINGLE_CNTAEI_bm define (1<<0)
TCA_SINGLE_CNTAEI_bp define 0
USART[0.].CTRLA |= Label Type Value
USART_RS485_DISABLE_gc enum (0x00<<0)
USART_RS485_ENABLE_gc enum (0x01<<0)

以下は 予約ビットのためのダミー値である。 megaAVR-0 の TCA は、SLEEP_MODE_STANDBY では動作しない。

TCA[0.]_SINGLE.CTRLA Bit config Type Value Comment
TCA_SINGLE_RUNSTDBY_bm define 0 dummy
TCA_SINGLE_RUNSTDBY_bp define 7
TCA[0.]_SPLIT.CTRLA Bit config Type Value Comment
TCA_SPLIT_RUNSTDBY_bm define 0 dummy
TCA_SPLIT_RUNSTDBY_bp define 7

以下は 予約ビットのためのダミー値である。 megaAVR-0 の TCB には、CASCADE 動作形態はない。

TCB[0.].CTRLA Bit config Type Value Comment
TCB_CASCADE_bm define 0 dummy
TCB_CASCADE_bp define 5

LINKS

multix.jp/てくにかるむ(休眠中)
Multix Zinnia Product SDK [*AVR]
AVR.JP(日本語訳)
AVR-LIBC(日本語訳)

Clone this wiki locally