Alpha Rapid Prototyping Library

αRPL
User Manual
4.1

版

https://www.apnet.co.jp©2023 Alpha Project Co., Ltd.

Alpha Rapid Prototyping Library

目
1.

2.

3.

4.

5.

概要
αRPL の概要.......................................................... 1

1.2

特長 .................................................................. 1

1.3

プログラムの構造 ...................................................... 3

1.4

プログラミング ........................................................ 4

構成

5

2.1

ファイル構成（RX） ................................................... 5

2.2

ファイル構成（RZ） ................................................... 6

2.3

対応ボード一覧 ........................................................ 7

ライブラリ組み込み手順（RX 編）

83.1

使用環境 .............................................................. 8

3.2

使用手順概要 .......................................................... 9

3.3

環境構築 ............................................................. 11

3.4

組み込み手順 ......................................................... 12

ライブラリ組み込み手順（RZ 編）

19

4.1

使用環境 ............................................................. 19

4.2

使用手順概要 ......................................................... 20

4.3

環境構築 ............................................................. 22

4.4

組み込み手順 ......................................................... 23

機能35
ライブラリ機能一覧 ................................................... 35

API 一覧
6.1

7.

1

1.1

5.1

6.

次

37

関数一覧 ............................................................. 37

ライセンス

86

7.1

使用ライセンス ....................................................... 86

7.2

著作権 ............................................................... 86

7.3

保証 ................................................................. 86

αRPL ユーザマニュアル©2023 Alpha Project Co., Ltd.

https://www.apnet.co.jp

Alpha Rapid Prototyping Library

1. 概要
1.1 αRPL の概要
αRPL（αRapid Prototyping Library）は、弊社 CPU ボードのファームウェア開発を容易に行うことを目的として作られた、
C++言語を用いたソフトウェアライブラリです。これまでファームウェア開発は、膨大なページからなるマニュアルを、多くの時間をかけ理解し、プログラミングし、デバッグを繰り返す大変な作業でした。αRPL は直感的にわかりやすい API を備えており、マイコンの知識が少ない方でも簡単にプログラミングを行うことができます。また、多くのサンプルコードも用意されているため、すぐに動作を確認することができます。
αRPL を快適にご利用いただくために、まずは「αRPL User Manual」 (以下、本マニュアル)をお読みいただき、続いて、
CPU ボードに依存する項目に関して「αRPL 対応ボード使用手順」をお読みいただくことをお勧めします。

1.2 特長

フルスクラッチ(ゼロからの開発)からのプログラミングは不要

コーディングにかかる時間を短縮できる

デバッグ作業にかかる時間を短縮できるマニュアルを隅々まで見る必要なし

直感的にプログラミングが行える

マイコンの知識が少ない方でも簡単にプログラミングが行える

多くのサンプルコードにより動作をすぐに確認できる

従来のファームウェア開発とαRPL を使用したファームウェア開発の比較を以下に示します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

1
https://www.apnet.co.jp

Alpha Rapid Prototyping Library

繰り返し
デバッグ

ツール
インストールフルスクラッチから
プログラミング

デバッグ

膨大な資料からレジスタ設定などを理解する必要がある

マニュアル
Fig 1.2-1

直感的で使いやすい！

従来のファームウェア開発

αRPL
デバッグは
最小限！

ツール
インストールαRPLを使用した
プログラミング

デバッグ

必要な時に参照する程度
レジスタ設定などの
理解は不要

マニュアル
Fig 1.2-2

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

αRPL によるファームウェア開発

2
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
1.3 プログラムの構造
従来のファームウェア開発では、CPU の初期設定、各デバイスドライバの作成、メイン処理の記述まで全て自分で実装しなければならず、時間がかかるとても大変な作業でした。αRPL では、CPU の初期設定と各デバイスドライバは既に実装されているため、ユーザはメイン処理を実装するだけとなります。従来のファームウェア開発とαRPL を使用したファームウェア開発のプログラムの構造の比較を以下に示します。なお、「初期設定」に関しては CPU ボードによって異なりますので、「αRPL 対応ボード使用手順」の「CPU 初期設定」を参照して下さい。

初期設定

メイン処理
初期設定からメイン処理、各デバイスドライバまで全て実装しなければならない…

シリアル
I2C
SPI

…
Fig 1.3-1

従来のファームウェア開発

プログラム構造

初期設定
初期設定不要！
各デバイスドライバの実装不要！

αRPL

メイン処理
初期設定

シリアル

シリアル

I2C

I2C

SPI

SPI

…

…
Fig 1.3-2

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

αRPL によるファームウェア開発

プログラム構造3
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
1.4 プログラミング
従来のファームウェア開発とαRPL を使用したファームウェア開発のプログラミングで、コーディング上でどのような違いがあるか、シリアル通信を例に比較します。

シリアル通信を行うために書いていた
膨大な初期化コードがたったの数行に！
デフォルトの設定値を使う場合は 1 行で OK！

Fig 1.4-1

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

従来の開発とαRPL での開発の違い（シリアル初期化ルーチンの場合）

4
https://www.apnet.co.jp

Alpha Rapid Prototyping Library2.

構成

2.1 ファイル構成（RX）
RX マイコン搭載の弊社 CPU ボードにおいて、αRPL は以下のように構成されています。
rootlib
includeapi

αRPL ライブラリヘッダファイル ・・・①

hal

ハードウェア依存ヘッダファイル(ドライバ関連) ・・・②

targetハードウェア依存ヘッダファイル(システム関連) ・・・③

lib

ライブラリファイル格納フォルダ ・・・④

src

アセンブリファイル格納フォルダ ・・・⑤

main.cpp

メインルーチン ・・・⑥

Fig 2.1-1

ライブラリファイル構成① root/lib/include/api にはαRPL のライブラリのヘッダファイルが格納されています。
ユーザは、これらのファイルに定義された関数を利用することで、αRPL を利用することができます。
② root/lib/include/hal には、ハードウェア依存の関数のヘッダファイルが格納されています。
ユーザが、これらのファイルを意識する必要はありません。
③ root/lib/include/target には、ハードウェア依存のシステムに関するヘッダファイルが格納されています。
ユーザが、これらのファイルを意識する必要はありません。
④ root/lib/lib には、αRPL のライブラリファイルが格納されています。
ライブラリファイルのファイル名はボードによって異なります。
ユーザはこのライブラリファイルを利用することでαRPL を利用することができます。
⑤ root/lib/src には、αRPL のアセンブリファイルが格納されています。
ユーザが、このファイルを意識する必要はありません。
⑥ root/src/main.cpp は、プロジェクトのメインルーチンです。
ユーザは、このファイルを編集することでαRPL を利用した開発ができます。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

5
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
2.2 ファイル構成（RZ）
RZ マイコン搭載の弊社 CPU ボードにおいて、αRPL は以下のように構成されています。
rootlib
includeapi

αRPL ライブラリヘッダファイル ・・・①

hal

ハードウェア依存ヘッダファイル(ドライバ関連) ・・・②

targetハードウェア依存ヘッダファイル(システム関連) ・・・③

lib

ライブラリファイル格納フォルダ ・・・④

scriptリンカスクリプトファイル格納フォルダ ・・・⑤

src

アセンブリファイル格納フォルダ ・・・⑥

main.cpp

メインルーチン ・・・⑦

Fig 2.2-1

ライブラリファイル構成① root/lib/include/api にはαRPL のライブラリのヘッダファイルが格納されています。
ユーザは、これらのファイルに定義された関数を利用することで、αRPL を利用することができます。
② root/lib/include/hal には、ハードウェア依存の関数のヘッダファイルが格納されています。
ユーザが、これらのファイルを意識する必要はありません。
③ root/lib/include/target には、ハードウェア依存のシステムに関するヘッダファイルが格納されています。
ユーザが、これらのファイルを意識する必要はありません。
④ root/lib/lib には、αRPL のライブラリファイルが格納されています。
ライブラリファイルのファイル名はボードによって異なります。
ユーザはこのライブラリファイルを利用することでαRPL を利用することができます。
⑤ root/lib/script には、αRPL のリンカスクリプトファイルが格納されています。
ユーザが、このファイルを意識する必要はありません。
⑥ root/lib/src には、αRPL のアセンブリファイルが格納されています。
ユーザが、このファイルを意識する必要はありません。
⑦ root/src/main.cpp は、プロジェクトのメインルーチンです。
ユーザは、このファイルを編集することでαRPL を利用した開発ができます。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

6
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
2.3 対応ボード一覧
αRPL に対応している弊社 CPU ボードを、以下の表に示します。

対応ボード

CPU

AP-RX63N-0A

RX63N(R5F563NEDDFB)

AP-RX64M-0A

RX64M(R5F564MLDDFC)

AP-RX71M-0A

RX71M(R5F571MLDDFC)

AP-RZA-1A

RZ/A1H(R7S721000VLFP)

Table 2.3-1 αRPL 対応ボード※.対応ボードは 2021 年 1 月現在のものです。
※.RX、RZ のボードは随時対応予定です。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

7
https://www.apnet.co.jp

Alpha Rapid Prototyping Library3.

ライブラリ組み込み手順（RX 編）

3.1 使用環境
ユーザはご使用になる RX マイコン搭載の弊社 CPU ボード(以下、ターゲットボード)にαRPL を組み込み、ファームウェア開発を行うために必要となる使用環境を用意していただく必要があります。
以下にターゲットボードを AP-RX63N-0A としたときの使用環境を一例として記載しました。
実際の各ターゲットボードの開発環境はそれぞれの「αRPL 対応ボード使用手順」を参照していただき、ご確認ください。

名称

バージョン

Windows 10/11

用途

備考

OS

64 ビット OS

統合開発環境 CS+

3.00.00

統合開発環境旧 CubeSuite+

RX ファミリ用 C/C++コンパ

2.02.00

コンパイル、ビルド評価版使用可能イラパッケージ
E1 エミュレータ

デバッグ、FlashROM 書き込み

/E2 エミュレータ Lite
Renesas Flash Programmer

2.05.00

PC-USB-04

FlashROM 書き込み評価版使用可能マイコンのシリアルポートを

弊社製品

USB ポートに変換

Table 3.1-1

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

使用環境(AP-RX63N-0A)

8
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
3.2 使用手順概要
ターゲットボードにαRPL を組み込み、ファームウェア開発を行うために必要となる使用手順を示します。
開発には E1 エミュレータ、もしくは、E2 エミュレータ Lite を使用してターゲットボードにプログラムをダウンロードする方法(1)と、Renesas Flash Programmer を使用してシリアル経由でプログラムをダウンロードする方法(2)などターゲットボー
ドにより複数あります。
各ターゲットボードにプログラムをダウンロードする方法の詳細はそれぞれの「αRPL 対応ボード使用手順」を参照していた
だき、ご確認ください。

(1) E1 エミュレータ/E2 エミュレータ Lite を使用する場合

CS+

αRPL

②

③

⑥

①

⑥

