忍者ブログ

Fグループ電子工作講座

秋月電子SH7125ボードで始めるマイコン開発

秋月SH7125サンプルプログラム解説

sw1.c

4~16行目

PFC.PECRL4.WORD = 0x0000; 
PFC.PECRL3.WORD = 0x0000; 
PFC.PECRL2.WORD = 0x0000; 
PFC.PECRL1.WORD = 0x0000; 

PFC.PEIORL.WORD = 0xFF33; 

ここはIOポートの初期設定です。
どのポートを入力にしてどのボートを出力にするかを指定します。
今回はポートEの0~15番の初期化を行っています。
ポートEの0~15番はマイコンボードの左列上から8行部分に相当します。(キットの紙の取説参照)
更にベースボード上で
ポートEの0番:LED赤
ポートEの1番:LED緑
ポートEの2番:スイッチ1
に配線されています

<用語説明>

PFC:ピンファンクションコントローラ
ピンをどの様に使用するか設定する際に使用します。

PECRL1~PECRL4
ポート(P)Eコントロール(C)レジスタ(R)のL1L4 (ポートEにHはありません)
ピンをON/OFF入出力以外の特殊機能を設定する際に使用します。

PEIORL
ポート(P)E IO レジスタ(R)のL
各ピンを入力系機能として使用するか出力系機能として使用するか設定します。

WORD
16bit分まとめて設定する場合に使用します。
設定する変数によって16bitだったりそうじゃなかったりします。

<4~16行目の詳細>

PECRL1~PECRL4
全部0に設定してあります。
特殊機能は使用しません。
特殊機能を使用する会にて別途説明します。

PEIORL
幾つかを入力に設定して、幾つかを出力に設定します。
今回はポートEの16ピン分をまとめて設定しています。
Bit15~Bit0の順に並んでいます。

0が入力、1が出力に相当します。
16進数FF33を2進数に直してみます。16進数1文字で4ビット分の情報が入っています。
1111 1111 0011 0011
出出出出 出出出出 入入出出 入入出出

Bit7,6,3,2を入力に設定し、それ以外が全部出力に設定されています。
Bit0 LED赤→出力
Bit1 LED緑→出力
Bit2 SW1→入力
となっていることが分かります。

Bit2は絶対に出力に設定しないでください。
Bit2を出力した状態でSW1を操作するとマイコンボードが壊れます


17,18行目

PE.DRL.BIT.B0 = 0;               // LED Clear
PE.DRL.BIT.B1 = 0;               // LED Clear
ピンの出力をリセット

<用語説明>

PE:ポートE
DRL:データレジスタのL
BIT:1ビットづつ設定ます。
B0,B1:ビット0、ビット1

PE B0(LED赤)、PE B1(LED緑)の出力を0にします。
0で0V、1で5Vになります。

23行目

while(1){
無限ループ開始。
34行目までをループする。

24行目

if(PE.DRL.BIT.B2 == 1)
PE B2(SW1)の状態を確認して条件分岐

0Vが接続されている:0
5Vが接続されている:1(3V以上)

分岐

5Vが接続されているとき
26行目、27行目を実行

それ以外(0Vが接続されている)
31行目、32行目を実行

26行目~32行目は 17,18行目の処理を参照




tera3.c

メイン関数起動直後に変数「i」を宣言

メインループまではsw1.cと一緒
37行目~41行目
for文のループで1400000回分LED赤を点灯、緑は消灯
42行目~46行目
for文のループで1400000回分LED緑を点灯、赤は消灯

このプログラムでは他のスイッチ入力の処理を追記するのが難しい(めんどくさい)
マイコンプログラムではfor文などで待機させるのはあまり良い書き方ではありません。
動作確認用としては良いのですが、実用プログラムでは別の書き方をします。
PR

コメント

プロフィール

HN:
ぼんどF博士
性別:
男性

最新コメント