avr-libc  2.0.0
Standard C library for AVR-GCC

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

マクロ
<avr/io.h>: AVRデバイス特有のIO定義

マクロ

#define _PROTECTED_WRITE(reg, value)
 

説明詳細

#include <avr/io.h>

このヘッダファイルには、コンパイラのコマンドラインスイッチ -mmcu= で指定されたデバイスの、適切なIO定義が含まれています。これは、適切な<avr/ioXXXX.h>ファイルへ転送されることで行われ、直接ファイルをインクルードすべきではありません。全AVRデバイスで共通のレジスタ名は、<avr/io.h>に含まれる<avr/common.h>内で直接定義されていますが、詳細のほとんどはそれぞれのインクルードファイルで提供されます。

このファイルには、常につぎのファイルが含まれることに注意してください。

#include <avr/sfr_defs.h>
#include <avr/portpins.h>
#include <avr/common.h>
#include <avr/version.h>

ヘッダファイルのさらなる詳細は、<avr/sfr_defs.h>: レジスタ固有の関数を参照してください。

Atmelドキュメントで指定されているIOレジスタセットの定義と、それぞれのビットの値が含まれています。命名規則の不整合には注意してください。別のデバイスで異なる名前ですが、同じ機能が時々あります。

また、ここに記載されているように、割込み関数定義に使用できる特定の名前も含まれています。

最終的に、以下のマクロが定義されいます。

マクロ定義説明

#define _PROTECTED_WRITE (   reg,
  value 
)

Xmega設定変更保護(CCP)メカニズムによって保護されているIOレジスタregへ値をvalueを書き込みます。CCPに必要なタイミングシーケンスが実装されます。

CPUクロックを変更する例:

1 #include <avr/io.h>
2 
3 _PROTECTED_WRITE(CLK_PSCTRL, CLK_PSADIV0_bm);
4 _PROTECTED_WRITE(CLK_CTRL, CLK_SCLKSEL0_bm);