⑦
Fig 3.2-1⑤④

使用手順(E1 エミュレータ/E2 エミュレータ Lite 使用)(2) Renesas Flash Programmer を使用する場合

CS+

αRPL

②

③

⑥

①

⑥

⑦

Fig 3.2-2⑤④

使用手順(Renesas Flash Programmer 使用)①

開発に使用する PC を用意します。

②

統合開発環境 CS+を、PC にインストールします。

③

CS+のプロジェクトを作成し、αRPL を組み込みます。

④

ターゲットボードを用意します。

⑤

E1 エミュレータ/E2 エミュレータ Lite、あるいは PC-USB-04 を用意します。

⑥

PC とターゲットボードを E1 エミュレータ/E2 エミュレータ Lite、あるいは PC-USB-04 を介して接続します。

⑦

CS+を使用して開発を行います。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

9https://www.apnet.co.jp

Alpha Rapid Prototyping Library

3.2.1 統合開発環境 CS＋ の入手とインストール
以下に、ルネサス エレクトロニクスの統合開発環境 CS＋（RX ファミリ用）無償評価版の入手方法を示します。
既に CS＋の正規版をご購入、インストール済みの方は以下の手順を行う必要はありません。

①

ルネサス エレクトロニクスの WEB サイト（https://www.renesas.com/jp/ja）にアクセスを行います。

②

ルネサス エレクトロニクスの WEB サイト上で、「開発環境」→「ダウンロード」を選択し、ダウンロード
一覧の中から、「【無償評価版】 CS＋forCC VX.XX.XX（一括ダウンロード版） ※」を選択します。
※.XX.XX.XX の部分は、その時点でのバージョンにより異なります。

③

上記内容が選択できましたら、ダウンロードを行います。なお、ダウンロードの際は、ルネサス エレクトロニクスのユーザ登録（MY Renesas）が必要な場合があります。登録を行っていない方は、新規ユーザ登録を行った後、登録情報を使用し、ダウンロードを行って下さい。

④

ダウンロードが完了したら、ダウンロードしたファイルを実行し、開発環境のインストールを行います。

⑤

インストールが完了したら、CS＋が起動できる事を確認します。起動が出来ましたら、「ヘルプ」→「バージョン情報」
を選択し、CS＋のバージョン情報を確認します。バージョン情報の表示内に、以下のように、「RX ビルド・ツール CC-RX 用プラグイン」が含まれている事を確認して下さい。

3.2.2 Renesas Flash Programmer の入手とインストール①

ルネサス エレクトロニクスの WEB サイト（https://www.renesas.com/jp/ja）にアクセスを行います。

②

ルネサス エレクトロニクスの WEB サイト上で、「開発環境」→「ダウンロード」を選択し、ダウンロード
一覧の中から「【無償評価版】Renesas Flash Programmer VXX.XX.XX」を選択します。
※.XX.XX.XX の部分はその時点でのバージョンにより異なります。

③

上記内容が選択できましたら、ダウンロードを行います。なお、ダウンロードの際はルネサス エレクトロニクスのユーザ登録（MY Renesas）が必要な場合があります。
登録を行っていない方は新規ユーザ登録を行った後、登録情報を使用してダウンロードを行って下さい。

④

ダウンロードが完了したら、ダウンロードしたファイルを実行し開発環境のインストールを行います。

⑤

インストールが完了したら、Renesas Flash Programmer が起動できる事を確認します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

10
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
3.3 環境構築
αRPL を動作させる際には、以下の手順に従い環境を構築して下さい。
なお、構築する環境の一覧につきましては「3.1 使用環境」を参照して下さい。

3.3.1 αRPL の入手①

弊社の WEB サイト上の各ターゲットボードの製品情報ページ「https://www.apnet.co.jp/product/rx/ap-rx63n-0a.html」にアクセスを行います。
※.下線部分は、ターゲットボードによって異なりますので、使用するターゲットボードのページを参照して下さい。

②

ダウンロードページからαRPL ダウンロードファイルをダウンロードします。

③

ダウンロード後、ファイルを展開し以下の内容物を確認して下さい。

フォルダ/ファイル名

内容

備考

includeヘッダファイル格納フォルダ「api」「hal」「target」の 3 種類のフォルダ
を格納

lib

ライブラリ格納フォルダ

ライブラリファイル「alphalib_xxxx.lib」
を格納

src

ソースファイル格納フォルダ

アセンブリファイル「xxxx.src」
を格納

main.cpp

メインルーチンサンプルファイル

メインルーチンsample

動作サンプル格納フォルダ

main.cpp と差し替えるだけで簡単に使用可能

Table 3.3-1 αRPL ダウンロードファイル内容

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

11https://www.apnet.co.jp

Alpha Rapid Prototyping Library
3.4 組み込み手順「3.3 環境構築」の手順に倣って環境の準備が完了しましたら、以下の手順に従い、αRPL の組み込みを行います。

① CS＋を起動し、スタートメニューから「新しいプロジェクトを作成する」を選択します。

② プロジェクト作成ウィンドウが表示されますので、以下のように使用するマイクロコントローラを「RX」に設定し、プロジェクトの種類を「空のアプリケーション（CC-RX）」に設定します。
以下の例では「R5F563NEDxFB」を選択していますが、これは AP-RX63N-0A の場合です。
その後、プロジェクト名や作成場所は任意の情報を入力し、「作成」ボタンを押して、プロジェクトの作成を行います。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

12https://www.apnet.co.jp

Alpha Rapid Prototyping Library③ Windows のエクスプローラを使用し、作成した＜CS＋プロジェクト名＞フォルダ内に「lib」フォルダを作成した後、「lib」フォルダ内にαRPL の各フォルダを格納します。

αRPL 用フォルダ概要「include」：ライブラリ動作用インクルードファイル「lib」：ライブラリファイル「src」：ライブラリ動作用ソースファイル④ Windows のエクスプローラを使用し、作成した CS＋プロジェクトのプロジェクト・ツリー・パネルに「lib」
フォルダをドラッグ＆ドロップします。
ドロップすると「フォルダとファイルの追加」のダイアログが表示されます。「検索するサブフォルダの階層数」に「3」を入力し、「OK」ボタンを押して下さい。
αRPL のデータがプロジェクトに追加されます。

この範囲に
ドロップ

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

13
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑤ CS＋のプロジェクト・ツリー・パネルで、「CC-RX（ビルドツール）」を選択して下さい。
プロパティ・パネルが表示されますので、「コンパイルオプション」タブを選択します。
表示される設定の中から、以下の設定を変更・確認して下さい。
・「C ソース・ファイルの言語」を「C99（-lang=c99）」に変更します。
・「追加のインクルード・パス」を選択し、「パス編集」ダイアログで、以下のパスが追加されている事を確認します。
lib\include\targetlib\include\hal
lib\include\api

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

14
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑥ 引き続き、プロパティ・パネルで、「リンク・オプション」タブを選択します。
表示される設定の中から、以下の設定を変更して下さい。
・「ROM から RAM へマップするセクション」を選択し、「テキスト編集」ダイアログで、以下のセクション指定を行います。
「D = R」「D_1 = R_1」
「D_2 = R_2」

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

15
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑦ 引き続き、プロパティ・パネルで、「ライブラリ・ジェネレート・オプション」タブを選択します。
表示される設定の中から、以下の設定を変更して下さい。
・「ライブラリ構成」を「C99（-lang=c99）」に変更します。
・「構築対象のライブラリ」を「すべて有効（-head=all）」に変更します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

16
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑧ 上記設定が完了したら、αRPL 動作用のメインソースファイル「main.cpp」をプロジェクトに追加します。
「main.cpp」ファイルはαRPL のダウンロードファイル内にサンプルファイルが含まれておりますので、Windowsのエクスプローラを使用し、作成した＜CS＋プロジェクト名＞フォルダ内にサンプルファイルをコピーします。
その後、Windows のエクスプローラを使用し、作成した CS＋プロジェクトのプロジェクト・ツリー・パネルに「main.cpp」ファイルをドラッグ＆ドロップします。

この範囲に
この範囲に
ドロップ
ドロップ

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

17https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑨ ファイルを追加した後はメニューの「ビルド」→「リビルド・プロジェクト」を選択し、プロジェクトのリビルドを行い、正常にビルドが行える事を確認して下さい。
正常ビルドが確認できましたらαRPL の組み込みは完了です。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

18
https://www.apnet.co.jp

Alpha Rapid Prototyping Library

4.

ライブラリ組み込み手順（RZ 編）

4.1 使用環境
ユーザはご使用になる RZ マイコン搭載の弊社 CPU ボード(以下、ターゲットボード)にαRPL を組み込み、ファームウェア開発を行うために必要となる使用環境を用意していただく必要があります。
以下にターゲットボードを AP-RZA-1A としたときの使用環境を一例として記載しました。
実際の各ターゲットボードの開発環境はそれぞれの「αRPL 対応ボード使用手順」を参照していただき、ご確認ください。

名称

バージョン

Windows 10/11
2

統合開発環境 e studio

4.0.1.007

用途

備考

OS

64 ビット OS

統合開発環境ルネサス エレクトロニクス
株式会社製品KPIT GNUARM-NONE-EABI

14.02

コンパイル、ビルド

Toolchain
J-LinkFlashWriter EX / RZ Limited

1.0

デバッグ

SEGGER 社製品

FlashROM 書き込み

弊社サイトより入手可能

EditionTable 4.1-1

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

使用環境(AP-RZA-1A)

19
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
4.2 使用手順概要
ターゲットボードにαRPL を組み込み、ファームウェア開発を行うために必要となる使用手順を示します。
開発には J-Link を使用してターゲットボードの内蔵 RAM にプログラムをダウンロードする方法(1)と、弊社が提供している書き込みツールである Flash Writer EX/RZ を利用してボード上のシリアル FlashROM にプログラムをダウンロードする方法(2)などターゲットボードにより複数あります。
各ターゲットボードにプログラムをダウンロードする方法の詳細はそれぞれの「αRPL 対応ボード使用手順」を参照していた
だき、ご確認ください。

(1) J-Link を使用する場合

e2 studio

αRPL
③

②

J-Link
⑥

⑥
①

⑦

⑤

Fig 4.2-1

使用手順(J-Link 使用)①

開発に使用する PC を用意します。

②

統合開発環境 e2 studio を、PC にインストールします。

③

e2 studio のプロジェクトを作成し、αRPL を組み込みます。

④

ターゲットボードを用意します。

⑤

J-Link を用意します。

⑥

PC とターゲットボードを J-Link を介して接続します。

⑦

e2 studio を使用して開発を行います。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

④

20
https://www.apnet.co.jp

Alpha Rapid Prototyping Library(2) Flash Writer EX/RZ を使用する場合

FW EX/RZ
②

αRPL
③

⑨
microSD
⑦

⑥
①

⑧

④

Fig 4.2-2⑤

使用手順(Flash Writer EX/RZ 使用)①

開発に使用する PC を用意します。

