Copyright (C)SUWA TSUSHIN NETWORK.
All Rights Reserved. TOPへ戻る
スポンサードリンク

No.0035 2021.4.4




ルネサス RA4W1マイコン 初心者(5) デジタル入力、出力をしてみる





今回のソースファイル: hal_entry.c のみ (3.67 KB)


□ 1.ターゲットボードのデジタル入出力

押しボタンを使った入力回路、LEDを使った出力回路を2回路準備してデジタル入出力をします。
入力は、ターゲットボードのSW1(P402)を使用し、出力は、LED0(P106)、LED1(P404) を使用します。


EK-RA4W1 ピン配列 ポート機能一覧.xlsx










□ 2.入出力をしてみる

前回作成したウォッチドッグのプロジェクトに、デジタル入出力の処理を追加します。

・ボタンが押されている間は、LED1が点灯
・ボタンが押されている間は、LED2の点滅が止まる

という処理にします。
ソースコードは以下のようになります。




@ 入力の設定

マイコンのP402端子を入力として使用するために以下の設定をします。 ハードウェアマニュアル(R01UH0883JJ0100)の 「20. I/O ポート」が対象の仕様です。

「20.2.1 ポートコントロールレジスタ1(PCNTR1/PODR/PDR)」の PDR レジスタにてデジタル端子を「入力として使用するのか、出力として使用するのか」を指定します。マイコンの初期設定では「0:入力ポート」となっているため、この設定は省略可能です。




ソースコードでは以下のように記載します。

  R_PORT4->PDR_b.PDR2 = 0;   // 入力として使用 P402 SW1

R_PORT4 は、P4xxを指します。PDR2は、今回のポート番号(P402)に対応するレジスタを指します。PDR_bは、レジスタをビット指定で設定するときに使用します。
RAマイコンでは日常的に使う表現ですので、覚えておくと便利です。

以下のようにレジスタ単位で設定することもできます。

  R_PORT4->PDR &= 0xFFFB;   // 入力として使用 P402 SW1



A 出力の設定

出力は、P106(LED0)、P404(LED1)を使用します。
入力の設定と同じように「20.2.1 ポートコントロールレジスタ1(PCNTR1/PODR/PDR)の PDR レジスタを使用します。

該当するビットを1にすると出力、0にすると入力です。
ソースコードでは以下のように記載します。

  R_PORT1->PDR_b.PDR6 = 1;   // P106 出力として使用 P402 SW1
  R_PORT4->PDR_b.PDR4 = 1;   // P404 出力として使用 P402 SW1

以下のようにレジスタ単位で設定することもできます。

  R_PORT1->PDR |= 0x0040;   // P106 出力として使用 P402 SW1
  R_PORT4->PDR |= 0x0010;   // P404 出力として使用 P402 SW1



B 入力の読み込み

35行目、44行目で、入力状態の判定を行っています。
デジタル入力の Hi:1、Lo:0 を確認するために使うのが「20.2.2 ポートコントロールレジスタ2(PCNTR2/EIDR/PIDR)」の PIDR レジスタです。




ターゲットボードのSW1は、ボタンが押されたときにLo:0 、ボタンが離されているときにHi:1となるため、 Lo:0 でボタンが押されていると判断できます。
ソースコードでは以下のように記載します。設定と同じように、レジスタ単位で一度に読み込むことも可能です。

  if (R_PORT4->PIDR_b.PIDR2 == 0){   // SW1:ON



C 出力のON/OFF

36行目、38行目、46行目で、ポート出力の ON/OFF を行っています。
「20.2.1 ポートコントロールレジスタ1(PCNTR1/PODR/PDR)の PODR レジスタを使用します。
このボードのLEDは、 ON:0、OFF:1 となります。




ソースコードでは以下のように記載します。設定と同じように、レジスタ単位で一度に書き込むことも可能です。

  R_PORT1->PODR_b.PODR6 = 0;   // LED0: ON

  R_PORT4->PODR_b.PODR4 = 1;   // LED1: OFF




スポンサードリンク

TOPへ戻る


ご利用条件
 Copyright (C)SUWA TSUSHIN NETWORK. All Rights Reserved.