RL78/G1EのTO00でパルス出力8個の件

お世話になります初心者IKUZOと申します
RL78/G1EのTO00でパルス出力8個のみ出力したいと思います
R_TAU0_Channel0_Start();からたぶん
INTTM00割込みハンドラーにてカウンター確認しまして
R_TAU0_Channel0_Stop();を呼ぶような処理ではないかと思いますが
1.INTTM00割込みハンドラーはどのファイルになりますでしょうか?
2.その中でカウンターが8になっているかどうかは、どのように確認するのでしょうか?

Parents
  • わわいです
    出力パルスの周波数(と言うかパルス間隔)はどんだけでしょうか?
    それが十分遅いなら、パルスごとの割り込みやらコンペアマッチの割り込みでカウンタ止める、という処理が有効ですが、割り込み応答時間よりパルス間隔が短くなるとこういう処理では無理となります
  • わわいさん
    20uSですから。
  • __interrupt static void r_tau0_channel0_interrupt(void)
    {
    /* Start user code. Do not edit comment generated here */
    if(r_tau0_channel0_interrupt_count < 17){
    r_tau0_channel0_interrupt_count++;
    }else{
    r_tau0_channel0_interrupt_count=0;
    R_TAU0_Channel0_Stop();
    }
    /* End user code. Do not edit comment generated here */
    }
    16を17にするとパルスの反転することがなくなりました。
  • チョコさん
    アナログ機能のコード生成はまだないですよね?
  • チョコです。
    >16を17にするとパルスの反転することがなくなりました。
    形波出力では,エッジで割り込みがでるので,どの状態からスタートするかでカウント値を調整することになります。目的のパルス数と出力の状態が得られたらOKと言うことで。
  • IKUZOさん
    スマートアナログ専用のコンフィグツールを使わないとですね。(ツールがCS+に組み込まれて色々できます)
    www.renesas.com/.../sa-designer.html

    Webの波形シミュレータは最近?閉鎖されてしまったようです。
    www.renesas.com/.../smart-analog-renesas-va.html

    シリアル使って例えば、SO出力の初期値を1にしておいて、SO端子から0x55を2回送信するのとかってダメです?
    送信バッファがあるので、1バイト(0x55)送信中にもう1バイト(0x55)を送信すれば、割り込みとかDMA使わずに、ぴったり8パルス作れますし。

  • チョコです。
    聞いたことは無いですね。
    アナログ関係はWebシミュレータ等の別のサポート手段があったはずですが,そこらは使ったことがないので分かりません。
  • チョコさん、アドバイスありがとうございます
    DMAでできるのですか、考えてもみませんでした、必要になったらDMA利用を考えてみます
    アナログ関係はWebシミュレータですか、調べてみます。
  • Kirinさん、アドバイスありがとうございます
    「シリアル使って例えば、SO出力の初期値を1にしておいて、
    SO端子から0x55を2回送信するのとかってダメです?
    送信バッファがあるので、1バイト(0x55)送信中にもう1バイト(0x55)を送信すれば、
    割り込みとかDMA使わずに、ぴったり8パルス作れますし。」
    そういう方法もありましたね、なるほどと思いました、
    ビットパターンでできますからね、
    とりあえずできましたので。

  • Webシミュレータはないんですね、なんとかレジスターいじってみます、
    スマートアナログ専用のコンフィグツールはインストールしてるんですが、あれはシリアルの設定ツールだと思うのですが、レジスターなので互換性があるのかな、調べてみます。
  • チョコです。
    なるほど,CSIですか。
    CSIを使うなら,SOじゃなくて,SCKがいいんじゃないですか。8ビット分でちょうど8クロック分出ます。
  • チョコさん
    7ビット必要になる場合もありますね、その場合は?、8ビット以上の場合は?
    それはそうと、アナログ部はシリアルのレジスターでしたね、サンプルソフトがあるので、とりあえずそれを参考にしてみたいと思います。
Reply
  • チョコさん
    7ビット必要になる場合もありますね、その場合は?、8ビット以上の場合は?
    それはそうと、アナログ部はシリアルのレジスターでしたね、サンプルソフトがあるので、とりあえずそれを参考にしてみたいと思います。
Children
  • チョコです。
    8パルスや7パルスなら1回分の通信で何とかなりますが,可変にするならば,倍の転送が必要ですが,SOがフレキシブルです。
  • チョコさん
    いつもありがとうございます、今回8個のパルスでした、であれば割込みの手当てもする必要がなく、また2回の送信する必要のないチョコさんご提案のSCKを使用するのが最善のようです、パルスの間隔調整がめんどうそうですが、最善の方法ではありますね、これもやってみないとどうなるのか、今のところはTAUでまいりたいと思います。
  • シリアルに設定した場合ですが、
    チョコさんご提案のSCKのみの端子は使用できるのでしょうか?
    それとも、3本がシリアルポートの使用になってしまいますか?
  • チョコです。
    出力するデータを0xFFにしておけば,SO端子は兼用機能のポート出力で使用できます。もちろん入力ポートに設定しても構いません。SI端子は使わないので,これも兼用機能で使用可能です。
  • チョコさん
    いつもありがとうございます、
    そうなんですか、SCKのみの端子として使用できることはありがたいですね
    シリアル端子について質問ですが
    確か2チャネルではなかったですか?
    必要なのが
    1.TXD、RXDの調歩同期式
    2.MAX6626用IIC
    なのですが、
    チャネル1にTXD、RXDの調歩同期式にするとあと残りがIICで
    いっぱいではないですかね?
  • もう一つありました
    アナログ設定の時にシリアルを使用しないといけないので
    全部で3チャネルですね、
    しかしMAX6626用IICはポート操作でもいいかと思います
  • チョコです。

    RL78/G1EのSAUを見ると,以下のようになっています。

    ユニット0のチャネル0,1をUARTで使っても,ユニット0のチャネル2及びユニット1チャネル0は使用可能です。

    これをCSIとIICに使い分ければ行けると思いますが。

    また,アナログ部の設定に使用するSPIはユニット1のチャネル1なので,ここまでは使い分けできるはずです。

  • チョコさんいつもありがとうございます、
    ユニット0のチャネル0,1をUARTで使用
    ユニット0のチャネル2,3をUARTで使用
    ユニット1のチャネル0をMAX6626用IIC
    ユニット1のチャネル1をアナログ部の設定
    たくさん使用できるようで、
    この設定でできないか、やってみます。
  • チョコです。
    そうですね,パルス出力をTO00で行えば,UARTを2つとIIC(簡易IIC),アナログ設定用で使用できますね。
  • チョコさん
    いつもありがとうございます、
    以下のように設定しました、端子も他と競合しないようです。