ADCへの入力端子を切替える

Smart Analog を使用しており、そのコントロール用に RL78 が付属しているので、その流れで RL78 を勉強しています。

Smart Analog から 2 本のアナログ電圧を出力します。RL78 の 2 ピンからそれぞれのアナログ電圧を入力し、E1を経由して CS++の解析グラフ上に 2本の電圧を同時に表示させたいと思っています。ADCは1つしかないわけですから、サンプリングポイントは交互になるハズです。

Smart Analog のチュートリアルでは、RL78 へのアナログ入力として ANI07 ピンから入力することになっており、CS++ のコード生成では「入力端子設定」として ANI01-ANI12 と指定し、「変換開始チャネル設定」として ANI07 を指定しています。また、解析グラフでは ANI07 からの入力のみが表示されているようです。

「入力端子設定」は「入力として使うかもしれないよ」という設定で、「変換開始チャネル」は「まずはそのチャネルを選択しておくけど、変更したい場合は各自でプログラムを書いてね」という意味なのでしょうか? その場合、チャネル選択は r_cg_adc_user.c 内でどこかのレジスタ値を書き換えるのでしょうか? また、E1からのAD変換後のデータを交互に 2 本の曲線に反映させるのはどのようにすればよろしいでしょうか?

Parents
  • A/D変換スタートする前に変換チャネルを切り替えるAPIを呼んでください。APIを出力させる方法を載せておきます。

    下記資料は、来月ぐらいにはまとめて掲載する予定です。

    以上、よろしくお願いします。

  • 鈴木様

    ありがとうございます。

    が、プロジェクトツリーに「コード生成」はありますが「コード・プレビュー」という項目が無いのですが... 「ツール > プラグインの管理」にも見当たりません。CS++ でどうやって「コード・プレビュー」を表示できるのでしょうか?

    返事をいただいた png の中身をよーく見ると、ADS レジスタに書き込めばいいようですので、r_cg_adc_user.c 内で g_tmp6, g_tmp7 変数を新たに宣言して

     if (ADS == _07_AD_INPUT_CHANNEL_7)

       {

         g_tmp7 = g_tmp;

         ADS =  _06_AD_INPUT_CHANNEL_6;

       }

     else

       {

         g_tmp6 = g_tmp;

         ADS =  _07_AD_INPUT_CHANNEL_7;

       }

    とすることで、g_tmp6 と g_tmp7 に交互に ADC の値を取り込むことができました。

    g_tmp6, g_tmp7 は static 変数としてローカルに宣言したいところですが、コンパイルでいろんなエラーが出てしまい、r_cg_adc_user.c 内のグローバル変数として定義しました。ANSI C とは違った独自の変数範囲ルールがあるようですね。

    また、g_tmp6, g_tmp7 をウォッチリストに登録することで E1 からのデータを取り込んで解析グラフで同時に表示することも可能になりました。

  • チョコです。

    RL78のコード生成は、どうも2種類あるようです。

    似たようなデバイスであるRL78/G14とRL78/G1Fですが、RL78/G14にはコード・プレビュー機能はなく、

    新しいデバイスであるRL78/G1Fではコード・プレビュー機能があります。

    しかも、困ったことにこれらでは、生成されたコードが格納されるディレクトリが異なり、デバイスを

    変更する場合に苦労します。

    早いこと一本化してもらいたいのですが。

    鈴木さんよろしく。

    追伸

    スマートアナログMCUのRL78/G1EやRL78/I1Eではコード・プレビュー機能があります。

    RL78/G1Eのコア部分のRL78/G1Aではコード・プレビュー機能は無いようです。

  • チョコさんのご指摘通り、コード生成は内部で2種類にわかれています。これは、開発環境が変更されたための変更です。

    RL78/G12, G13, G14, G1A, I1A, F12, F13 , F14, L12が古いタイプで作られています。

    この場合のPreviewは表示→ コード生成プレビューを選んでください。

    UIの仕様が変わってしまい申し訳ありません。

    フォルダ構成も変わってしまいましたが、ルネサスの統一方針で現在の構成に変更させて頂きました。

    (個人的には変更するのはだめと思いますが・・・)

    継承を考えますと過去製品のフォルダ構成を変更することができないので、現状となっております。

  • チョコです。

    鈴木さんリプライありがとうございます。

    >過去製品のフォルダ構成を変更することができないので

    新しい方で、両方に切り替えることができればいいのですが。

    (これが本当の意味で継承性だと思います。)

  • 鈴木様、チョコ様

    どうもありがとうございます。RL78G1Aでコード生成プレビューができるようになりましたので、当面は大丈夫です。

    それと、「来月ぐらいにはまとめて掲載する」資料が掲載されましたなら教えていただけるとありがたいです。>鈴木様

    よろしくお願いいたします。

  • >新しい方で、両方に切り替えることができればいいのですが。

    そうですね。可能性も考慮しますので検討させてください。

    nananananaさん、了解しました。こちらでお知らせするようにします。

Reply
  • >新しい方で、両方に切り替えることができればいいのですが。

    そうですね。可能性も考慮しますので検討させてください。

    nananananaさん、了解しました。こちらでお知らせするようにします。

Children
No Data