> <外部コンデンサでPWMの出力周波数範囲をたとえば数kHz に設定して アナログデバイス社の加速度センサーADXL202は、コンデサCx,Cyは ローパスフィルタのカットオフ周波数を決めるためのもので、Cを大きく すると応答性が落ちますが、振動などのノイズを除去し出力が安定します。 振動などの計測にはCを小さく、静的な傾斜角などの測定にはCを大きく すれば良いでしょう。 尚、PWM出力の繰り返し周期は外付けの抵抗値Rsetで決定します。 (両者の値の決め方は、ADXL202の取説を参照ください) 出力をH8で読み取る方法として、ITUを用いてパルス幅を計測する方法 の他に、出力端子XfiltとYfiltの電圧を直接オペアンプで適当な大きさに 増幅し、電圧をAD変換して読み取る方法もあります。 AD変換の利点は、チェビシェフなどの高次フィルタを通すことができる点 で、一方パルス幅での計測は、フィルタリングには場合によってはデジタル フィルタ等の数値演算が必要になります。 ITUでルス幅を読み取る場合、インプットキャプチャ割り込みを用いるのが 一般的ですが、センサの繰り返し周期を数KhzにするとCPUは頻繁に割り 込みを処理しなければならず、他の処理に悪影響を及ぼす可能性があります。 全体のプログラムのバランスと加速度センサの使用目的等を良く考えて、 必要以上に周期を短くしないようにご注意下さい。 > これをCのプログラムで表したいのですが、内容を理解できずにいます。 > 具体的な説明をお願いできますか? h8/3048マニュアル頁10-43 (b)インプットキャプチャの図を参照下さい。 レジスタ設定の全体の流れを示すと、 1)センサ出力をTIOCA、TIOCB端子の両方につなぐ。 2)TCRでカウンタのクロックソースをCPUクロックφ/Nに設定する。 Nは分周比で、最大パルス幅の時に16bitカウンタがオーバーフロー しない値にする。 更に、GRAのインプットキャプチャの立ち上がエッジでTCNTをクリア に設定する。(CCLR1,CCLR0ビット) 3)TIORでは、 GRA:立ち上がりエッジでGRAへインプットキャプチャ GRB:立ち下がりエッジでGRBへインプットキャプチャ 4)TIERでは、 IMFBフラグによる割り込みのみを許可するに設定して、GRB割り込 みだけ を使うようにする。 5)TSTRでカウンタをスタートさせる。 6)CPU側の割り込みを許可する。 (割り込み処理は省略します) 上記の方法は、ITUのチャンネルTIOCA、TIOCB両方使ったパルス幅 の計測方法です。ちょっともったいない使い方ですが、GRBの割り込み を受けた時には、GRBには必ずパルス幅のデータが入っており、TCNT の値が妥当かを判断したり、クリアしたりする必要がないこと、パルスの 両エッジでの割り込みに比べ、その回数の半分で良いなどの利点があり ます。ご参考まで 鈴木(正) --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.560 / Virus Database: 352 - Release Date: 2004/01/08