以前、インプットキャプチャに関して、動作確認した際に、約1秒間のDelay時間をつくりました。インプットキャプチャに関しての動作確認は下記のサイトを参考にしてください。
この時は、for文を使って、Delay時間を構築しましたが、いろいろ調べていくと、スマートコンフィグレータを使用すると、Delay時間を構築できる関数があることがわかりました。やっぱりあるんですね!
今回は、このDelay関数を使用して、LEDを点滅させる機能を作ろうと思います。使用するマイコンは、「RX66T」になります。「Renesas Starter Kit+ for RX66T」評価ボードを使用します。Delay関数を使用するためには、スマートコンフィグレータのr_bspが必要です。r_bspはスマートコンフィグレータにデフォルトで追加されているコンポーネントです。新規プロジェクトを作成する時に、スマートコンフィグレータを使用するにチェックすれば、r_bspコンポーネントは追加されている状態になると思います。
![](https://progtech.device-mobile.com/wp-content/uploads/2019/05/rx65n_020-1024x824.jpg)
![](https://progtech.device-mobile.com/wp-content/uploads/2020/04/rx66t_030_software_delay.png)
r_bspコンポーネントの初期のパラメータで問題ありません。LEDを点滅させたいので、ポートコンポーネントを追加して、P95を出力に設定しておきます。Lowで点灯なので、1を出力するにチェックを入れて、LEDが消灯状態が初期値状態になるようにします。ポートコンポーネントの追加の仕方は、下記のサイトを参考にしてください。
それでは、コード生成をして、プログラミングを行っていきます。
#include "r_smc_entry.h" void main(void); void main(void) { while(1) { PORT9.PODR.BIT.B5 ^= 1; R_BSP_SoftwareDelay(500, BSP_DELAY_MILLISECS); } }
R_BSP_SoftwareDelay関数で、Delay時間を構築することができます。第1引数が時間で、第2引数が単位になります。ここでは、msecを単位にしています。単位は下記の3つを指定することができます。
- BSP_DELAY_MICROSECS
- BSP_DELAY_MILLISECS
- BSP_DELAY_SECS
それでは、ビルドを実行してビルドが成功したら、デバッグをしてみます。LED1が500msecごとに点滅しています。