• 検索結果がありません。

SREPR00 = 1;

ドキュメント内 スライド 1 (ページ 33-55)

SMR00 = 0x0022;

SCR00 = 0x8297;

SDR00 = 0xce00;

UART0の設定フロー(3/4)

RxD端子のノイズ・フィルタの設定

エラー・フラグのクリア

入出力端子の設定 チャネル1の設定

・動作モードの設定

・通信動作の設定

・転送クロックの設定

チャネル0の出力の設定

1

return

受信

受信チャネルの動作モードの設定(1/4)

シリアル・モード・レジスタ01(SMR01)

動作クロックの選択

UART通信モードでは設定固定

クロック0=2MHz

クロック1=2MHz

クロック0=2MHz

受信チャネルの動作モードの設定(2/4)

シリアル・モード・レジスタ01(SMR01)

スタート・トリガ要因の選択

受信チャネルの動作モードの設定(3/4)

シリアル・モード・レジスタ01(SMR01)

受信データのレベル反転の設定

受信チャネルの動作モードの設定(4/4)

シリアル・モード・レジスタ01(SMR01)

割り込み要因の選択

受信チャネルの通信動作の設定(1/3)

シリアル通信動作設定レジスタ01(SCR01)

動作モードの設定

UART受信モードでは設定固定

受信チャネルの通信動作の設定(2/3)

シリアル通信動作設定レジスタ01(SCR01)

エラー割り込み信号のマスク可否の選択

受信チャネルの通信動作の設定(3/3)

シリアル通信動作設定レジスタ01(SCR01)

パリティ・ビットの設定

データ転送順序の選択

ストップ・ビットの設定

データ長の設定

偶数パリティ

LSBファースト

ストップビット = 1ビット データ長 = 8ビット

受信チャネルの転送クロックの設定

シリアル・データ・レジスタ01(SDR01)

動作クロックの分周設定

1 1 0 0 1 1 1 f

MCK

/208 f

MCK

= 2MHz

2MHz/208 ≒ 9600Hz

UART0の設定関数(3/4)

RxD端子のノイズ・フィルタの設定

エラー・フラグのクリア

入出力端子の設定 チャネル1の設定

・動作モードの設定

・通信動作の設定

・転送クロックの設定

チャネル0の出力の設定

1

return

NFEN0 |= 0x01;

SIR01 = 0x0007;

SMR01 = 0x0122;

SCR01 = 0x4697;

SDR01 = 0xce00;

SO0 |= 0x0001;

SOL0 |= 0x0000;

SOE0 |= 0x0001;

PM1 |= 0x02;

P1 |= 0x04;

PM1 &= 0xfb;

} void R_UART0_Create(void) {

ST0 |= 0x0003;

STMK0 = 1;

STIF0 = 0;

SRMK0 = 1;

SRIF0 = 0;

SREMK0 = 1;

SREIF0 = 0;

STPR10 = 1;

STPR00 = 1;

SRPR10 = 1;

SRPR00 = 1;

SREPR10 = 1;

SREPR00 = 1;

SMR00 = 0x0022;

SCR00 = 0x8297;

SDR00 = 0xce00;

UART0の設定フロー(4/4)

R_UART0_Create()

チャネルの動作停止

割り込みの禁止

チャネル0の設定

・動作モードの設定

・通信動作の設定

・転送クロックの設定 割り込み要求フラグのクリア

割り込み優先度の設定

1

RxD端子のノイズ・フィルタの設定

エラー・フラグのクリア

入出力端子の設定 チャネル1の設定

・動作モードの設定

・通信動作の設定

・転送クロックの設定

チャネル0の出力の設定

1

return

RxD端子のノイズ・フィルタの設定

ノイズ・フィルタ許可レジスタ0(NFEN0)

ノイズ・フィルタの使用可否

RxD0端子

UART受信モードでは設定固定

エラー・フラグのクリア

シリアル・フラグ・クリア・トリガ・レジスタ01(SIR01)

チャネルの各エラー・フラグのクリア

受信チャネル

(チャネル1)

チャネル0の出力の設定(1/2)

シリアル出力許可レジスタ0(SOE0)

シリアル通信動作の出力許可/停止を設定

シリアル出力レジスタ0(SO0)

シリアル出力のバッファ・レジスタ

ユニット0のチャネル0

SOE00=1のときの書き換えは無視

チャネル0の出力の設定(2/2)

シリアル出力許可レジスタ0(SOE0)

シリアル通信動作の出力許可/停止を設定

ユニット0のチャネル0

シリアル出力レベル・レジスタ0(SOL0)

データ出力レベルの反転を設定する

入出力端子の設定

ポート・レジスタ(P1)

ポートの出力ラッチの値を設定

ポート・モード・レジスタ(PM1)

ポートの入出力モードの選択

TxD端子

TxD端子 RxD端子

UART0の設定関数(4/4)

RxD端子のノイズ・フィルタの設定

エラー・フラグのクリア

入出力端子の設定 チャネル1の設定

・動作モードの設定

・通信動作の設定

・転送クロックの設定

チャネル0の出力の設定

1

return

void R_UART0_Create(void) {

ST0 |= 0x0003;

STMK0 = 1;

STIF0 = 0;

SRMK0 = 1;

SRIF0 = 0;

SREMK0 = 1;

SREIF0 = 0;

STPR10 = 1;

STPR00 = 1;

SRPR10 = 1;

SRPR00 = 1;

SREPR10 = 1;

SREPR00 = 1;

SMR00 = 0x0022;

SCR00 = 0x8297;

SDR00 = 0xce00;

NFEN0 |= 0x01;

SIR01 = 0x0007;

SMR01 = 0x0122;

SCR01 = 0x4697;

SDR01 = 0xce00;

SO0 |= 0x0001;

SOL0 |= 0x0000;

SOE0 |= 0x0001;

PM1 |= 0x02;

P1 |= 0x04;

PM1 &= 0xfb;

}

UART0の設定関数のコード生成(1/3)

UART0の設定関数のコード生成(2/3)

転送完了割り込み バッファ空き割り込み

UART0の設定関数のコード生成(3/3)

mainのフロー

main

R_UART0_Receive R_UART0_Start

HALTモードへ移行

受信割り込み禁止

受信エラー検出?

受信エラーを判定し、

対応したデータの送信

Yes

No

受信データを判定し、

対応したデータの送信

受信割り込み許可

R_UART0_Receive

オーバラン・エラー?

UART0 動作開始関数

void R_UART0_Start(void) {

STIF0 = 0;

ドキュメント内 スライド 1 (ページ 33-55)

関連したドキュメント