> CPU側の割り込みを許可するタイミングは、割り込み要因と なるペリフェラル側のレジスタ設定を全て完了していること、 割り込み 処理に必要な変数や配列などが確保され、必要なら その初期化 が終わっていることが、最低限必要になります。 今回、これを踏まえてCのプログラム内でCCRの設定をしました 。このためにmachine.hを追加しました。すみませんが、また プログラムを掲載します。 #include <3048f.h> #include <machine.h> #pragma interrupt(intimia1) extern unsigned int cnt0; /* 信号 のHighの時間を記憶 */ void main(void) { cnt0 = 0; /* cnt0初期化 */ PA.DDR = 0x00; /* Port-Aは入力設定 */ PB.DDR = 0xff; /* Port-B BIT0は出力設定 */ ITU.TSTR.BYTE = 0x00; /* ひとまず全タイマー停止 */ ITU.TSNC.BYTE = 0x00; /* 全タイマーは独立動作 */ ITU.TMDR.BYTE = 0x00; /* ITUはすべて通常動作 */ ITU.TFCR.BYTE = 0x00; /* ITU3,4およびGRA3,4,GRB3,4 は通常動作 */ ITU.TOER.BYTE = 0x00; /* ITU3,4による端子出力は 禁止 */ ITU.TOCR.BYTE = 0xff; /* 外部トリガ禁止 */ ITU1.TCR.BYTE = 0x83; /* クロックの1/8で動作。TCNT のクリア禁止 */ ITU1.TIOR.BYTE = 0xdf; /* 両エッジでGRAへインフ ゜ットキャプチャ */ ITU1.TIER.BYTE = 0x03; /* IMFA,IMFBによる割り込 み許可 OVIE禁止 */ ITU1.TSR.BYTE = 0x00; /* 全割り込みフラグクリア */ ITU1.TCNT = 0x00; /* カウントクリア */ ITU1.GRA = 0; /* GRA初期値設定 */ set_imask_ccr(0); /* 割り込みマスクビットを クリアします。*/ ITU.TSTR.BIT.STR1 = 1; /* ITU1スタート */ while(1){ PB.DR.BYTE=PA.DR.BYTE; } } void intimia1(void){ ifPA.DR.BIT.B4) { /* 立ち上がりエッジの場合 */ ITU1.TCNT = 0x00; } /* カウントをクリア */ else{ /* 立ち下がりエッジの場合 */ cnt0 = ITU1.GRA; /* 値をcnt0に記憶 */ } ITU1.TSR.BIT.IMFA=0; /* 割り込みフラグ解除 */ } CCR設定の記述場所は、これでいいと思ったのですが。 もう一つ質問です。馬鹿なことを聞くようですが、インプッ トキャプチャを使った場合、シンクロスコープでADXLの波形を 確認するとしたらどんな形の波形が表示され、また、どうやっ てパルス幅を変えることができますか? __________________________________________________ Do You Yahoo!? Yahoo! BB is Broadband by Yahoo! http://bb.yahoo.co.jp/