お世話になります初心者IKUZOと申しますRL78/G1Eで高速にA/D変換できないかと考えております下図のように設定しましたが、大丈夫なんでしょうかわからないことがありましてハードウェアトリガーでINTTM01から起動にしましてだいたいこれでいいのでしょうか?入力がANI0とANI22があるのが疑問ですやりたいのはANI0を10uS以内で8ビットに変換して判断したいのですGAIN_AMP→DC→抵抗分圧→ANI0→A/D変換のようにしたいです変換時間が赤く表示されているのは、エラーなんでしょうか?変換結果も設定はどうしたら良いのでしょうか?
11. 6. 5 ハードウエア・トリガ・ノーウエイト・モード (セレクト・モード,連続変換モード) ① 停止状態で,A/Dコンバータ・モード・レジスタ0(ADM0)のADCE = 1に設定し,A/D変換待機状態と なります。 ② ソフトウエアで安定待ち時間注をカウント後,ADM0レジスタのADCS = 1に設定することで,ハードウ エア・トリガ待機状態となります(この段階では変換を開始しません)。なお,ハードウエア・トリガ 待機状態のとき,ADCS = 1に設定しても,A/D変換は開始しません。 ③ ADCS = 1の状態で,ハードウエア・トリガが入力されると,アナログ入力チャネル指定レジスタ(ADS) で指定されたアナログ入力のA/D変換を行います。 ④ A/D変換が終了すると,変換結果をA/D変換結果レジスタ(ADCR, ADCRH)に格納し,A/D変換終了割 り込み要求信号(INTAD)を発生します。A/D変換終了後は,すぐに次のA/D変換を開始します。 ⑤ 変換動作中にハードウエア・トリガが入力された場合,現在のA/D変換は中断され,再変換を開始します。 変換動作途中のデータは破棄されます。 ⑥ 変換動作中にADSレジスタを書き換えおよび上書きすると,現在のA/D変換は中断され,ADSレジスタで 再度指定されたアナログ入力のA/D変換を行います。変換動作途中のデータは破棄されます。 ⑦ 変換動作中にADCS = 1に上書きすると,現在のA/D変換は中断され,再変換を行います。変換動作途中 のデータは破棄されます。 ⑧ 変換動作中にADCS = 0に設定すると,現在のA/D変換は中断され,A/D変換待機状態となります。ただし, この状態でA/Dコンバータは停止状態になりません。 ⑨ A/D変換待機中にADCE = 0に設定すると,A/Dコンバータは停止状態になります。ADCS = 0のとき,ハ ードウエア・トリガが入力されても無視され,A/D変換は開始しません。 注 アナログ入力チャネルに高精度チャネル選択の場合: 安定待ち時間 = 0.5 μ s アナログ入力チャネルに標準チャネル選択の場合: 安定待ち時間 = 2 μ s INTTM01のトリガーでA/Dを起動したいですね 最大80mS間をA/Dトレースできれば申し分ないのですが 10uSでは割込みが多すぎてたぶん使いものにならない? であれば100uSぐらいは分解能に無理がありますか。
チョコさんアドバイスありがとうございます INTTM01で10uSの割込みを発生させて INTTM01でA/Dにトリガを掛けて、 INTTM01の割込みハンドラ内でA/Dデータを読み込んで 大小判断を行いたいです int count=0; int max=0;
int sv=0; void INTTM01_irq(void) { if(count < 8000){//80mS/0.01=8000 count ++; }else{ INTTM01_stop } if(max < ad){ max=ad;
sv=count; } } のようなことは可能でしょうか?
一応下記画面のように設定いたしました、だいじょうぶでしょうか?
TM01のタイマ設定が不使用になっていたのでこれをインターバルタイマ10uS設定でコード生成いたしました。