> これだけではだめです。マニュアルの頁10-47に示される手 順 > で該当するレジスタを全て設定してください。 プログラムをまた作りました。ここにまた載せたいと思います 。 #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は出力設定 */ 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スタート */ ITU.TMDR.BIT.PWM0 = 1; /* ITU0 PWMモード */ ITU0.TCR.BYTE = 0x23; /* クロックの1/8で動作。GRA コンペアマッチ */ ITU0.GRA = cnt0; /* GRAの値はcnt0 */ ITU.TSTR.BIT.STR0 = 0; /* カウント停止状態 */ ITU.TSTR.BIT.STR0 = 0; /* ITU0スタート */ while(1){ PB.DR.BYTE=PA.DR.BYTE; } void intimia1(void){ if(PA.DR.BIT.B4){ /* 立ち上がりエッジの場合 */ ITU1.TCNT = 0x00; /* カウントをクリア */ } else{ /* 立ち下がりエッジの場合 */ cnt0 = ITU1.GRA; /* 値をcnt0に記憶 */ } ITU1.TSR.BIT.IMFA=0; /* 割り込みフラグ解除 */ } 色々ご指摘を頂きましたが、ITU1へADXLの出力をインプットし 、PWMモードにしたITU0でそれを出力。パルス幅はcnt0という ようにしています。メイン関数ではITU0の設定が全て終わった 時点でITU1の設定をしました。 このプログラムで果たして出力をパルス幅で出せるのでしょう か?またご指摘お願いします。 __________________________________________________ Do You Yahoo!? Yahoo! BB is Broadband by Yahoo! http://bb.yahoo.co.jp/