目次 コード生成概要ページ 03 汎用アンプを使ったデモ概要ページ 05 CS+ でプロジェクト作成ページ 07 コード生成で周辺機能設定ページ 09 ソースコードを自動生成ページ 19 プログラム編集ページ 20 デバッグツールの設定ページ 26 プログラムの実行ページ 28 e 2 studio

Similar documents
明日までにプログラムを試作して欲しい こんなことを頼まれたどうしますか? マイコンのマニュアルは1000ページ以上に及ぶこともあります それらをすべて熟読してプログラムを開発するには膨大な時間がかかります マニュアル1000 ページを読まずに素早くプログラム作成したい そんな時に役立つのがコード生成

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

RL78ファミリ CubeSuite+ スタートアップ・ガイド編

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

スライド 1

CS+ コード生成ツール 統合開発環境 ユーザーズマニュアル 周辺機能操作編

ブート領域、フラッシュ領域の分割方法 RL78ファミリ用Cコンパイラ CC-RL

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

スライド 1

スライド 1

AN1526 RX開発環境の使用方法(CS+、Renesas Flash Programmer)

1. 新規プロジェクト作成の準備新規プロジェクトのためのフォルダを用意して そこにプロジェクトを作成します [ 新しいフォルダー ] をクリックして希望のフォルダに新しいフォルダを作成します この例では TrST_F401N_BlinkLD2 というフォルダを作成しました TrST_F401N_Bl

スライド 1

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

RL78/I1D 中速オンチップ・オシレータでのUART 通信の実現 CC-RL

RX210 グループ MTU2 を用いた相補 PWM モードの波形出力 要旨 本サンプルコードでは MTU2 を用いて相補 PWM モードの波形を出力する方法について説 明します 対象デバイス RX210 1 / 41

スライド 1

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

統合開発環境CS+ V へのリビジョンアップのお知らせ

Welcome-Kit ~STM32L4-Nucleo~

<4D F736F F D B D A778F4B835A EC B290882E646F63>

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

スライド 1

Microsoft Word - Cubesuite+_78K0R.doc

AN1609 GNUコンパイラ導入ガイド

スライド 1

インテル(R) Visual Fortran コンパイラ 10.0

スライド 1

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

三菱電機マイコン機器ソフトウエア株式会社

Microsoft PowerPoint - 1_コンパイラ入門セミナー.ppt

