avr-libc
2.0.0
Standard C library for AVR-GCC
|
AVR Libc Home Page |
AVR Libc Development Pages |
||||
Main Page |
User Manual |
Library Reference |
FAQ |
Example Projects |
マクロ | |
#define | BAUD_TOL 2 |
#define | UBRR_VALUE |
#define | UBRRL_VALUE |
#define | UBRRH_VALUE |
#define | USE_2X 0 |
このヘッダファイルは、F_CPUとBAUDが定義済みで値が入っていることを必要とします。その上、BOAD_TOLマクロは、計算において許容できるボーレートの許容誤差を(パーセントで)定めます。BAUD_TOLの値は、標準で2%です。
このヘッダファイルは、AVRのUARTボーレートのプリスケーラレジスタ用のマクロを定義します。全ての計算は、Cプリプロセッサを使用しています。このヘッダファイルを読み込むことは、他のいかなる副作用も引き起こさないため、(たぶん、BOADパラメータの値が異なっていても)複数回このファイルを読み込むことができ、同じ関数内においても使用可能です。
要求されたBAUDが与えられたF_CPUで有効と仮定すると、UBRR_VALUEマクロは必要なプリスケーラの値をセットします。さらに2つのマクロは、プリスケーラの下位と上位バイトに対してそれぞれ用意されており、UBRRL_VALUEはUBRR_VALUEの下位バイトに設定され、UBRRH_VALUEは上位バイトに設定されます。さらに、USE_2Xマクロを設定できます。もし、指定された許容誤差内において、希望するBAUDレートが、UART設定においてU2Xビットを設定することで提供できるならば、この値が1に設定されます。U2Xが必要ないならば、その値は0と定義されます。
使用例:
この例では、それぞれ9600ボーと38400ボーで動くUARTを設定した2つの関数を定義しています。4MHzのCPUクロックを使うと、9600ボーは、U2Xの設定を使わずに許容誤差を満足に達成(プリスケーラ25)でき、一方で38400ボーはU2Xを設定することを必要(プリスケーラ12)とします。
#define BAUD_TOL 2 |
<util/setbaud.h>のための入出力マクロ
ボーレート許容誤差をパーセントで定義。設定されてなければ、標準値の2に設定されます。
#define UBRR_VALUE |
<util/setbaud.h>からの出力マクロ
UBRRレジスタ用の計算されたボーレートのプリスケーラー値の値になります。
#define UBRRH_VALUE |
<util/setbaud.h>からの出力マクロ
計算されたプリスケーラ値(UBRR_VALUE)の上位バイトの値になります。
#define UBRRL_VALUE |
<util/setbaud.h>からの出力マクロ
計算されたプリスケーラ値(UBRR_VALUE)の下位バイトの値になります。
#define USE_2X 0 |
<util/setbaud.h>からの出力マクロ
UART設定においてU2Xビットを設定することで希望するボーレート許容誤差を実現できるなら、値が1になります。そうでなければ0になります。