こんにちは,谷川と申します。 H8/3069 の 8bit タイマを カスケードさせて使おうと思っているのですが,どうにも行 き詰まってしまいました。 やりたいことは, 50Hz ぐらいの波形の周期を 16bit 精度 で計測したいんですが, 16bit タイマを使えば簡単なんで すが余っていないため, 8bit × 2 で挑戦しています。 ヘッダは H8/OS のを使用させて頂いていますが,以下のよ うに 8bit タイマ 0,1 のセットをします。 // 8bit Timer 0,1 は 16bit タイマモード TMR01.TCR0.BIT.CKS = 0x04; // TCORB 0,1 は 16bit インプットキャプチャレジスタ TMR01.TCSR1.BIT.ICE = 1; //立ち下がりでキャプチャ //(16bit モードでは, TCSR1 の OS は無視される) TMR01.TCSR0.BIT.OS = 0x00; // インプットキャプチャ B で 16bit カウンタクリア //(16bit モードでは, TCR1 の CCLR は無効) TMR01.TCR0.BIT.CCLR = 0x02; // 8ITU1 は 1/8 φでカウント これでタイマスタート TMR01.TCR1.BIT.CKS = 0x01; これで,任意のタイミングで TMR01.TCORB を読み出せば, インプットキャプチャ端子から入力した波形の1周期分のカ ウント値が入っていると思うのですが,実際には以下のよう に,正しい値,その半分 , 0付近,の3種類のデータがラ ンダムに登場してしまいます。 46635 …正解 46649 23559 … 1/2 0 1 23075 46661 46649 同じ信号を 16 ビットタイマで計測すると,このような現象 にはならないため,波形には問題ないと思います。 もし,何かお気づきの点ございましたら,是非ご教示下さい。 なお開発環境,ボードスペック等は以下の通りです。 Cygwin + GCC 3.3.2 TOPPERS/JSP1.4 + H8 用簡易モニタ 秋月 H8/3069F ボード( 20MHz ) -- dev@xxxxxxxxxxxxxxx 谷川