XIMERA(Ver1

著作権および商標 この文書には が所有権を持つ機密事項が含まれます この資料のいかなる部分も許 可無く複製 使用 公開することを固く禁じます 本書は の従業員および許可された 取引先だけに使用が認められています 本書で提供されたデータは正確で信頼性の高いものですが このデータの使用について株式会社

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

スライド 1

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

電子13-06 エネメータ専用ソフト SAVER CAST for EneMeter Ver3.00設定方法.ppt

プログラミング基礎

AP4, Appliet3共通操作編 ユーザーズマニュアル

SuperH RISC engine C/C++ コンパイラ Ver.7 不具合内容 - 過去のお知らせ SuperH RISC engine C/C++ コンパイラ Ver.7 台における不具合内容を以下に示します のチェックツールをルネサスエレクトロニクス株式会社のホームページ

【注意事項】RX Driver Package、 RXファミリ RTC モジュール Firmware Integration Technology

slide5.pptx

AI1608AYUSB手順V3

アプリケーションノート AS-E402サンプルプログラム

ETCB Manual

スクールCOBOL2002

スライド 1

ここをクリックしてダウンロードする ダウンロードした zip ファイルを解凍する とインストーラが現れます インストーラを 起動してインストールを開始しましょう イ ンストーラの [ Next > ] ボタンを押してい けばインストールできます ライセンスの画面では I accept the ter

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

GR-SAKURA-SAのサンプルソフト説明

RX スマート・コンフィグレータ ユーザーガイド: e² studio編

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

adviceシリーズスタートアップガイド(ARM9編)

Microsoft PowerPoint - kougi2.ppt

PowerPoint Presentation

FlashAir ソフトウェア更新ツール Version 東芝メモリ株式会社 Copyright 2017 Toshiba Memory Corporation, All Rights Reserved. 対応 OS: 最新の対応 OS は Web サイトをご参照ください 概要本ソフ

統合開発環境 High-performance Embedded Workshop V へのリビジョンアップのお知らせ

Microsoft PowerPoint - timer_pwm2.pptx

Microsoft Word - Cubesuite+_V850_AM.doc

Microsoft Word - Ladder Tool 使çfl¨ã…žã…‰ã…¥ã‡¢ã…«ã…©ã…•ã…¼ã†ªã†Š_ docx

起動画面

adviceシリーズスタートアップガイド(Cortex-M3編)

Microsoft Word - CBSNet-It連携ガイドver8.2.doc

PRONETA

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

はじめに 製作するシステム 外部へデータ保存 製作手順 全体回路図 ソフトウエアの作成 次へのステップ 付録 I2C インターフェースを利用して外付けのEEPRO Mへデータ保存を行います データを保存する方法にはいくつかあります 代表的な例を挙げます 保存媒体 応答速度 通信方法 必要端子 プログ

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

1 1 TA, ,9 1. ( 2. TM TM GUI TM 1. P7-13 TM Notepad, Meadow, ( P109 ). 2. (shisaku01/sys test)

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

RX ファミリ用開発ツールのダウンロード及びインストール手順 [1] ダウンロード編 (1) ルネサスエレクトロニクス ( 株 ) のページ ( にアクセ スし 製品情報 をクリックする クリック 表示された RX ファミリ を選択する

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

PCL6115-EV 取扱説明書

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以

Microsoft Word - Training10_プリプロセッサ.docx

Microsoft Word - CBESNet-It連携ガイドver8.1.doc

目次 1. はじめに 準備 機器構成 やさしく名刺ファイリング Pro v.14.0 セットアップと動作確認 やさしく名刺ファイリング Pro v.14.0 セットアップ... 5 Windows Windows 8.

IMUシュミレータインストール方法

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

Microsoft Word - Writing Windows Installer's DLL.doc

DSP5Dアップグレードガイド

Microsoft Word - 実験4_FPGA実験2_2015

Renesas Starter Kit for RL78/L13 チュートリアルマニュアル(CubeSuite+)

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

GettingStartedTK2

CubeSuite+版RXシリアルデバッガ取扱説明書

Microsoft Word - HOBO雨量専用説明書_v1.1.doc

kiso2-03.key

RsMulti の取扱説明 「RS232C で直接接続する(LAN を使用しない場合)」

NTT Communications PowerPoint Template(38pt)

intra-mart Accel Platform — ViewCreator ユーザ操作ガイド   第6版  

Transcription:

RL78/I1E コード生成 RL78/I1E + 脈拍センサデモコンフィギュラブル アンプ使用例 文書番号 R20UT3745JJ0110 ブロードベースソリューション事業部ソフトウェア技術部 ルネサスエレクトロニクス株式会社 コード生成 はクリック 1 つで かんたん マイコン初期設定 開発工数を大幅削減する無償ツール CS+, e 2 studio 向けにプラグインを提供中 2018.06.04 2018 Renesas Electronics Corporation. All rights reserved.

目次 コード生成概要ページ 03 汎用アンプを使ったデモ概要ページ 05 CS+ でプロジェクト作成ページ 07 コード生成で周辺機能設定ページ 09 ソースコードを自動生成ページ 19 プログラム編集ページ 20 デバッグツールの設定ページ 26 プログラムの実行ページ 28 e 2 studioでプロジェクト作成ページ 31 e 2 studioでプログラム編集ページ 35 e 2 studioでデバッグツールの設定ページ 36 2018 Renesas Electronics Corporation. All rights reserved. ページ 2

コード生成概要 (5 つの特長 ) わかりやすい GUI による操作で クロックを意識せず使用したい実際の値 ( タイマ周期 シリアルのボーレート 等 ) が入力可能です 複数の周辺機能によるピン競合をチェックする機能 誤った設定値のチェック機能も装備しています 周辺機能の制御プログラム ( デバイスドライバ ) だけでなく メイン関数と API 関数も生成します ( ルネサス RL78 ファミリ用コンパイラ CC-RL に対応済み ) 設定した機能をファイル出力する充実したレポート機能 マイコンに特化した周辺機能 (LCD, アナログ系 ) のサポート 2018 Renesas Electronics Corporation. All rights reserved. ページ 3

コード生成概要 (RL ファミリグループ別対応ツール一覧 ) コード生成支援ツールシリーズグループ コード生成プラグイン (CS+, e 2 studio) Applilet3 for RL78 1 AP4 for RL78 1 RL78/F1x RL78/G1x RL78/I1x RL78/L1x Applilet3 for RL78 1 RL78/D1x RL78/D1A 1 AP4 および Applilet は スタンドアロンツールです RL78/F12, RL78/F13, RL78/F14, RL78/F15 RL78/G10, RL78/G11, RL78/G12, RL78/G13, RL78/G14, RL78/G1A, RL78/G1C, RL78/G1D, RL78/G1E, RL78/G1F, RL78/G1G, RL78/G1H RL78/I1A, RL78/I1B, RL78/I1D, RL78/I1E RL78/L12, RL78/L13, RL78/L1C 製品情報の詳細は 以下のURLをご参照ください コード生成プラグイン http://japan.renesas.com/cg_p AP4, Applilet http://japan.renesas.com/applilet 2018 Renesas Electronics Corporation. All rights reserved. ページ 4

汎用アンプを使ったデモ概要 センサで脈拍を検出する CS+ 上でリアルタイム に脈拍をグラフ表示 アンプで増幅した脈 拍をグラフ表示する 3. プログラム編集 CS+ 1.CS+ プロジェクト作成 2. コード生成で周辺機能設定 5. 実行 4. ビルド 2018 Renesas Electronics Corporation. All rights reserved. ページ 5

汎用アンプを使ったデモ概要 ( デモ全景 ) CN2 NJL5501R 搭載パルスオキシメータ用 反射型 センサ DIP 化モジュールキットを使って脈拍計測 AMP1O ANX0 ANI0 ANX2 ANX3 AMP0O 1 2 CN2 へ接続 R6 C3 C4 R8 R5 R7 R4 R3 C2 R1 C1 R2 RL78/I1E のアンプを 2 つ使う CN1 へ接続 AE-NJL5501R RL78/I1E 2 1 TI01 CN1 FB-R5F11CCC-TB AE-NJL5501R は 株式会社秋月電子通商様の製品です http://akizukidenshi.com/catalog/g/gk-09433/ 2018 Renesas Electronics Corporation. All rights reserved. ページ 6

CS+ でプロジェクト作成 1. CS+ 起動後に新しい プロジェクトを作成する 2. 使用するマイクロコントローラ RL78/I1E R5F11CCC(36pin) を選択 3. プロジェクト名 作成場所を入力 開発環境として CS+ for CA, CX で作成して いますが CS+ for CC でも同じ手順で作成で きます 2018 Renesas Electronics Corporation. All rights reserved. ページ 7

CS+ でプロジェクト作成 4. コード生成 ( 設計ツール ) のプロパティを開く 5. コード生成のプロパティを開き 日本語 ( シフト JIS) を選択 6. コード生成する際の文字フォーマット が CS+V3.02 より指定可能 CS+ の場合 デフォルトが UTF-8 2018 Renesas Electronics Corporation. All rights reserved. ページ 8

コード生成で周辺機能設定 ( このデモで使用する周辺機能 ) 1. 周辺機能を 選択して設定 2. 周辺機能が表示され 詳細設定を行う このデモで設定する周辺機能 共通/ クロック発生回路はデフォルトの設定 メイン システム クロック 高速オンチップ オシレータ クロック (fhoco) 高速オンチップ オシレータ (fhoco) 32MHz CPUと周辺クロック fhocoを使用 オンチップ デバッグの設定 タイマ アレイ ユニット インターバルタイマ 入力パルス間隔の設定 ウォッチドッグタイマ デフォルトが 使用する 設定なので未使用とする A/D コンバータ アンプ出力を A/D 変換する コンフィギュラブル アンプ 汎用アンプ x2 として使う 2018 Renesas Electronics Corporation. All rights reserved. ページ 9

コード生成で周辺機能設定 ( クロック発生回路はデフォルトで使用 ) 4. デフォルトで使用する ので変更しない 3. クロック発生回路 をクリック 2018 Renesas Electronics Corporation. All rights reserved.

コード生成で周辺機能設定 ( オンチップ デバッグ設定 ) 5. オンチップデバッグ設定 タブを開く 6. オンチップデバッグを使用する RRM/DMM 機能を使用する RRMとはプログラム実行中に変数表示を行う機能のこと 2018 Renesas Electronics Corporation. All rights reserved. ページ 11

コード生成で周辺機能設定 ( タイマ アレイ ユニットの設定 ) インターバル タイマ 20 ミリ秒 A/D 変換の間隔 入力 7. 各チャネルで機能を選択 パルス間隔測定は脈拍のパルス間隔を計測します 9.TI01 へ入る信号を計測 8. チャネル 0 を 20 ミリ秒 2018 Renesas Electronics Corporation. All rights reserved. ページ 12

コード生成で周辺機能設定 ( ウォッチドッグタイマは未使用 ) 10. ウォッチドッグタイマ は使用しない 2018 Renesas Electronics Corporation. All rights reserved. ページ 13

コード生成で周辺機能設定 ( A/D コンバータの設定 ) 11. A/D の設定 アンプからの出力を A/D 入力 (ANI0) へ 2018 Renesas Electronics Corporation. All rights reserved. ページ 14

コード生成で周辺機能設定 ( コンフィギュラブル アンプ 0 の設定 ) 13. AMP0 の設定 + 入力を ANX1 へ設定 12. AMP0 を使う - 入力を ANX0 へ設定 2018 Renesas Electronics Corporation. All rights reserved. ページ 15

コード生成で周辺機能設定 ( コンフィギュラブル アンプ 1 の設定 ) 15. AMP1 の設定 + 入力を ANX1 へ設定 14. AMP1 を使う - 入力を ANX2 へ設定 2018 Renesas Electronics Corporation. All rights reserved. ページ 16

コード生成で周辺機能設定 ( ポート 10 の確認 )! 16. P10 の にマウスカーソルを合わせると TI01 で使われていることが表示される 2018 Renesas Electronics Corporation. All rights reserved. ページ 17

コード生成で周辺機能設定 ( 端子配置表で確認 ) 17. 端子配置表で使って いる周辺機能を確認 18. コンフィギュラブル アンプの状態を表示 20. A/D コンバータ の状態を表示 19. 選択した周辺機能に 応じて端子状態を表示 現在の端子状態の表をエクセルで出力 することも可能です 2018 Renesas Electronics Corporation. All rights reserved. ページ 18

ソースコードを自動生成 ( 生成されるソースファイルの種類 ) 1. コードを生成する を押下 生成されるソースファイル 周辺機能の初期化と制御 API を含むもの r_cg_ 周辺機能.c /.h 周辺機能の割り込み関数を含むもの r_cg_ 周辺機能 _user.c main() 関数があるファイル r_cg_main.c コード生成で使う変数型の定義など 2. ソースが生成され プロジェクトツリーに 登録される r_cg_macrodriver.h ユーザ用の共通定義するためのファイル r_cg_userdefine.h 2018 Renesas Electronics Corporation. All rights reserved. ページ 19

指定コメント間にユーザコードを記述すれば プログラム編集 ( ソースの記述方法 ) コード生成 を実行しても 編集したユーザ コードが消えることがありません 1. ダブルクリックで r_cg_main.c の編集 4. グローバル変数定義は このコメント間に書く /********************************************************************************** * File Name : r_cg_main.c * Version : Code Generator for RL78/I1E V1.02.00.06 [12 Aug 2015] * Device(s) : R5F11CCC * Tool-Chain : CA78K0R * Description : This file implements main function. void R_MAIN_UserInit(void); * Creation Date: 2015/11/25 **********************************************************************************/ 2. ユーザが記述可能なプラグマ /************************************************************************* * Function Name: main * Description : This function implements main function. /********************************************************************************* 命令をこのコメント間に書く * Arguments : None Pragma directive * Return Value : None *********************************************************************************/ ***************************************************************************/ /* Start user code for pragma. Do not edit comment generated here */ void main(void) { /* End user code. Do not edit comment generated here */ R_MAIN_UserInit(); /* Start user code. Do not edit comment generated here */ /********************************************************************************* while (1U) Includes { *********************************************************************************/ 6. メインの処理を ; #include "r_cg_macrodriver.h" } #include "r_cg_cgc.h" 3. 追加したい #include /* End user code. Do not edit comment generated here */ #include "r_cg_port.h" #include "r_cg_tau.h" #include "r_cg_adc.h" をこのコメント間に書く #include "r_cg_camp.h" /* Start user code for include. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ } /************************************************************************** * Function Name: R_MAIN_UserInit * Description : This function adds user code before implementing main function. * Arguments : None * Return Value : None /* End user code. Do not edit comment generated here */ ***************************************************************************/ #include "r_cg_userdefine.h" void R_MAIN_UserInit(void) { /********************************************************************************* /* Start user code. Do not edit comment generated here */ Global variables and functions EI(); **********************************************************************************/ /* End user code. Do not edit comment generated here */ /* Start user code for global. Do not edit comment generated here */ } /* Start user code for adding. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ 5.main は () コード生成が出力 このコメント間に記述 7. ユーザの初期化処理を このコメント間に記述 8. ユーザの追加する関数を このコメント間に記述 2018 Renesas Electronics Corporation. All rights reserved. ページ 20

プログラム編集 ( r_cg_main.c ) プログラム追記部分 /******************************************************* Global variables and functions ********************************************************/ /* Start user code for global. Do not edit comment generated here */ volatile uint16_t gadresult; volatile uint16_t gtadresult[ D_PLUSEMAX ]; volatile uint16_t gpulse; /* End user code. Do not edit comment generated here */ // AD 変換結果 // 過去のAD 変換結果を格納 // 1 分間の脈拍数 void R_MAIN_UserInit(void); /******************************************************* * Function Name: main * Description : This function implements main function. * Arguments : None * Return Value : None *******************************************************/ void main(void) { R_MAIN_UserInit(); /* Start user code. Do not edit comment generated here */ while (1U) { ; } /* End user code. Do not edit comment generated here */ } /****************************************************** * Function Name: R_MAIN_UserInit * Description : This function adds user code before implementing main function. * Arguments : None * Return Value :None *******************************************************/ void R_MAIN_UserInit(void) { /* Start user code. Do not edit comment generated here */ R_CAMP0_Start(); // アンプ0 開始 R_CAMP1_Start(); // アンプ1 開始 R_TAU0_Channel0_Start(); // タイマチャネル0 開始 R_TAU0_Channel1_Start(); // タイマチャネル1 開始 EI(); /* End user code. Do not edit comment generated here */ } このページ以降のプログラム追記部分を記述して ビルドすれば デモプログラムが動作します 2018 Renesas Electronics Corporation. All rights reserved. ページ 21

プログラム編集 ( r_cg_userdefine.h ) プログラム追記部分 /******************************************************* * File Name : r_cg_userdefine.h * Version : Code Generator for RL78/I1E V1.02.00.06 [12 Aug 2015] * Device(s) : R5F11CCC * Tool-Chain : CA78K0R * Description : This file includes user definition. Creation Date: 2015/12/17 *****************************************************/ #ifndef _USER_DEF_H #define _USER_DEF_H /*************************************************************** ******************************************************** User definitions **************************************************************** *******************************************************/ /* Start user code for function. Do not edit comment generated here */ #define D_PLUSEMAX 8 // AD の変換結果を格納する大きさ /* End user code. Do not edit comment generated here */ 2018 Renesas Electronics Corporation. All rights reserved. ページ 22

プログラム編集 ( r_cg_ad_user.c ) プログラム追記部分 /****************************************************** Global variables and functions *******************************************************/ /* Start user code for global. Do not edit comment generated here */ extern volatile uint16_t gadresult; extern volatile uint16_t gtadresult[ D_PLUSEMAX ]; extern volatile uint16_t gpulse; /* End user code. Do not edit comment generated here */ /****************************************************** * Function Name: r_adc_interrupt * Description : None * Arguments : None * Return Value : None A/D 変換終了割り込み関数 (38μ 秒ごとに変換が完了 ) ******************************************************/ interrupt static void r_adc_interrupt(void) { /* Start user code. Do not edit comment generated here */ uint8_t i; A/D 変換を停止させているが チャネル 0 タイマで A/D 変換を 20 ミリ秒ごとに起動している R_ADC_Stop(); R_ADC_Get_Result( &gadresult ); A/D 変換値の取得 // 過去 D_PLUSEMAX 分のA/D 変換結果を gtadresult バッファへ格納する for ( i = (D_PLUSEMAX - 1); i > 0; i-- ) { gtadresult[ i ] = gtadresult[ i - 1 ]; } gtadresult[ 0 ] = gadresult; define で定義された個数分 A/D 変換結果を バッファへ代入 } /* End user code. Do not edit comment generated here */ 2018 Renesas Electronics Corporation. All rights reserved. ページ 23

プログラム編集 ( r_cg_tau_user.c ) プログラム追記部分 /*********************************************** Includes ***********************************************/ #include "r_cg_macrodriver.h" #include "r_cg_tau.h" /* Start user code for include. Do not edit comment generated here */ #include "r_cg_adc.h" /* End user code. Do not edit comment generated here */ #include "r_cg_userdefine.h" /*********************************************** Global variables and functions ***********************************************/ /* For TAU0_ch1 pulse measurement */ volatile uint32_t g_tau0_ch1_width = 0U; /* Start user code for global. Do not edit comment generated here */ extern volatile uint16_t gpulse; volatile uint32_t g32ul; A/D の API を使うために追記 カウンタ値が 820 だとすれば 820x(977/1)=0.839 秒のパルスになる /* End user code. Do not edit comment generated here */ ************************************************ * Function Name: r_tau0_channel0_interrupt * Description : This function INTTM00 interrupt service routine. * Arguments : None * Return Value : None ************************************************/ interrupt static void r_tau0_channel0_interrupt(void) { /* Start user code. Do not edit comment generated here */ R_ADC_Start(); /* End user code. Do not edit comment generated here */ } A/D 変換を開始 20 ミリ秒毎に呼ばれる 割り込み関数 /************************************************ TI01に入力されたパルスの間隔を * Function Name: r_tau0_channel1_interrupt * Description : This function INTTM01 interrupt 計測する割り込み関数 service routine. * Arguments : None * Return Value : None ************************************************/ interrupt static void r_tau0_channel1_interrupt(void) { if (1U == (TSR01 & _0001_TAU_OVERFLOW_OCCURS)) /* overflow occurs */ { g_tau0_ch1_width = (uint32_t)(tdr01 + 1U) + 0x10000U; } else パルス間隔を計測したカウント値を表す変数 { g_tau0_ch1_width = (uint32_t)(tdr01 + 1U); } /* Start user code. Do not edit comment generated here */ } // 60sec = 60000msec, g_tau0_ch1_width = 977Hz counter // TPS0 = _00F0_TAU_CKM1_FCLK_15 fclk/2^15 977Hz (fclk=32mhz) g32ul = ( 60000ul * 100 ) / ( g_tau0_ch1_width * 102 ); gpulse = (uint16_t)g32ul; 一分間の脈拍数を計算 /* End user code. Do not edit comment generated here */ /* Start user code for adding. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ 2018 Renesas Electronics Corporation. All rights reserved. ページ 24

プログラムのワンポイント ( 計算は整数で行うと早い ) /************************************************ * Function Name: r_tau0_channel1_interrupt * Description : This function INTTM01 interrupt service routine. * Arguments : None * Return Value : None r_cg_tau_user.c 入力パルス 間隔測定の割り込み関数 ************************************************/ interrupt static void r_tau0_channel1_interrupt(void) { if (1U == (TSR01 & _0001_TAU_OVERFLOW_OCCURS)) /* overflow occurs */ { g_tau0_ch1_width = (uint32_t)(tdr01 + 1U) + 0x10000U; } else { g_tau0_ch1_width = (uint32_t)(tdr01 + 1U); P4.3 を 1 にしている間 } /* Start user code. Do not edit comment generated here */ の処理を波形で観測 一分間の脈拍数を計算するため 下記のコードを使っています g32ul unsigned long g32ul = ( 60000ul * 100 ) / ( g_tau0_ch1_width * 102 ); gpulse = (uint16_t)g32ul; 小数を使ったコードにすると下記のようになります fl float fl = 60 / ( 0.00102 * g_tau0_ch1_width ); gpulse = (uint16_t)fl; 共に計算結果は同じですが 処理時間は8 倍以上違います 下図は実際の処理時間 } // 60sec = 60000msec, g_tau0_ch1_width = 977Hz counter // TPS0 = _00F0_TAU_CKM1_FCLK_15 fclk/2^15 977Hz (fclk=32mhz) P4.3 = 1; g32ul = ( 60000ul * 100 ) / ( g_tau0_ch1_width * 102 ); gpulse = (uint16_t)g32ul; P4.3 = 0; /* End user code. Do not edit comment generated here */ 処理が終了したので P4.3 を 0 にする /* Start user code for adding. Do not edit comment generated here */ /* End user code. Do not edit comment generated here */ P4.3 の波形を観測 unsigned long で計算 (3.6μ 秒で完了 ) float で計算 ( 約 30μ 秒かかる ) 2018 Renesas Electronics Corporation. All rights reserved. ページ 25

デバッグツールの設定 (E1 エミュレータの設定 ) 2.E1 から 5V を 電源供給する 3. デバッグ実行中の表示更新 を 100ms ごとに行う 1. デバッグツールは E1 を選択し プロパティを開く 2018 Renesas Electronics Corporation. All rights reserved. ページ 26

デバッグツールの設定 ( ビルドしてダウンロード ) 5. 実行ボタンを押下 4. ビルドとデバッグを 1 つのメニューで実行 2018 Renesas Electronics Corporation. All rights reserved. ページ 27

プログラムの実行 ( ウォッチ 解析グラフ の設定 ) 1.gAdResult 変数をウォッチ 1 と解析グラフに登録 2. マウスカーソルを変数に合わせて右クリック でメニューを表示 ウォッチ 1 へ登録 gpulse と gtadresult も同様にウォッチ 1 へ登録 解析グラフについては CubeSuite+ V2.02.00 統合開発環境ユーザーズマニュアル解析編 [CS+ for CA,CX] を以下の URL よりご参照ください http://japan.renesas.com/products/tools/ide/csp/documentation.jsp 2018 Renesas Electronics Corporation. All rights reserved. ページ 28

プログラムの実行 ( 解析グラフの詳細設定 ) 4. 表示更新を 100ms ごとに行うので グリッド単位を調整する 3. プログラム解析の プロパティを開く 5. グラフが中央に表示されるよう にオフセットを調整する 2018 Renesas Electronics Corporation. All rights reserved. ページ 29

プログラムの実行 ( プログラム実行中の表示 ) 6. プログラム実行中は解析グラフタブ をクリックし 前面に表示させる 7. 実行中も変数が更新される gpulse 1 分間の脈拍数 g_tau0_ch1_with パルスカウント値 gadresult の値がリアルタイム でグラフ表示される 8. グラフがスクロール表示 2018 Renesas Electronics Corporation. All rights reserved. ページ 30

e 2 studio でプロジェクト作成 2.e 2 studio 起動 1.Workbench を選択 2018 Renesas Electronics Corporation. All rights reserved. ページ 31

e 2 studio でプロジェクト作成 3.C Project を新規作成 4. プロジェクト名 作成場所を入力 5. ツールチェインは CC-RL を選択 2018 Renesas Electronics Corporation. All rights reserved. ページ 32

e 2 studio でプロジェクト作成 7. チェックする 6. ターゲットを選択 2018 Renesas Electronics Corporation. All rights reserved. ページ 33

e 2 studio でプロジェクト作成 コード生成で設定する内容について 9~19 ページを参照 8. コードを生成する を押下 2018 Renesas Electronics Corporation. All rights reserved. ページ 34

e 2 studio でプログラム編集 プログラム編集と内容について 19~24 ページを参照 生成されるソースファイル 周辺機能の初期化と制御 API を含むもの r_cg_ 周辺機能.c /.h 周辺機能の割り込み関数を含むもの r_cg_ 周辺機能 _user.c main() 関数があるファイル r_cg_main.c コード生成で使う変数型の定義など r_cg_macrodriver.h ユーザ用の共通定義するためのファイル ダブルクリックで編集 r_cg_userdefine.h CC-RLデフォルトで用意されるファイル cstart.asm, stkinit.asm CC-RL 用スタートアップ iodefine.h 周辺レジスタ定義ファイル 2018 Renesas Electronics Corporation. All rights reserved. ページ 35

e 2 studio でデバッグツールの設定 1. ツール設定ボタンを押下 入力したプロジェクト名がアクティブ になっていることを確認する 3. プロジェクトのデバッグ 設定を編集 2. 実行 / デバッグ設定 2018 Renesas Electronics Corporation. All rights reserved. ページ 36

e 2 studio でデバッグツールの設定 4. タブ変更 5. タブ変更 6. エミュレータから 電源を 5V 供給する 2018 Renesas Electronics Corporation. All rights reserved. ページ 37

e 2 studio でデバッグツールの設定 ( プロジェクトのビルド ) 7. プロジェクト名をアクティブにして 右クリックでメニュー表示 8. メニューよりプロジェクト のビルドを実行 9. ビルドが開始 ビルド状況が コンソールへ表示される 2018 Renesas Electronics Corporation. All rights reserved. ページ 38

e 2 studio でデバッグツールの設定 ( プロジェクトのダウンロード ) 10. プロジェクト名.Hardware.Debug.launch を アクティブにして右クリックでメニュー表示 12. デバッガが起動して ダウンロード完了 11. メニューよりデバッグ 1 プロジェクト名 HardwareDebug を実行 2018 Renesas Electronics Corporation. All rights reserved. ページ 39

e 2 studio でデバッグツールの設定 ( 監視式 : 実行時に表示したい変数の追加 ) 14. 選択した状態で右クリック でメニューを表示 13. 変数をダブル クリックして選択 16.gAdResult, gpulse, gtadresult の各変数を 監視式として登録 2018 Renesas Electronics Corporation. All rights reserved. ページ 40 15. メニューより監視式を追加 を選択

e 2 studio でデバッグツールの設定 ( 監視式の設定 ) この設定はデバッガ起動時に毎回行う必要があります 17. プログラム実行中に表示したい 変数を登録するにはリアルタイム リフレッシュを選択 18.gAdResult をグラフ表示させる のでチャートに追加を選択 19. グラフ表示 色を赤に変更 2018 Renesas Electronics Corporation. All rights reserved. ページ 41

e 2 studio でデバッグツールの設定 ( プログラムの実行 ) 21. プログラム実行中でも 変数表示が更新される 20. プログラムを実行 gadresult 変数がリアル タイムでグラフ表示される 2018 Renesas Electronics Corporation. All rights reserved. ページ 42

最後に 他にもコード生成のガイドがあるので活用してください http://documentation.renesas.com/doc/products/tool/doc/r20ut3230jj0100_cg_guide.pdf 2018 Renesas Electronics Corporation. All rights reserved. ページ 43

改訂記録 Rev 発行日内容備考 1.00 2016.3.10 新規発行 1.10 2018.6.4 ページ 11 オンチップデバッグ設定を追記 ページ 22 r_cg_userdefine.h ソース記載を追記 2018 Renesas Electronics Corporation. All rights reserved. ページ 44