> ITU1.TIOR.BYTE = 0xdc; > ITU1.TIER.BYTE = 0xfa; > ITU1.TCR.BYTE = 0x23; ITU1の設定はこれで良いですよ。リザーブbitは書き込みは無効です から1でも0でもどちらでも構いません。更に TIER1 = 0xFA; // 割り込み許可( GRB1 ) TSTR = 0xFC; // カウンタスタート(CH0,CH1) を追加すればOKです。(CH0はPWM出力用とします) 尚、割り込みはGRB1ですから、スタートアップルーチンの割り込みベクタ はベクタ番号29(H'0074)でなければなりません。 割り込みルーチンは、単純に void intimia1(void){ TSR1 = 0; // フラグ解除 cnt0 = GRB1; // 加速度センサパルス幅のカウント値 // cnt0はグローバル変数(16bit) } レジスタの指定が構造体で定義してあるなら、上記を構造体に直して 下さい。上記の設定は、私が実際に使っているプログラムの設定と 基本的に同じですから、これでも動かないとなると、 1)構造体で定義してあるレジスタアドレスが一致していない。 2)割り込み処理のステータスレジスタの読み込みと書き込みを 構造体で行っている部分に問題がある可能性あり。 (私は秋月のCと構造体を使っていないのでなんとも言えません) 3)cnt0が本当にグローバル変数として定義されているのか? 4)配線が間違っている。 ことが考えられます。取り急ぎ書きましたが、結果をお知らせ頂ければ フォローできると思います(差し支えなければ、更にソースを個人メール で送って頂いても構いません) 鈴木(正) --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.574 / Virus Database: 364 - Release Date: 2004/01/29