C - U-netSURF

C - U-netSURF C - U-netSURF

www2.u.netsurf.ne.jp
from www2.u.netsurf.ne.jp More from this publisher
24.01.2015 Views

シリアルポートのプログラムで 最暷 初 に 考 えるのは 通 信 条曵 件 です。 今 回 はハイパーH8 を 動 かして いたハイパーターミナルに 表 示 するので,ハイパーターミナルと 同 じ 条曵 件 になります。 ビット/ 秒 (ボーレート) ・」・」・」・」・」・」・」・」・」・」・」38400bps(38400bit/s,38400 ボー) データビット ・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」8 ビット パリティ ・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」なし ストップビット ・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」1 ビット まずは SCI3 にこの 条曵 件 をセットします。ハードウェアマニュアルの 16-4 ページ,「16.4.2 SCI3 の 初 期曋 化 」を 参 考 にイニシャライズのフローチャートを 作 ってみました。 イニシャライズ P22 を TXD にする 送 受 信 停 止 TE,RE=0 内 部 ボーレート 選 択 CKE1=CKE2=0 「9.1.1 ポートモードレジスタ 1」( 」(9-2 ~9-3 ページ) TXD は P22 と 兼 用 ピンになっていま す。TXD として 使 うよう 指 定 します。 「16.3.6 シリアルコントロールレジス タ 3」( 」(16-6 ページ) 通 信 条曵 件 のセット 調 歩 同 期曋 データビット=8 ストップビット=1 パリティなし 内 部 φクロック BRR セット 38400bps 「 16.3.5 シ リ ア ル モ ー ド レ ジ ス タ 」 (16-5 ページ) 「16.3.8 ビットレートレジスタ」(16-8 ページ) 16-11 ページの 表 から,φ=20MHz のときの 38400bit/s にする 値 をセット する。 No 1 ビット 期曋 間 経 過 送 受 信 開 始 TE=RE=1 「16.3.6 シリアルコントロールレジス タ 3」( 」(16-6 ページ) リターン 83 TK-3687mini ユーザーズマニュアル C 言 語 版

次 に 受 信 動 作 について 考 えてみましょう。 当 然 ながら,TK-3687mini はパソコンのキーがいつ 押 されるかわかりません。もっとも, 受 信 動 作 そのものは SCI3 が 自 動 的 に 行 なってくれます。そして,デ ータを 受 信 したかどうかしらせるステータスが 用 意 されています。というわけで,マイコンはそのステー タスを 見 て, 受 信 していたらデータを 読 み 込 みます。 ハードウェアマニュアルの 16-7 ページ,「16.3.7 シリアルステータスレジスタ」をご 覧 下 さい。ビッ ト 6,‘RDRF’が 1 になったらデータを 受 信 しています。 受 信 していたらレシーブデータレジスタ ‘RDR’からデータを 読 み 込 みます。フローチャートにしてみました。 1バイト 受 信 =0 RDRF (RDR)→ )→R0L リターン あとは 送 信 動 作 です。38400bps で 1 データ 送 信 するのにどれくらい 時昷 間 がかかるでしょうか。 今 作 っているプログラムの 条曵 件 だと 約 260μs(μs:マイクロ 秒 は 1 秒 の 百 万 分 の 一 )かかります。 速 いよ うに 思 うかもしれませんが,マイコン(H8/3687)は 1 つの 命 令 を 0.1μs~1.2μs で 実 行 できることを 考 えると,ものすご~く 遅 いということがわかります。もし, 何 も 考 えずに SCI3 に 送 信 データをどんどん 書暯 き 込 むと,まだ 送 信 が 終 わっていないのに 書暯 き 込 むことになるかもしれません。それで, 送 信 デー タを 書暯 き 込 んでよいか 判 断 するステータスが 用 意 されています。マイコンはそのステータスを 見 て, 大 丈 夫 ならデータを 書暯 き 込 みます。 ハードウェアマニュアルの 16-7 ページ,「16.3.7 シリアルステータスレジスタ」をご 覧 下 さい。ビッ ト 7,‘TDRE’が 1 になったら 送 信 データを 書暯 き 込 んでも 大 丈 夫 です。トランスミットデータレジスタ ‘TDR’に 送 信 データを 書暯 き 込 みます。フローチャートにしてみました。 1バイト 送 信 =0 TDRE R0L→( →(TDR) リターン ここで 出 てきた,ステータスを 見 ながらデータを 読 み 込 んだり 書暯 き 込 んだりする 考 え 方 は,I/O を 使 うときの 基 本曓 的 な 考 え 方 です。ぜひおぼえておいてください。 84 TK-3687mini ユーザーズマニュアル C 言 語 版

シリアルポートのプログラムで 最暷 初 に 考 えるのは 通 信 条曵 件 です。 今 回 はハイパーH8 を 動 かして<br />

いたハイパーターミナルに 表 示 するので,ハイパーターミナルと 同 じ 条曵 件 になります。<br />

ビット/ 秒 (ボーレート) ・」・」・」・」・」・」・」・」・」・」・」38400bps(38400bit/s,38400 ボー)<br />

データビット ・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」8 ビット<br />

パリティ ・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」なし<br />

ストップビット ・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」・」1 ビット<br />

まずは SCI3 にこの 条曵 件 をセットします。ハードウェアマニュアルの 16-4 ページ,「16.4.2 SCI3<br />

の 初 期曋 化 」を 参 考 にイニシャライズのフローチャートを 作 ってみました。<br />

イニシャライズ<br />

P22 を TXD にする<br />

送 受 信 停 止<br />

TE,RE=0<br />

内 部 ボーレート 選 択<br />

CKE1=CKE2=0<br />

「9.1.1 ポートモードレジスタ 1」(<br />

」(9-2<br />

~9-3 ページ)<br />

TXD は P22 と 兼 用 ピンになっていま<br />

す。TXD として 使 うよう 指 定 します。<br />

「16.3.6 シリアルコントロールレジス<br />

タ 3」(<br />

」(16-6 ページ)<br />

通 信 条曵 件 のセット<br />

調 歩 同 期曋<br />

データビット=8<br />

ストップビット=1<br />

パリティなし<br />

内 部 φクロック<br />

BRR セット<br />

38400bps<br />

「 16.3.5 シ リ ア ル モ ー ド レ ジ ス タ 」<br />

(16-5 ページ)<br />

「16.3.8 ビットレートレジスタ」(16-8<br />

ページ)<br />

16-11 ページの 表 から,φ=20MHz<br />

のときの 38400bit/s にする 値 をセット<br />

する。<br />

No<br />

1 ビット 期曋<br />

間 経 過 <br />

送 受 信 開 始<br />

TE=RE=1<br />

「16.3.6 シリアルコントロールレジス<br />

タ 3」(<br />

」(16-6 ページ)<br />

リターン<br />

83<br />

TK-3687mini ユーザーズマニュアル C 言 語 版

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!