②

Flash Writer EX/RZ を、PC にインストールします。

③

e2 studio のプロジェクトを作成し、αRPL を組み込みます。

④

ターゲットボードを用意します。

⑤

シリアル FlashROM 書き込み用の microSD カードを用意します。

⑥

PC とターゲットボードを USB ケーブルを介して接続します。

⑦

ターゲットボードの microSD カードスロットに microSD カードを挿入します。

⑧

e2 studio を使用して開発を行います。

⑨

生成されたオブジェクトファイルを Flash Writer EX/RZ を使用してターゲットボードに書き込みます。

「αRPL 対応ボード使用手順」を参照して、使用手順を確認して下さい。

4.2.1

GNU コンパイラの入手とインストール「AN1609 GNU コンパイラ 導入ガイド」を参照して、GNU コンパイラの入手およびインストールを行って下さい。

4.2.2

統合開発環境 e2 studio の入手とインストール「AN1609 GNU コンパイラ 導入ガイド」を参照して、ルネサス エレクトロニクスの統合開発環境 e2 studio 無償評価版の入手およびインストールを行って下さい。既に e2 studio の正規版をご購入、インストール済みの方は必要ありません。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

21
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
4.3 環境構築
αRPL を動作させる際には、以下の手順に従い環境を構築して下さい。
なお、構築する環境の一覧につきましては「4.1 使用環境」を参照して下さい。

4.3.1 αRPL の入手①

弊社の WEB サイト上の各ターゲットボードの製品情報ページ「https://www.apnet.co.jp/product/rza/ap-rza-1a.html」にアクセスを行います。
※.下線部分は、ターゲットボードによって異なりますので、使用するターゲットボードのページを参照して下さい。

②

ダウンロードページからαRPL ダウンロードファイルをダウンロードします。

③

ダウンロード後、ファイルを展開し以下の内容物を確認して下さい。

フォルダ/ファイル名

内容

備考

includeヘッダファイル格納フォルダ「api」「hal」「target」の 3 種類のフォルダ
を格納

lib

ライブラリ格納フォルダ

ライブラリファイル「alphalib_xxx.a」
を格納

scriptリンカスクリプト格納フォルダ

リンカスクリプトファイル「ap_xxx_xx_ram.x」、「ap_xxx_xx_rom.x」
を格納

src

ソースファイル格納フォルダ

アセンブリファイル「startup.s」、「vectors.s」、「vectors_mirror.s」
を格納

main.cpp

メインルーチンサンプルファイル

メインルーチンsample

動作サンプル格納フォルダ

main.cpp と差し替えるだけで簡単に使用可能

Table 4.3-1 αRPL ダウンロードファイル内容

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

22
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
4.4 組み込み手順「4.3 環境構築」の手順に倣って環境の準備が完了しましたら、以下の手順に従い、αRPL の組み込みを行います。

4.4.1 e2 studio にαRPL を組み込む①

e2 studio を起動し、任意の場所にワークスペースを作成して下さい。
以下では「C:\WorkspaceForE2\rpl_test」に設定しています。

②「ファイル」→「新規」→「C++ Project」を選択して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

23
https://www.apnet.co.jp

Alpha Rapid Prototyping Library③

任意のプロジェクト名を入力して下さい。プロジェクトの種類は「Executable(Renesas)」の「Sample Project」を選択して下さい。ツールチェインは「KPIT GNUARM-NONE-EABI Toolchain」を選択して下さい。
選択できたら「次へ」ボタンを押して下さい。以下ではプロジェクト名は「arpl_test」としています。

④

Toolchain Version がインストールした GNU ツールチェインのバージョンと一致していることを確認して下さい。
Debug Hardware は「J-Link ARM」
、Endian は「Little-endian」、Select Target は「R7S72100」に設定して下さい。
Select Configuration From List below は「ハードウェア・デバッグ」のみを選択し、「次へ」ボタンを押して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

24
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑤

Code Generator Settings 画面が表示されたら「次へ」ボタンを押して下さい。

⑥

Select Additional CPU Options 画面が表示されたら「次へ」ボタンを押して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

25
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑦

Select Library Source は「Newlib」を、Select Library Type は「Pre-Built」を選択して下さい。
選択できたら「終了」ボタンを押して下さい。

⑧

プロジェクトの要約が表示されるので「OK」ボタンを押して下さい。

⑨

Windows のエクスプローラを使用し、作成したワークスペースフォルダ内の「src」フォルダを削除して下さい。
続いて、ワークスペースフォルダ内にダウンロードしたαRPL の「lib」フォルダと「main.cpp」をコピーして下さい。
以上で e2 studio へのαRPL の組み込みは完了です。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

26
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
4.4.2 内蔵 RAM 動作用ビルド構成の作成①「プロジェクト」→「プロパティ」を選択して下さい。

②「C/C++ ビルド」→「設定」を選択して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

27
https://www.apnet.co.jp

Alpha Rapid Prototyping Library③「Compiler」→「ソース」を選択して下さい。インクルード・ファイル・ディレクトリーにαRPL のヘッダファイルのパスを設定します。右上の＋のアイコンをクリックし、αRPL 内容物の「lib\include\api」、「lib\include\hal」、「lib\include\target」の 3 つのフォルダのパスを設定して下さい。
右下の×のアイコンをクリックし、元々ある Macro Defines の「CPPAPP」を削除して下さい。

④「Assembler」→「ソース」を選択して下さい。元々あるシンボル定義の「CPPAPP」を削除して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

28
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑤「Linker」→「入力」を選択して下さい。追加入力ファイルにαRPL のライブラリファイルのパスを設定します。
右上の＋のアイコンをクリックし、αRPL 内容物の「lib\lib\alphalib_xxx.a」のパスを設定して下さい。

⑥「Linker」→「その他」を選択して下さい。右上の×のアイコンをクリックし、元々あるユーザ定義オプションの「-e_PowerON_Reset」を削除して下さい。
コマンド・ファイルの上書きを「External Linker scipt(-T)」に変更し、αRPL 内容物の「lib\script\ap_xxx_xx_ram.x」のパスを設定して下さい。設定が完了したら「OK」ボタンを押して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

29
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑦「プロジェクト」→「クリーン」を選択し、ビルドが成功することを確認して下さい。

HardwareDebug 構成でビルドを行うと、\HardwareDebug ワークフォルダに内蔵 RAM 動作用のオブジェクトファイルが生成されます。生成されたファイルを使用し、J-Link によるデバッグが可能です。
詳細につきましては「αRPL 対応ボード使用手順」を参照して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

30
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
4.4.3 シリアル FlashROM 動作用ビルド構成の作成①「4.4.2 内蔵 RAM 動作用ビルド構成の作成」を参照し、内蔵 RAM 動作用ビルド構成「HardwareDebug」
を作成して下さい。

②「プロジェクト」→「ビルド構成」→「管理」を選択して下さい。

③「新規」ボタンを押し、名前を「SerialFlash」として新規にビルド構成を作成して下さい。
なお設定のコピー元は「既存の構成」とし、「HardwareDebug」を選択して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

31
https://www.apnet.co.jp

Alpha Rapid Prototyping Library④「プロジェクト」→「プロパティ」を選択して下さい。

⑤「C/C++ ビルド」→「設定」を選択して下さい。構成を「SerialFlash」に変更して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

32
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑥「Assembler」→「ソース」を選択して下さい。右下の＋のアイコンをクリックし、
シンボル定義に「SERIAL_FLASH_BOOT=1」を追加して下さい。

⑦「Linker」→「その他」を選択して下さい。ファイルのパスをαRPL 内容物の「lib\script\ap_xxx_xx_rom.x」に変更して下さい。設定が完了したら「OK」ボタンを押して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

33
https://www.apnet.co.jp

Alpha Rapid Prototyping Library⑧「SerialFlash」構成に変更し、「プロジェクト」→「クリーン」を選択し、ビルドが成功することを確認して下さい。

SerialFlash 構成でビルドを行うと、\SerialFlash ワークフォルダ内にシリアル FlashROM 動作用のオブジェクトファイルが生成されます。生成されたファイルを使用し、Flash Writer EX/RZ により
シリアル FlashROM への書き込みが可能です。
詳細につきましては「αRPL 対応ボード使用手順」を参照して下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

34
https://www.apnet.co.jp

Alpha Rapid Prototyping Library

5. 機能
5.1 ライブラリ機能一覧
αRPL は C++言語を使用して実装されています。C++言語にはクラスという概念があり、クラスは C 言語の構造体の機能を拡張したものです。クラスはデータ構造とデータを扱う関数を持っています。αRPL の各ライブラリ機能はクラスを用いて実装されています。αRPL で提供されているライブラリ機能と、それに対応するクラスを以下に示します。

ライブラリ機能

クラス

機能概要

ページ

デジタル入力

DigitalIn

任意のピンをデジタル入力として使用します。

P38

デジタル出力

DigitalOut

任意のピンをデジタル出力として使用します。

P40

デジタル入出力

DigitalInOut

任意のピンをデジタル入力またはデジタル出力として使用します。

P42(デジタル入力/出力どちらで使用するか選択することができます)
バス入力

BusIn

任意の複数ピン（最大 16 ピン）をまとめてデジタル入力として使用し

P45

ます。
バス出力

BusOut任意の複数ピン（最大 16 ピン）をまとめてデジタル出力として使用し

P47

ます。
バス入出力

BusInOut

任意のピンをバス入力またはバス出力として使用します。

P49(バス入力/出力どちらで使用するか選択することができます)
ポート入力

PortInCPU のポートシンボル（※）単位でまとめてデジタル入力として使用し

P51

ます。
ポート出力

PortOut

CPU のポートシンボル（※）単位でまとめてデジタル出力として使用しポート入出力PortInOut

P54

ます。
任意のピンをポート入力またはポート出力として使用します。

P57(ポート入力/出力どちらで使用するか選択することができます)

Table 5.1-1

ライブラリ機能一覧と対応クラス 1※. PORT0、PORTA 等、入出力ポートのひとまとまりを示します。
PORT0 の場合、P00～P0x をまとめて使用します。(x はボード依存)
ポートシンボルの数や、同じポートシンボルを持つピンの数はボードによって異なるため、
詳しくはαRPL 対応ボード使用手順をご参照下さい。
また、αRPL ではポートシンボルを単に「ポート」と表現しています。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

35
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
ライブラリ機能

クラス

機能概要

ページ

PWM 出力PwmOut指定のピン 1 つから、パルス波形出力を行います。

P59

アナログ入力AnalogIn

指定のピンをアナログ入力として使用します。

P62

アナログ出力AnalogOut

指定のピンをアナログ出力として使用します。

P64

シリアル通信

Serial

指定のピン 2 つを使い、シリアル通信を行います。

P66

SPI マスタ通信

SPI

指定のピン 3 つを使い、SPI マスタ通信を行います。

P69

SPI スレーブ通信

SPISlave

指定のピン 4 つを使い、SPI スレーブ通信を行います。

