> 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