Renesas RAマイコンを使ってみよう(2)～Lチカ編～

__Renesas RAマイコンを使ってみよう～e2StudioインストールからBlinkyまで～__ の続きです。

https://qiita.com/usashirou/items/4dd010659e9d1c6789ff

今回は、LEDをチカチカさせる __Blinkyプログラム（Lチカ）__ を1から作ってみましょう。
# 新規プロジェクトを作成する
__ファイル⇒新規⇒Renesas C/C++ Projext⇒Renesas RA__ を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/ec81b227-5810-ef12-cbde-b5303b2cf570.png)
__Renesas C/C++ Project__ をクリックして、__Next__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/b23fb82b-8be7-fd5d-0355-7596a125bbae.png)
__Project Name__ を入力し __Next__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/233d8b1f-c264-0de2-f55b-11e1f47aa957.png)
使用するボードを選択し __次へ__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/978b36e3-759f-2722-995b-9459d47c2d9d.png)
今回も __FPB-RA2E1__　を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/8d915fa8-1175-8001-e237-1d9f23359618.png)
__RTOS__ を使用しない __No RTOS__ にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/d4aaf7da-f270-7db9-03a3-6d45b8e0417f.png)
__Bare Metal - Minimal__ を選択し、終了をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/a7c52470-ff86-bb8b-d33a-8721bca08d9b.png)
以上で、ボード設定などが入ったプロジェクトが用意されました。
__パースペクティブを開く__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/dd75b174-7653-32ac-e2a7-dc9558197ece.png)
# RA Flexible Software Package Documentation
FSPのドキュメントを見てみましょう。
梟のアイコンをクリックすると以下のページに飛びます。

https://renesas.github.io/fsp/

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/d11dff4a-fbb1-13c4-6aa1-430666619c6b.png)
今回使用する __I/O Port (r_ioport)__ の設定を見てみましょう。
![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/3c2dfc68-9643-aa23-2da9-05f0da394079.png)
# プログラムを作る
最初に __Generate Project Content__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/edbacfb5-b256-576f-2fd2-9efc7fa95843.png)
__Developer Assistance__ から必要なAPI関数を選択します。
__Developer Assistance__ を開いて __Call R_IOPORT_PinWrite__ を探します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/b0603d6d-2adf-d9bb-8479-936cec5c6b62.png)
__Call R_IOPORT_PinWrite__ を選択し、プログラムエリアへ貼り付けます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/ec045563-9da3-e25f-8a9e-44ad4e8f27f4.png)
__status =__ は不要なので削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/0044223f-d867-bfd4-b2f9-f8bf79fc4741.png)
__pin__ を __LED1__ にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/4d46a1f8-d30c-e97b-0791-02ec3392e3fb.png)
__Level__ は __BSP_IO_LEVEL_HIGH__ とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/382a31bd-fe6b-eb97-2070-f2d4757e1292.png)
同じく __BSP_IO_LEVEL_LOW__ の行を作りますが、そのままでは人間の視覚では判断できないスピードで点滅するので __Delay__ を追加します。
__R_BSP_SoftwareDelay__ を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/139d595b-89dc-fd52-4071-2073883ca022.png)
今回は __1000,BSP_DELAY_UNITS_MILLISECONDS__ としました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/f5386fca-30bf-8e83-b544-98a91feb4fdb.png)
以上で完成です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/678e2e9c-d715-dfc8-68c4-04acea081d92.png)
# LED2を追加する
__LED1__ と同じように __LED2__ を追加してみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/b6d36b96-edc5-b1c1-46d3-49eeceb8573a.png)
# IO設定
デバッグを行うとわかりますが、ピンの名前が逆になっていますので修正しつつ、LED2に変更し
__Generate Project Content__ をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/f026533e-a6bb-9fb4-898f-9163205089c3.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/56b78cba-463e-1076-654e-f967ac6d5da0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/3eba8001-8e28-9e4b-4a54-b8d9ccb3d522.png)
プログラムも修正し、__ビルド、デバッグ__  します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/285344/4ef6c0f6-e121-73f8-958e-bdcbf9282e4f.png)
# プログラム
今回のプログラムは以下になります。
```
BlinkyFirst
void hal_entry(void)
{
    /* TODO: add your own code here */
    while(1){
     R_IOPORT_PinWrite(&g_ioport_ctrl, LED1,BSP_IO_LEVEL_HIGH );
     R_IOPORT_PinWrite(&g_ioport_ctrl, LED2,BSP_IO_LEVEL_HIGH );
     R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS);
     R_IOPORT_PinWrite(&g_ioport_ctrl, LED1,BSP_IO_LEVEL_LOW );
     R_IOPORT_PinWrite(&g_ioport_ctrl, LED2,BSP_IO_LEVEL_LOW );
     R_BSP_SoftwareDelay(1000, BSP_DELAY_UNITS_MILLISECONDS);
    }
```