RL78でAIN0/P20をプログラム中でアナログとデジタルを変更

現在、RL78でAIN0/P20のポートをデジタルとアナログの設定をプログラム中で変更するようにしています。

デバッガーを接続した状態では動作するのですが、書き込んで動作させると動作しません。

立ち上がりはアナログで設定

アナログ入力が0になったらポートをデジタルに変更

ポート入力がHighになったら、アナログ入力にポートを変更をしているのですが、

書き込んだ状態では、アナログからデジタルには変わっているようですが、

ポートがHighになった時のif文が実行されないようです。

 

どのたか原因は判りますでしょうか?

Parents
  • わかさん、こんにちは。NoMaYと申します。

    話が巻き戻ってしまって申し訳ないのですが、なぜ以下の処理をさせようとしたのですか?このようにしなければならない、と、わかさんが考えられた理由がある筈と思ったのです。(投稿されたソースコードを見ても理由を推測出来るような記述はありませんでしたので。)

    > 立ち上がりはアナログで設定
    > アナログ入力が0になったらポートをデジタルに変更
    > ポート入力がHighになったら、アナログ入力にポートを変更をしているのですが、

  • チョコです。

    >話が巻き戻ってしまって申し訳ないのですが、なぜ以下の処理をさせようとしたのですか?

    おそらく、消費電力を抑制するためだと想像します。何しろ、A/D変換では最大1.7mAの電流が流れますから。

    これが目的なら、必要ないときにR_ADC_Start()関数を呼び出すのはNGです。

    R_ADC_Start()関数を呼び出すと、A/Dコンバータは動作しようとします。)

     

    何を目的に提示された処理を行おうとしているかを明確にしてもらえれば、もっと役に立つレスがあると思います。

Reply
  • チョコです。

    >話が巻き戻ってしまって申し訳ないのですが、なぜ以下の処理をさせようとしたのですか?

    おそらく、消費電力を抑制するためだと想像します。何しろ、A/D変換では最大1.7mAの電流が流れますから。

    これが目的なら、必要ないときにR_ADC_Start()関数を呼び出すのはNGです。

    R_ADC_Start()関数を呼び出すと、A/Dコンバータは動作しようとします。)

     

    何を目的に提示された処理を行おうとしているかを明確にしてもらえれば、もっと役に立つレスがあると思います。

Children
No Data