P71

I2C マスタ通信

I2C

指定のピン 2 つを使い、I2C マスタ通信を行います。

P74

時間計測タイマ

Timer

時間計測タイマ機能を使用します。

P77

ワンショットタイマ

TimeOut

指定した時間が経過した際に、ユーザ定義の関数を一度だけ実行します。

P79

繰り返しタイマ

Ticker

指定した時間が経過した際に、ユーザ定義の関数を繰り返し実行します。

P81

IRQ 割り込み

InterruptIn

指定のピンを IRQ 割り込みとして使用します。

P83

ウェイト機能※指定した時間ウェイトをかけます。

P85

Table 5.1-2

ライブラリ機能一覧と対応クラス 2※. ウェイト機能にクラスは存在しません。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

36
https://www.apnet.co.jp

Alpha Rapid Prototyping Library6.

API 一覧

6.1 関数一覧
各クラスはそれぞれコンストラクタ(クラス名と同じ名前の関数)とメンバ関数を持っており、それらを使用することで実際にライブラリ機能を利用することができます。コンストラクタを呼び出す際には任意の[インスタンス名]を指定します。以下に、コンストラクタとメンバ関数の使用例を示します。
#include "mbed.h"DigitalOut led(PJ5);/* [インスタンス名]を led として、コンストラクタの呼び出し */void main(void){
led.write(1);/* メンバ関数の呼び出し */while(1);}

各クラスが持つコンストラクタとメンバ関数を以下に示します。
また、αRPL を使用したプログラムの一例として AP-RX63N-0A で動作するサンプルコードも併記します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

37
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.1 DigitalIn
機能概要： 任意のピンをデジタル入力として使用します。
デジタル入力初期化
DigitalIn [インスタンス名](PinName pin)
引数pin

デジタル入力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、デジタル入力の初期化を行います。

デジタル入力初期化
DigitalIn [インスタンス名](PinName pin, PinMode mode)
引数pin

デジタル入力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

mode

ピンのモードを選択※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、デジタル入力の初期化を行います。

リード機能
int read()
引数

なし

戻り値

ピンの状態

機能

ピンの状態を読みます。

0 or 1

ピンのモードを設定
void mode(PinMode pull)
引数

pull

ピンのモードを選択※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

ピンのモードを設定します。

簡易リード機能
operator int()
機能

インスタンスを読むことで read 関数を利用できます。

補足

int value = [インスタンス名].read();と int value = [インスタンス名]; は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

38
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： P87 をデジタル入力として使用します。
1 秒毎に入力状態を読み、入力状態により LED の点灯/消灯を切り替えます。

#include "mbed.h"DigitalOut led(PJ5);
DigitalIn in_signal(P87);

void main(void){
while(1){if(in_signal){
led = 1;}else{
led = 0;}wait(1.0);}}

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

39
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.2 DigitalOut
機能概要：

任意のピンをデジタル出力として使用します。

デジタル出力初期化
DigitalOut [インスタンス名](PinName pin)
引数pin

デジタル出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、デジタル出力の初期化を行います。

補足

初期値として 0 が出力されます。

デジタル出力初期化
DigitalOut [インスタンス名](PinName pin, int value)
引数pin

デジタル出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

value

初期出力値（0 or 1）

戻り値

なし

機能

指定したピンを使用し、デジタル出力の初期化を行います。

ライト機能
void write(int value)
引数

value

出力値（0 or 1）

戻り値

なし

機能

ピンに出力します。

補足

0 or 1 以外の値を設定した場合、前回の出力を保持します。

リード機能
int read()
引数

なし

戻り値

ピンの状態

機能

ピンの状態を読みます。

0 or 1

簡易ライト機能
DigitalOut & operator=(int value)
機能

インスタンスへ代入することで write 関数を利用できます。

補足[インスタンス名].write(value); と[インスタンス名] = value;

は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

40
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
簡易リード機能
operator int()
機能

インスタンスを読むことで read 関数を利用できます。

補足

int value = [インスタンス名].read();と int value = [インスタンス名]; は同じ動作をします。

サンプルコード
動作概要： 1 秒周期で LED を点滅させます。

#include "mbed.h"DigitalOut led(PJ5);/* LED に対応するピン(PJ5)をデジタル出力として使用 */void main(void){
while(1){
led = !led;/* LED を点滅(反転) */wait(0.5);/* 0.5[s]ウェイト */}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

41
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.3 DigitalInOut
機能概要：

任意のピンをデジタル入力またはデジタル出力として使用します。

デジタル入出力初期化
DigitalInOut [インスタンス名](PinName pin)
引数pin

デジタル入出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、デジタル入出力の初期化を行います。

補足

デジタル入力として初期化されます。

デジタル入出力初期化
DigitalInOut [インスタンス名](PinName pin,PinDirection direction, PinMode mode, int value)
引数pin

デジタル入出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

direction

入出力の設定（PIN_INPUT or PIN_OUTPUT）
PIN_INPUT:

デジタル入力として使用します。

PIN_OUTPUT: デジタル出力として使用します。
mode

モードの設定※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

value

初期出力値（0 or 1）

戻り値

なし

機能

指定したピンを使用し、デジタル入出力の初期化を行います。

ライト機能
void write(int value)
引数

value

出力値（0 or 1）

戻り値

なし

機能

ピンに出力します。

補足

0 or 1 以外の値を設定した場合、前回の出力を保持します。

リード機能
int read()
引数

なし

戻り値

ピンの状態

機能

ピンの状態を読みます。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

0 or 1

42
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
出力設定void output()
引数

なし

戻り値

なし

機能

デジタル出力として使用します。

入力設定
void input()
引数

なし

戻り値

なし

機能

デジタル入力として使用します。

ピンのモードを設定
void mode(PinMode pull)
引数

pull

ピンのモードを選択※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

ピンのモードを設定します。

簡易ライト機能
DigitalOut & operator=(int value)
機能

インスタンスへ代入することで write 関数を利用できます。

補足[インスタンス名].write(value); と[インスタンス名] = value;

は同じ動作をします。

簡易リード機能
operator int()
機能

インスタンスを読むことで read 関数を利用できます。

補足

int value = [インスタンス名].read();と int value = [インスタンス名]; は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

43
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： 1 秒毎に PJ5 をデジタル入力/出力に切り替えます。
デジタル入力時は PullUp により H になり、デジタル出力時は LED を点滅させます。

#include "mbed.h"DigitalInOut led(PJ5);/* LED に対応するピン(PJ5)をデジタル出力として使用 */void main(void){
led.input();/* デジタル入力として使用 */led.mode(PullUp);/* PJ5 をプルアップに設定 */while(1){
led.output();/* デジタル出力として使用 */led = !led;/* LED を点滅(反転) */wait(1.0);/* 1[s]ウェイト */led.input();/* デジタル入力として使用 */wait(1.0);/* 1[s]ウェイト */}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

44
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.4 BusIn
機能概要：

任意の複数ピン（最大 16 ピン）をまとめてデジタル入力として使用します。

バス入力初期化BusIn [インスタンス名](PinName p0, PinName p0=NC, … , PinName p15=NC)
引数

p0 – p15

バス入力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、バス入力の初期化を行います。

リード機能
int read()
引数

なし

戻り値

バスの状態

機能

バスの状態を読みます。

0x0000～0xFFFF

ピンのモードを設定
void mode(PinMode pull)
引数

pull

バスのモードを選択※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

バスのモードを設定します。

簡易リード機能
operator int()
機能

インスタンスを読むことで read 関数を利用できます。

補足

int value = [インスタンス名].read();と int value = [インスタンス名]; は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

45
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
参考： 例として BusIn(P40, P41, P70, PJ3)として初期化した場合の、各ピンの入力状態と read 関数の戻り値の対応を以下に示します。
各ピンの入力状態
各ピンの入力状態
PJ3
P70
P41
P40
read 関数戻り値
PJ3
P70
P41
0
0
0
0
0x0000
1
0
0
0
0
0
1
0x0001
1
0
0
0
0
1
0
0x0002
1
0
1
0
0
1
1
0x0003
1
0
1
0
1
0
0
0x0004
1
1
0
0
1
0
1
0x0005
1
1
0
0
1
1
0
0x0006
1
1
1
0
1
1
1
0x00071
11※.上記の例では 4 ピンですが、最大で 16 ピン設定可能です。

P40
0
1
0
1
0
1
0
1

read 関数戻り値
0x00080x00090x000A
0x000B
0x000C
0x000D
0x000E
0x000F

サンプルコード
動作概要： P40、P41、P42、P43 をバス入力として使用します。
1 秒毎に入力状態を読みます。

#include "mbed.h"

BusIn bus_in(P40, P41, P42, P43);/* P40, P41, P42, P43 をバス入力として使用 */void main(void){
static int in_data;

while(1){in_data = bus_in;/* P40, P41, P42, P43 の状態を変数 in_data へ */wait(1.0);/* 1[s]ウェイト */}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

46
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.5 BusOut
機能概要：

任意の複数ピン（最大 16 ピン）をまとめてデジタル出力として使用します。

バス出力初期化
BusOut [インスタンス名](PinName p0, PinName p0=NC, … , PinName p15=NC)
引数

p0 – p15

バス出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、バス出力の初期化を行います。

ライト機能
void write(int value)
引数

value

戻り値

なし

機能

バスに出力します。

出力値（0x0000～0xFFFF）

リード機能
int read()
引数

なし

戻り値

バスの状態

機能

バスの状態を読みます。

0x0000～0xFFFF

簡易ライト機能BusOut & operator=(int value)
機能

インスタンスへ代入することで write 関数を利用できます。

補足[インスタンス名].write(value); と[インスタンス名] = value;

は同じ動作をします。

簡易リード機能
operator int()
機能

インスタンスを読むことで read 関数を利用できます。

補足

int value = [インスタンス名].read();と int value = [インスタンス名]; は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

47
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
参考： 例として BusOut(P40, P41, P70, PJ3)として初期化した場合の、
write 関数の引数と各ピンの出力状態との対応を以下に示します。
各ピンの出力状態
各ピンの出力状態
write 関数引数
PJ3
P70
P41
P40
write 関数引数
PJ3
P70
P41
0x000000000x00081000x0001000
10x00091000x000200
100x000A10
10x0003001
10x000B
10
10x000401
000x000C1
1
00x000501010x000D
1
1
00x000601
1
00x000E11
10x0007011
10x000F1
1
1※.上記の例では 4 ピンですが、最大で 16 ピン設定可能です。

P40
0
1
0
1
0
1
0
1

サンプルコード
動作概要： P40、P41、P42、P43 をバス出力として使用し、対応するピンへ出力します。
1 秒毎に 0x00→0x01→…0x0F→0x00… と出力します。

#include "mbed.h"

BusOut bus(P40, P41, P42, P43);/* P40, P41, P42, P43 をバス出力として使用 */void main(void){
int out_data = 0x00;

while(1){bus = out_data;/* 変数 out_data の値を P40, P41, P42, P43 へ出力 */wait(1.0);/* 1[s]ウェイト */out_data++;/* 変数 out_data をインクリメント */if(out_data >= 0x10){
out_data = 0x00;}}}

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

48
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.6 BusInOut
機能概要：

任意のピンをバス入力またはバス出力として使用します。

バス入出力初期化
BusInOut [インスタンス名](PinName p0, PinName p0=NC, … , PinName p15=NC)
引数

p0 – p15

バス入出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、バス入出力の初期化を行います。

補足

バス入力として初期化されます。

ライト機能
void write(int value)
引数

value

戻り値

なし

機能

バスに出力します。

出力値（0x0000～0xFFFF）

リード機能
int read()
引数

なし

戻り値

バスの状態

機能

バスの状態を読みます。

0x0000～0xFFFF

出力設定
void output()
引数

なし

戻り値

なし

機能

バス出力として使用します。

入力設定
void input()
引数

なし

戻り値

なし

機能

バス入力として使用します。

ピンのモードを設定
void mode(PinMode pull)
引数

pull

バスのモードを選択※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

バスのモードを設定します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

49
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
簡易ライト機能BusOut & operator=(int value)
機能

インスタンスへ代入することで write 関数を利用できます。

補足[インスタンス名].write(value); と[インスタンス名] = value;

は同じ動作をします。

簡易リード機能
operator int()
機能

インスタンスを読むことで read 関数を利用できます。

補足

int value = [インスタンス名].read();と int value = [インスタンス名]; は同じ動作をします。

サンプルコード
動作概要： 1 秒毎に P40、P41、P42、P43 をバス入力/出力に切り替えます。
バス入力時は PullUp により全ピン H になり、バス出力時は
P40、P42 が L、P41、P43 が H になります。(0x0A)#include "mbed.h"

BusInOut bus(P40, P41, P42, P43);/* P40, P41, P42, P43 をバス入出力として使用 */void main(void){bus.input();/* バス入力として使用 */bus.mode(PullUp);/* P40, P41, P42, P43 をプルアップに設定 */while(1){bus.output();/* バス出力として使用 */bus = 0x0A;/* 0x0A を P40, P41, P42, P43 へ出力 */wait(1.0);/* 1[s]ウェイト */bus.input();/* バス入力として使用 */wait(1.0);/* 1[s]ウェイト */}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

50
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.7 PortIn
機能概要：

CPU のポートシンボル単位でまとめてデジタル入力として使用します。

ポート入力初期化
PortIn [インスタンス名](PortName port, int mask)
引数

port

ポート入力 使用ポート※.使用可能なポートに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

mask

マスク設定
mask の値によってどのピンを有効にするか選択できます。
※.設定可能なマスクに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、ポート入力の初期化を行います。

リード機能
int read()
引数

なし

戻り値

ポートの状態機能

ポートの状態を読みます。

※.取得可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス取得可能パラメータ」ご参照下さい。

ピンのモードを設定
void mode(PinMode pull)
引数

pull

ポートのモードを選択※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

ポートのモードを設定します。

簡易リード機能
operator int()
機能

インスタンスを読むことで read 関数を利用できます。

補足

int value = [インスタンス名].read();と int value = [インスタンス名]; は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

51
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
参考： mask の役割について
コンストラクタによるポート入力の初期化の際、引数の mask の値によってどのピンを入力にするかを決めることができます。
mask の値を 2 進数に直した場合の、1 に対応するピンが入力となります。
(0 に対応するピンは前回の設定を保持します)
例として PortIn(PORT_0 mask)として初期化した場合の、
mask の値と PORT0 の各ピンの入出力の設定を以下に示します。
各ピンの入出力の設定
各ピンの入出力の設定
mask
P03
P02
P01
P00
mask
P03
P02
P01
0x00
保持
保持
保持
保持
0x08
入力
保持
保持
0x01
保持
保持
保持
入力
0x09
入力
保持
保持
0x02
保持
保持
入力
保持
0x0A
入力
保持
入力
0x03
保持
保持
入力
入力
0x0B
入力
保持
入力
0x04
保持
入力
保持
保持
0x0C
入力
入力
保持
0x05
保持
入力
保持
入力
0x0D
入力
入力
保持
0x06
保持
入力
入力
保持
0x0E
入力
入力
入力
0x07
保持
入力
入力
入力
0x0F
入力
入力
入力
※.mask に設定可能な値の上限は CPU ボードによって異なります。

P00
保持
入力
保持
入力
保持
入力
保持
入力

read 関数では、ポートの入力値と mask の値の論理積をとった値を読むことができます。
例として PortIn(PORT_0, 0x0F)として初期化した場合の、PORT0 の各ピンの入力状態と read 関数の戻り値の対応を以下に示します。
各ピンの入力状態
各ピンの入力状態
P03
P02
P01
P00
read 関数戻り値
P03
P02
P01
P00
read 関数戻り値
0
0
0
0
0x00
1
0
0
0
0x08
0
0
0
1
0x01
1
0
0
1
0x09
0
0
1
0
0x02
1
0
1
0
0x0A
0
0
1
1
0x03
1
0
1
1
0x0B
0
1
0
0
0x04
1
1
0
0
0x0C
0
1
0
1
0x05
1
1
0
1
0x0D
0
1
1
0
0x06
1
1
1
0
0x0E
0
1
1
1
0x07
1
1
1
1
0x0F
※.read 関数の戻り値(取得可能な値)の上限は CPU ボードによって異なります。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

52
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： P40～P43 をポート入力として使用します。
1 秒毎に入力状態を読みます。

#include "mbed.h"

PortIn port4(PORT_4, 0x0F);/* P40～P43 をポート入力として使用 */void main(void){
static int in_data;

while(1){in_data = port4;/* P40～P43 の状態を変数 in_data へ */wait(1.0);/* 1[s]ウェイト */}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

53
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.8 PortOut
機能概要：

CPU のポートシンボル単位でまとめてデジタル出力として使用します。

ポート出力初期化
PortOut [インスタンス名](PortName port, int mask)
引数

port

ポート出力 使用ポート※.使用可能なポートに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

mask

マスク設定
mask の値によってどのピンを有効にするか選択できます。
※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、ポート出力の初期化を行います。

ライト機能
void write(int value)
引数

value

※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

ポートに出力します。

リード機能
int read()
引数

なし

戻り値

出力値

機能

ポートの出力状態を読みます。

※.取得可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス取得可能パラメータ」ご参照下さい。

簡易ライト機能
PortOut & operator=(int value)
機能

インスタンスへ代入することで write 関数を利用できます。

補足[インスタンス名].write(value); と[インスタンス名] = value;

は同じ動作をします。

簡易リード機能
operator int()
機能

インスタンスを読むことで read 関数を利用できます。

補足

int value = [インスタンス名].read();と int value = [インスタンス名]; は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

54https://www.apnet.co.jp

Alpha Rapid Prototyping Library
参考： mask の役割について
コンストラクタによるポート出力の初期化の際、引数の mask の値によってどのピンを出力にするかを決めることができます。
mask の値を 2 進数に直した場合の、1 に対応するピンが出力となります。
(0 に対応するピンは前回の設定を保持します)
例として PortOut(PORT_0 mask)として初期化した場合の、
mask の値と PORT0 の各ピンの入出力の設定を以下に示します。
各ピンの入出力の設定
各ピンの入出力の設定
mask
P03
P02
P01
P00
mask
P03
P02
P01
0x00
保持
保持
保持
保持
0x08
出力
保持
保持
0x01
保持
保持
保持
出力
0x09
出力
保持
保持
0x02
保持
保持
出力
保持
0x0A
出力
保持
出力
0x03
保持
保持
出力
出力
0x0B
出力
保持
出力
0x04
保持
出力
保持
保持
0x0C
出力
出力
保持
0x05
保持
出力
保持
出力
0x0D
出力
出力
保持
0x06
保持
出力
出力
保持
0x0E
出力
出力
出力
0x07
保持
出力
出力
出力
0x0F
出力
出力
出力
※.mask に設定可能な値の上限は CPU ボードによって異なります。

P00
保持
出力
保持
出力
保持
出力
保持
出力

write 関数では、引数と mask の値の論理積をとった値を対応するピンへ出力することができます。
例として PortOut(PORT_0, 0x0F)として初期化した場合の、
write 関数の引数と PORT0 の各ピンの出力状態の対応を以下に示します。
各ピンの出力状態
各ピンの出力状態
write 関数引数
P03
P02
P01
P00
write 関数引数
P03
P02
P01
0x00
0
0
0
0
0x08
1
0
0
0x01
0
0
0
1
0x09
1
0
0
0x02
0
0
1
0
0x0A
1
0
1
0x03
0
0
1
1
0x0B
1
0
1
0x04
0
1
0
0
0x0C
1
1
0
0x05
0
1
0
1
0x0D
1
1
0
0x06
0
1
1
0
0x0E
1
1
1
0x07
0
1
1
1
0x0F
1
1
1
※.write 関数の引数(設定可能な値)の上限は CPU ボードによって異なります。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

P00
0
1
0
1
0
1
0
1

55
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： P40～P43 をポート出力として使用し、対応するピンへ出力します。
1 秒毎に 0x00→0x01→…0x0F→0x00… と出力します。

#include "mbed.h"

PortOut port4(PORT_4, 0x0F);/* P40～P43 をポート出力として使用 */void main(void){
int out_data = 0x00;

while(1){
port4 = out_data;/* 変数 out_data の値を P40～P43 へ出力 */wait(1.0);/* 1[s]ウェイト */out_data++;/* 変数 out_data をインクリメント */if(out_data >= 0x10){
out_data = 0x00;}}}

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

56
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.9 PortInOut
機能概要：

任意のピンをポート入力またはポート出力として使用します。

ポート入出力初期化
PortInOut [インスタンス名](PortName port, int mask)
引数

port

ポート入出力 使用ポート※.使用可能なポートに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

mask

mask の値によってどのピンを有効にするか選択できます。
※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、ポート入出力の初期化を行います。

補足

ポート入力として初期化されます。

ライト機能
void write(int value)
引数

value

※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

ポートに出力します。

リード機能
int read()
引数

なし

戻り値

ポートの状態※.取得可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス取得可能パラメータ」ご参照下さい。

機能ポートの状態を読みます。

出力設定
void output()
引数

なし

戻り値

なし

機能

ポート出力として使用します。

入力設定
void input()
引数

なし

戻り値

なし

機能

ポート入力として使用します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

57
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
ピンのモードを設定
void mode(PinMode pull)
引数

pull

ポートのモードを選択※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

ポートのモードを設定します。

簡易ライト機能
PortOut & operator=(int value)
機能

インスタンスへ代入することで write 関数を利用できます。

補足[インスタンス名].write(value); と[インスタンス名] = value;

は同じ動作をします。

簡易リード機能
operator int()
機能

インスタンスを読むことで read 関数を利用できます。

補足

int value = [インスタンス名].read();と int value = [インスタンス名]; は同じ動作をします。

サンプルコード
動作概要： 1 秒毎に P40～P43 をポート入力/出力に切り替えます。
ポート入力時は PullUp により全ピン H になり、ポート出力時は
P40、P42 が L、P41、P43 が H になります。(0x0A)#include "mbed.h"

PortInOut port4(PORT_4, 0x0F);/* P40～P43 をポート入出力として使用 */void main(void){
port4.input();/* ポート入力として使用 */port4.mode(PullUp);/* P40～P43 をプルアップに設定 */while(1){
port4.output();/* ポート出力として使用 */port4 = 0x0A;/* 0x0A を P40～P43 へ出力 */wait(1.0);/* 1[s]ウェイト */port4.input();/* ポート入力として使用*/

wait(1.0);/* 1[s]ウェイト */}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

58
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.10 PwmOut
機能概要：

指定のピン 1 つから、パルス波形出力を行います。

タイマ初期化
PwmOut [インスタンス名](PinName pin)
引数

pin

パルス出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、PWM 機能の初期化を行います。

補足

初期設定はパルス周期 20[ms]、デューティ比 0.0 です。

デューティ比設定値書込み
void write(float value)
引数

value

デューティ比（0.0～1.0）

戻り値

なし

機能

パルス波形のデューティ比を設定します。

補足

0.0 以下の値を設定した場合の出力は Low 固定に、1.0 以上の値を設定した場合の出力は Hi固定となります。
デューティ比は 0.01 単位で設定してください。

デューティ比設定値読出し
float read(void)
引数

なし

戻り値

デューティ比機能

現在のパルス波形のデューティ比を取得します。

0.0～1.0

パルス周期変更（秒）void period(float seconds)
引数

seconds

パルス周期[秒]※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

現在のデューティ比を保ったまま、パルス波形の周期を変更します。

パルス周期変更（ミリ秒）void period_ms(int ms)
引数ms

パルス周期[ミリ秒]※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

現在のデューティ比を保ったまま、パルス波形の周期を変更します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

59
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
パルス周期変更（マイクロ秒）
void period_us(int us)
引数us

パルス周期[マイクロ秒]※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

現在のデューティ比を保ったまま、パルス波形の周期を変更します。

パルス幅変更（秒）void pulsewidth(float seconds)
引数

seconds

パルス幅[秒]

戻り値

なし

機能

現在の周期を保ったまま、正パルスの幅を変更します。

補足

Low 固定出力や Hi 固定出力を設定したい場合は、上述の write 関数を用いてデューティ比を※.パルス周期未満の正の数を値に設定して下さい。

変更することで実現してください。
デューティ比が 1％単位となるように設定してください。

パルス幅変更（ミリ秒）void pulsewidth_ms(int ms)
引数ms

パルス幅[ミリ秒]※.パルス周期未満の正の数を値に設定して下さい。

戻り値

なし

機能

現在の周期を保ったまま、正パルスの幅を変更します。

補足

Low 固定出力や Hi 固定出力を設定したい場合は、上述の write 関数を用いてデューティ比を変更することで実現してください。
デューティ比が 1％単位となるように設定してください。

パルス幅変更（マイクロ秒）
void pulsewidth_us(int us)
引数us

パルス幅[マイクロ秒]※.パルス周期未満の正の数を値に設定して下さい。

戻り値

なし

機能

現在の周期を保ったまま、正パルスの幅を変更します。

補足

Low 固定出力や Hi 固定出力を設定したい場合は、上述の write 関数を用いてデューティ比を変更することで実現してください。
デューティ比が 1％単位となるように設定してください。

簡易ライト機能
PwmOut & operator=(float value)
機能

インスタンスへ代入することで write 関数を利用できます。

補足[インスタンス名].write(value); と[インスタンス名] = value;

は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

60
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
簡易リード機能
operator float()
機能

インスタンスを読むことで read 関数を利用できます。

補足

float value = [インスタンス名].read(); と float value = [インスタンス名];

は同じ動作をします。

参考：

デューティ比、パルス周期について以下に図示します。

パルス周期[時間]パルス幅[時間]

H[%]

L[%]
デューティ比は正パルスの割合
パルス幅は時間を意味します。

= デューティ比

サンプルコード
動作概要： 20[ms]周期(初期設定)でパルス波形を出力し、1 秒毎にデューティ比を 0.0→0.1→…1.0→0.0… と変化させます。

#include "mbed.h"

PwmOut pulse(P17);/* P17 を PWM 出力として使用 */void main(){while(1){for(int i = 0; i <= 10; i++){pulse = (float)i / 10;/* デューティ比を 0.0～1.0 に設定 */wait(1.0);/* 1[s]ウェイト */}}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

61
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.11 AnalogIn
機能概要：

指定のピンをアナログ入力として使用します。

アナログ入力初期化
AnalogIn [インスタンス名](PinName pin)
引数

pin

アナログ入力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、アナログ入力の初期化を行います。

リード機能
float read()
引数

なし

戻り値

デジタル値

機能

0.0～1.0（0[V]～VCC[V]）の範囲でデジタル値を読みます。

0.0～1.0（0[V]～VCC[V]）

リード機能
unsigned short read_u16()
引数

なし

戻り値

デジタル値

※.取得可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス取得可能パラメータ」ご参照下さい。

機能分解能に応じてデジタル値を読みます。

簡易リード機能
operator float()
機能

インスタンスを読むことで read 関数を利用できます。

補足

float value = [インスタンス名].read(); と float value = [インスタンス名];

は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

62
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： P40 のアナログ入力値が 1.65[V]以下なら LED を消灯、
1.65[V]より上なら LED を点灯させます。

#include "mbed.h"AnalogIn ain(P40);/* P40 をアナログ入力として使用 */DigitalOut led(PJ5);/* LED に対応するピン(PJ5)をデジタル出力として使用*/

void main(void){
while(1){if(ain > 0.5)/* P40 に 1.65[V]より大きな電圧がかかっている場合(3.3[V] * 0.5) */{led = 0;/* LED を点灯 */}else/* P40 に 1.65[V]以下の電圧がかかっている場合 */{led = 1;/* LED を消灯 */}}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

63
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.12 AnalogOut
機能概要：

指定のピンをアナログ出力として使用します。

アナログ出力初期化
AnalogOut [インスタンス名](PinName pin)
引数

pin

アナログ出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、アナログ出力の初期化を行います。

補足

初期値として 0.0[V]が出力されます。

ライト機能
void write(float value)
引数

value

出力値（0.0～1.0）

戻り値

なし

機能

0.0～1.0（0[V]～VCC[V]）の範囲でアナログ値を書き込みます。

補足

0.0 以下の値を設定した場合は 0.0 が、1.0 以上の値を設定した場合は 1.0 が設定されます。

ライト機能
void write_u16(unsigned short value)
引数

value

※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

分解能に応じてアナログ値を書き込みます。

リード機能
float read()
引数

なし

戻り値

アナログ値

機能

0.0～1.0（0[V]～VCC[V]）の範囲でデジタル値を読みます。

0.0～1.0（0[V]～VCC[V]）簡易アナログライト
AnalogOut & operator=(float percent)機能

インスタンスへ代入することで write 関数を利用できます。

補足[インスタンス名].write(percent);と[インスタンス名] = percent;

は同じ動作をします。

簡易アナログリード
operator float()
機能

インスタンスを読むことで read 関数を利用できます。

補足

float percent = [インスタンス名].read(); とfloat percent = [インスタンス名]; は同じ動作をします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

64
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： P03 へアナログ出力値を 0[V]から 3.3[V]に変化させ出力します。

#include "mbed.h"AnalogOut aout(P03);/* P03 をアナログ出力として使用 */void main(void){
while(1){for(int i = 0; i <= 10; i++){aout = (float)i / 10;/* P03 へ 0[V]～3.3[V]を印加 */wait(1.0);/* 1[s]ウェイト */}}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

65
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.13 Serial
機能概要：

指定のピン 2 つを使い、シリアル通信を行います。

シリアル初期化
Serial [インスタンス名](PinName tx, PinName rx)
引数tx

データ出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

rx

データ入力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、シリアルの初期化を行います。

補足

初期設定はボーレート 9600[bps]、データ長 8[bit]、パリティなし、ストップビット 1[bit]です。

ボーレート設定
void baud(int baudrate)
引数baudrate

ボーレート[bps]※.設定可能なボーレートに関しては、αRPL 対応ボード使用
手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

シリアルのボーレートの設定を行います。

フォーマット設定
void format(int bits=8, Parity parity=SerialBase::None, int stop_bits=1)
引数

bits

データ長の設定（7 or 8）parity

パリティの設定（None or Odd or Even）
None: パリティなし
Odd: 奇数パリティ
Even: 偶数パリティ

stop_bits

ストップビットの設定（1 or 2）

戻り値

なし

機能

シリアルの通信フォーマットの設定を行います。

読み出し可能判定
int readable(void)
引数

なし

戻り値

読み出し可能判定

0：受信バッファにデータが存在しない
1：受信バッファにデータが存在する

機能

受信バッファにデータが存在するか否かを返します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

66
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
書き込み可能判定
int writeable(void)
引数

なし

戻り値

書き込み可能判定

0：データを書き込みできない
1：データを書き込みできる機能

データ書き込み可能か否かを返します。

ユーザ定義の関数を割り込み関数に設定
void attach(void(*fptr)(void), IrqType type=RxIrq)
引数

fptr

ユーザ定義の関数※.NULL を指定した場合、割り込み関数呼び出しが無効にな
ります。

type

割り込みのタイプ（RxIrq or TxIrq）
RxIrq: ユーザ定義の関数を受信割り込み関数として登録
TxIrq: ユーザ定義の関数を送信割り込み関数として登録

戻り値

なし

機能

割り込みが起きた際にユーザ定義の関数を呼び出すようにします。

データ受信
int getc(void)※RX のボードを使用する場合

int getch(void)※RZ のボードを使用する場合

引数

なし

戻り値

受信データ

機能

1 バイトデータを受信します。

データ送信
int putc(int c)※RX のボードを使用する場合

int putch(int c)※RZ のボードを使用する場合

引数

c

送信データ

戻り値

送信データ

（引数と同じデータ）機能

1 バイトデータを送信します。

データ送信
int printf(const char *format, …)
引数

format

送信データ（書式文字列）

…

可変個引数

戻り値

送信文字数

機能

複数バイトデータを送信します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

67
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： ボーレート 38400[bps]、
データ長 8[bit]、パリティなし、ストップビット 1[bit]でシリアル通信を行います。
送信割り込みによる文字列送信、受信割り込みによるエコーバックを行います。

#include "mbed.h"Serial pc(P20, P21);/* P20, P21 をシリアル通信に使用 */char buf[] = "Hello World!";
int i = 0;

void pc_rx(){
pc.putc(pc.getc());/* エコーバック処理 */}void pc_tx(){
if(i < strlen(buf)){
pc.putc(buf[i]);/* 1 バイト送信 */

i++;
}
else
{
pc.attach(NULL, Serial::TxIrq);}}

void main(void){
pc.baud(38400);/* ボーレートを 38400[bps]に設定 */pc.format(8, SerialBase::None, 1);/* データビット数 8、パリティなし、ストップビット数 1 に設定 */pc.attach(pc_rx, Serial::RxIrq);/* ユーザ定義の受信割り込み関数を設定 */pc.attach(pc_tx, Serial::TxIrq);/* ユーザ定義の送信割り込み関数を設定 */while(1);}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

68
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.14 SPI
機能概要：

指定のピン 3 つを使い、SPI マスタ通信を行います。

SPI マスタ初期化
SPI [インスタンス名](PinName mosi, PinName miso, PinName sclk)
引数

mosi

データ出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

miso

データ入力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

sclk

クロック出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、SPI マスタの初期化を行います

補足

初期設定はバスクロック周波数 1000000[Hz]、データフレームビット数 8[bit]、
データサンプルエッジは奇数/アイドル時の sclk は Low(mode=0)です。
SS 信号は DigitalOut を用いてユーザが出力を管理してください。

フォーマット設定
void format(int bits, int mode)
引数

bits

データフレームビット数

mode

クロック位相/極性モードの設定
mode

データサンプルエッジ

アイドル時の sclk

0

奇数

Low

1

偶数

Low

2

奇数

High

3

偶数

High

戻り値

なし

機能

SPI フォーマットの設定を行います。

周波数設定
void frequency(int hz)
引数hz

クロック[Hz]※.設定可能なクロックに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

SPI バスクロックの周波数設定を行います。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

69
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
データ送信＆受信
virtual int write(int value)
引数

value

送信データ

戻り値

受信データ

機能

SPI マスタ送信を行い、同時に受信値を取得します。

サンプルコード
動作概要： バスクロック周波数 1[MHz]、データフレームビット数 8[bit]、
データサンプルを偶数エッジ、アイドル時の SCLK を H に設定して SPI マスタ通信を行います。
送信データを 0x01→0x02→…と変化させて、SPI スレーブデバイスへデータを送信します。
また、送信と同時に SPI スレーブデバイスに設定された受信データを受信します。

#include "mbed.h"

SPI spi(PC6, PC7, PC5);/* PC6, PC7, PC5 を SPI マスタ通信に使用 */DigitalOut spi_ssel(PC4);

void main(void){
static int response;
static int send;

spi_ssel = 1;

spi.format(8,1);/* データフレームビット数 8、モードを 1 に設定 */spi.frequency(1000000);/* バスクロック周波数を 1[MHz]に設定 */send = 0x01;

while(1){spi_ssel = 0;
wait(0.1);

response = spi.write((int)send);/* 1 バイトデータ送受信 */wait(0.1);
spi_ssel = 1;
send++;/* 送信データのインクリメント */}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

70
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.15 SPISlave
機能概要：

指定のピン 4 つを使い、SPI スレーブ通信を行います。

SPI スレーブ初期化
SPISlave [インスタンス名](PinName mosi, PinName miso, PinName sclk, PinName ssel)
引数

mosi

データ入力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

miso

データ出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

sclk

クロック入力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

ssel

チップセレクト 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、SPI スレーブの初期化を行います

補足

初期設定はバスクロック周波数 1000000[Hz]、データフレームビット数 8[bit]、
データサンプルエッジは奇数/アイドル時の sclk は Low(mode=0)です。

フォーマット設定
void format(int bits, int mode)
引数

bits

データフレームビット数

mode

クロック位相/極性モードの設定
mode

データサンプルエッジ

アイドル時の sclk

0

奇数

Low

1

偶数

Low

2

奇数

High

3

偶数

High

戻り値

なし

機能

SPI フォーマットの設定を行います。

周波数設定
void frequency(int hz)
引数hz

クロック[Hz]※.設定可能なクロックに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

SPI バスクロックの周波数設定を行います。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

71
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
データ受信
int read(void)
引数

なし

戻り値

受信データ

機能

SPI スレーブとして、受信バッファからデータを取得します。

データ受信確認
int recieve(void)
引数

なし

戻り値

受信データの有無

0：受信バッファにデータが存在しない
1：受信バッファにデータが存在する

機能

受信バッファにデータが存在するか否かを返します。

応答
int reply(int value)
引数

value

送信（応答）データ

戻り値

なし

機能

次に SPI マスタから送信があった際（スレーブ受信時）に、マスタに送信（応答）するデータをセットします。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

72
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： バスクロック周波数 1[MHz]、データフレームビット数 8[bit]、
データサンプルを偶数エッジ、
アイドル時の SCLK を H に設定して SPI スレーブ通信を行います。
SPI マスタデバイスからデータを受信すると、その受信データに 0x10 を加算し、送信データとして設定します。

#include "mbed.h"

SPISlave spi_s(PC6, PC7, PC5, PC4);/* PC6, PC7, PC5, PC4 を SPI スレーブ通信に使用 */void main(void){
static int res;spi_s.format(8,1);/* データフレームビット数 8、モードを 1 に設定 */spi_s.frequency(1000000);/* バスクロック周波数を 1[MHz]に設定 */spi_s.reply(0x00);/* 送信データの設定(1 バイト) */while(1){if(spi_s.receive())/* 受信データが存在する場合 */{res = spi_s.read();/* 受信データの読み込み(1 バイト) */res = (res + 0x10) % 0x100;
spi_s.reply(res);/* 送信データの設定(1 バイト) */}}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

73
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.16 I2C
機能概要：

指定のピン 2 つを使い、I2C マスタ通信を行います。

I2C マスタ初期化
I2C [インスタンス名](PinName sda, PinName scl)
引数

sda

データ入出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

scl

クロック出力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、I2C マスタの初期化を行います。

補足

初期設定はバスクロック周波数 100000[Hz]です。

周波数設定
void frequency(int hz)
引数hz

クロック[Hz]※.設定可能なクロックに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

I2C バスクロックの周波数設定を行います。

データ受信
int read(int address, char *data, int length, bool repeated=false)
引数

address

スレーブアドレス（スレーブアドレスは 8 ビットデータで表現され、上位 7 ビット: スレーブアドレス、下位 1 ビット: 1）

data

受信データ

length受信データサイズ

repeated

ストップコンディション発行の有無（true or false）
true: 発行しない
false: 発行する

戻り値

データ受信結果

機能

スレーブから複数バイトデータを受信します。

補足

最終データを受信した際、スレーブに対し NACK を返します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

受信に成功した文字数

74
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
データ受信
int read(int ack)
引数

ack

ACK 返送の有無（NoACK or ACK）
NoACK: ACK を返送しない
ACK:

ACK を返送する

戻り値

受信データ

機能

スレーブから 1 バイトデータを受信します。

データ送信
int write(int address, const char *data, int length, bool repeated=false)
引数

address

スレーブアドレス（スレーブアドレスは 8 ビットデータで表現され、上位 7 ビット: スレーブアドレス、下位 1 ビット: 0）

data

送信データ

length

送信データサイズ

repeated

ストップコンディション発行の有無（true or false）
true: 発行しない
false: 発行する

戻り値

データ送信結果送信に成功した文字数

機能

スレーブへ複数バイトデータを送信します。

データ送信
int write(int data)
引数

data

送信データ

戻り値

ACK の有無

0：ACK を受信していない機能スレーブへ 1 バイトデータを送信します。

1：受信したスタートコンディション発行
void start(void)
引数

なし

戻り値

なし

機能

スタートコンディションの発行を行います。

ストップコンディション発行
void stop(void)
引数

なし

戻り値

なし

機能

ストップコンディションの発行を行います。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

75
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： バスクロック周波数 100[KHz](初期設定)で I2C マスタ通信を行います。
I2C スレーブデバイス(ここでは付属 EEPROM)へ 8 バイトのデータを書き込み、書き込んだ 8 バイトのデータを読み込みます。

#include "mbed.h"

I2C i2c(P13, P12);/* P13, P12 を I2C マスタ通信に使用 */void main(void){
int address = 0xA0;/* スレーブアドレス */char addr[1] = {0x00};/* EEPROM のアドレス */char w_data[9] = {0x00, 0x11, 0x33, 0x55, 0x77, 0x99, 0xAA, 0xCC, 0xEE};/* 1 バイト目は EEPROM の書き込みアドレス、2 バイト目以降は書き込みデータ */static char r_data[8];i2c.write(address, w_data, 9);/* EEPROM アドレス＋8 バイトデータ書き込み */wait(0.005);/* 5[ms]ウェイト */i2c.write(address, addr, 1, true);/* EEPROM アドレス送信(ストップコンディション発行なし) */wait(0.005);/* 5[ms]ウェイト */i2c.read(address, r_data, 8);/* 8 バイトデータ読み込み */while(1);}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

76
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.17 Timer
機能概要：

時間計測タイマ機能を使用します。

タイマ初期化Timer [インスタンス名]()
引数

なし

戻り値

なし

機能

Timer の初期化を行います。

タイマ動作開始
void start(void)
引数

なし

戻り値

なし

機能

Timer の動作を開始し、時間計測を行います。

タイマ動作停止
void stop(void)
引数

なし

戻り値

なし

機能

タイマの動作を停止します。

タイマリセット
void reset(void)
引数

なし

戻り値

なし

機能

タイマの計測値を 0 にリセットします。

タイマ計測値取得（秒）float read(void)
引数

なし

戻り値

タイマ時間計測値[秒]※.取得可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス取得可能パラメータ」ご参照下さい。

機能タイマの計測値を取得します。秒単位の値が取得されます。

タイマ計測値取得（ミリ秒）
int read_ms(void)
引数

なし

戻り値

タイマ時間計測値[ミリ秒]※.取得可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス取得可能パラメータ」ご参照下さい。

機能タイマの計測値を取得します。ミリ秒単位の値が取得されます。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

77
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
タイマ計測値取得（マイクロ秒）
int read_us(void)
引数

なし

戻り値

タイマ時間計測値[マイクロ※.取得可能な値に関しては、αRPL 対応ボード使用手順の「対秒]応クラス取得可能パラメータ」ご参照下さい。

機能タイマの計測値を取得します。マイクロ秒単位の値が取得されます。

サンプルコード
動作概要： タイマで時間を測り、1 秒周期で LED を点滅させます。
点滅を 10 回繰り返し、タイマを停止します。

#include "mbed.h"Timer t;/* 時間計測タイマの初期化 */DigitalOut led(PJ5);/* LED に対応するピン(PJ5)をデジタル出力として使用*/

void main(void){
int count = 0;t.start();/* タイマ動作開始 */while(1){if(t.read() >= 0.5)/* 0.5[s]経過した場合 */{led = !led;/* LED を点滅(反転) */count++;
if(count >= 10)/* 点滅を 10 回繰り返した場合 */{t.stop();/* タイマ動作停止 */}t.reset();/* タイマの計測値を 0 にリセット */}}}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

78
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.18 Timeout
機能概要：

指定した時間が経過した際に、ユーザ定義の関数を一度だけ実行します。

タイマ初期化
Timeout [インスタンス名]()
引数

なし

戻り値

なし

機能

Timeout の初期化を行います。

タイマ動作開始
void attach(void (*fptr)(void), float t)
引数

fptr

割り込み処理関数のポインタt

タイマ時間[秒]※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したタイマ時間[秒]経過後、割り込み関数を実行します。
割り込みは指定した時間後の 1 回のみ発生します。

タイマ動作開始
void attach_ms(void (*fptr)(void), unsigned int t)
引数※.RX ボードについては未実装です。

fptr

割り込み処理関数のポインタt

タイマ時間[ミリ秒]※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したタイマ時間[ミリ秒]経過後、割り込み関数を実行します。
割り込みは指定した時間後の 1 回のみ発生します。

タイマ動作開始
void attach_us(void (*fptr)(void), unsigned int t)
引数

fptr

割り込み処理関数のポインタt

タイマ時間[マイクロ秒]※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したタイマ時間[マイクロ秒]経過後、割り込み関数を実行します。
割り込みは指定した時間後の 1 回のみ発生します。

タイマ動作停止
void detach(void)
引数

なし

戻り値

なし

機能

タイマ割り込みを停止します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

79
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： ワンショットタイマを使用して、0.5 秒後に LED の出力状態 H/L を反転させます。

#include "mbed.h"Timeout flipper;/* ワンショットタイマの初期化 */DigitalOut led(PJ5);/* LED に対応するピン(PJ5)をデジタル出力として使用*/

void flip(){
led = !led;/* LED の反転 */}void main(void){
flipper.attach(&flip, 0.5);/* ユーザ定義の割り込み関数が 0.5[s]後に呼び出されるように設定 */while(1);}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

80
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.19 Ticker
機能概要：

指定した時間が経過した際に、ユーザ定義の関数を繰り返し実行します。

タイマ初期化
Ticker [インスタンス名]()
引数

なし

戻り値

なし

機能

Ticker の初期化を行います。

タイマ動作開始
void attach(void (*fptr)(void), float t)
引数

fptr

割り込み処理関数のポインタt

タイマ時間[秒]※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したタイマ時間[秒]経過後、割り込み関数を実行します。

タイマ動作開始
void attach_ms(void (*fptr)(void), unsigned int t)
引数※.RX ボードについては未実装です。

fptr

割り込み処理関数のポインタt

タイマ時間[ミリ秒]※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したタイマ時間[ミリ秒]経過後、割り込み関数を実行します。

タイマ動作開始
void attach_us(void (*fptr)(void), unsigned int t)
引数

fptr

割り込み処理関数のポインタt

タイマ時間[マイクロ秒]※.設定可能な値に関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

指定したタイマ時間[マイクロ秒]経過後、割り込み関数を実行します。

タイマ動作停止
void detach(void)
引数

なし

戻り値

なし

機能

タイマ割り込みを停止します。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

81
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
サンプルコード
動作概要： 繰り返しタイマを使用して、1 秒周期で LED を点滅させます。

#include "mbed.h"Ticker flipper;/* 繰り返しタイマの初期化 */DigitalOut led(PJ5);/* LED に対応するピン(PJ5)をデジタル出力として使用*/

void flip(){
led = !led;/* LED の点滅(反転) */}void main(void){
flipper.attach(&flip, 0.5);/* ユーザ定義の割り込み関数が 0.5[s]毎に呼び出されるように設定 */while(1);}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

82
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.20 InterruptIn
機能概要：

指定のピンを IRQ 割り込みとして使用します。

IRQ 初期化InterruptIn [インスタンス名](PinName pin)
引数pin

IRQ 入力 使用ピン※.使用可能なピンに関しては、αRPL 対応ボード使用手順の「対応クラス使用可能ピン」ご参照下さい。

戻り値

なし

機能

指定したピンを使用し、IRQ の初期化を行います。

IRQ の禁止
void disable_irq()
引数

なし

戻り値

なし

機能

IRQ 割り込みを禁止します。

IRQ の許可
void enable_irq()
引数

なし

戻り値

なし

機能

IRQ 割り込みを許可します。

ユーザ定義の関数を割り込み関数に設定（立ち下がりエッジ）
void fall(void(*)(void)fptr)
引数

fptr

ユーザ定義の関数

戻り値

なし

機能

立ち下がりエッジでユーザ定義の関数を呼び出します。

ユーザ定義の関数を割り込み関数に設定（立ち上がりエッジ）
void rise(void(*)(void)fptr)
引数

fptr

ユーザ定義の関数

戻り値

なし

機能

立ち上がりエッジでユーザ定義の関数を呼び出します。

ピンのモードを設定
void mode(PinMode pull)
引数

pull

ピンのモードを選択※.設定可能なモードに関しては、αRPL 対応ボード使用手順の「対応クラス設定可能パラメータ」ご参照下さい。

戻り値

なし

機能

ピンのモードを設定します。

サンプルコード
αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

83
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
動作概要： IRQ 割り込みを使用して LED を点滅させます。
立ち上がりエッジで LED の出力状態 H/L を反転させます。

#include "mbed.h"InterruptIn event(P15);/* P15 を IRQ 割り込みとして使用 */DigitalOut led(PJ5);/* LED に対応するピン(PJ5)をデジタル出力として使用*/

void flip(){
led = !led;}void main(void){
event.rise(&flip); /* ユーザ定義の割り込み関数が P15 の立ち上がりエッジで呼び出されるように設定 */while(1);}αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

84
https://www.apnet.co.jp

Alpha Rapid Prototyping Library
6.1.21 ウェイト機能
機能概要：

指定した時間ウェイトをかけます。

ウェイト機能（秒）void wait(float s)
引数s

指定時間[秒]

戻り値

なし

機能

指定時間[秒]ウェイトをかけます。

ウェイト機能（ミリ秒）void wait_ms(int ms)
引数ms

指定時間[ミリ秒]

戻り値

なし

機能

指定時間[ミリ秒]ウェイトをかけます。

ウェイト機能（マイクロ秒）
void wait_us(int us)
引数

us

戻り値

なし

機能

指定時間[マイクロ秒]ウェイトをかけます。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

指定時間[マイクロ秒]

85
https://www.apnet.co.jp

Alpha Rapid Prototyping Library

7.

ライセンス

7.1 使用ライセンス
αRPL では、ライセンスとして、Apache License バージョン 2.0 を使用しています。
ライセンスの詳しい情報に関しては、ASF のホームページ(https://www.apache.org/)、もしくはApache License 2.0 全文（https://www.apache.org/licenses/LICENSE-2.0）をご覧下さい。
αRPL プロジェクト内のヘッダファイル等には、上記ライセンスに関するコメントが記述されております。

7.2 著作権
αRPL で使用されているソースファイルおよびヘッダファイルの著作権は、以下の 3 種類がございます。
・ARM Limited
・Renesas Electronics
・AlphaProject※.Renesas Electronics は、ルネサス エレクトロニクス株式会社を指します。
ARM Limited は、ARM Ltd.を指します。
各ファイルの著作権の分類につきましては、ファイル内のコメントをご参照下さい。

7.3 保証弊社では、αRPL を使用した CPU ボードの基本的な動作を確認しておりますが、CPU の全ての機能について
性能や動作を保証するものではございません。
ソフトウェアについての個別のお問い合わせ及び技術的な質問は、受け付けておりませんのでご了承下さい。

αRPL ユーザマニュアル<>©2023 Alpha Project Co., Ltd.

86https://www.apnet.co.jp

Alpha Rapid Prototyping Library
改定履歴

版数

日付

改定内容

1版

2015/01/15

新規作成

2版

2015/08/04

AP-RX64M-0A に新規対応

3版

2016/01/13

AP-RX71M-0A、AP-RZA-1A に新規対応

4版

2021/01/27

KPIT 社の記述を削除（４．２章)

4.1 版

2023/10/02

Table 3.1-1

使用環境(AP-RX63N-0A) 更新（3 章）

3.2 使用手順概要 更新（3 章）
Table 4.1-1
住所の更新

使用環境(AP-RZA-1A) 更新（4 章）

Alpha Rapid Prototyping Library
参考文献「RX63N グループ ユーザーズマニュアル ハードウェア編」
ルネサス エレクトロニクス株式会社「RX64M グループ ユーザーズマニュアル ハードウェア編」
ルネサス エレクトロニクス株式会社「RX71M グループ ユーザーズマニュアル ハードウェア編」
ルネサス エレクトロニクス株式会社「RZ/A1H グループ、RZ/A1M グループ ユーザーズマニュアル ハードウェア編」ルネサス エレクトロニクス株式会社
その他 各社データシート

本文書について・本文書の著作権は株式会社アルファプロジェクトが保有します。
・本文書の内容を無断で転載することは一切禁止します。
・本文書の内容は、将来予告なしに変更されることがあります。
・本文書の内容については、万全を期して作成いたしましたが、万一ご不審な点、誤りなどお気付きの点がありましたら弊社までご連絡下さい。
・本文書の内容に基づき、アプリケーションを運用した結果、万一損害が発生しても、弊社では一切責任を負いませんのでご了承下さい。

商標について・RX および RX63N、RX64M、RX71M は、ルネサス エレクトロニクス株式会社の登録商標、商標または商品名称です。
・RZ および RZ/A1H、A1M は、ルネサス エレクトロニクス株式会社の登録商標、商標または商品名称です。
・CS＋（旧CubeSuite＋）は、ルネサス エレクトロニクス株式会社の登録商標、商標または商品名称です。
・e2 studioは、ルネサス エレクトロニクス株式会社の登録商標、商標または商品名称です。
・E1エミュレータは、ルネサス エレクトロニクス株式会社の登録商標、商標または商品名称です。
・E2エミュレータLiteは、ルネサス エレクトロニクス株式会社の登録商標、商標または商品名称です。
・Renesas Flash Programmerは、ルネサス エレクトロニクス株式会社の登録商標、商標または商品名称です。
・J-Linkは、SEGGER Microcontroller GmbH & Co. KGの登録商標、商標または商品名称です。

・Windows®の正式名称は Microsoft®Windows®Operating System です。
・Microsoft、Windowsは、米国 Microsoft Corporation.の米国およびその他の国における商標または登録商標です。
・Windows®10、Windows®11は、米国 Microsoft Corporation.の商品名称です。
本文書では下記のように省略して記載している場合がございます。ご了承ください。
Windows®10は Windows 10もしくはWin10
Windows®11は Windows 11もしくはWin11
・その他の会社名、製品名は、各社の登録商標または商標です。

株式会社アルファプロジェクト〒431-3114
静岡県浜松市中央区積志町 834
https://www.apnet.co.jp
E-Mail : query@apnet.co.jp