[H8-ML(5639)] H8-3069 PWM制御について
From: taji <taji@xxxxxxxxxxxxxxxxxxxx>
Date: 2005年07月28日(木)23時25分34秒
tajimと申します。

今、Strawberry LinuxのH8-3069を使って、PWM信号をオシロスコープで見ようと
しています。
マニュアルを見て、それに書いてある通りにITUを設定して、見ようと思ったの
ですが、うまく波形が出ず、0Vのままや5Vのままだったりしています。
プログラムは一番下に貼り付けておきました。
printfで原因を調べてみたところ、TCNT、GRAの値に原因がありそうな気がして
きました。

・TCNTの値はITU.TSTR.BIT.STR1 = 1とした後は単調増加するはずなのに、初期
値から変わらず0のまま。
・GRAは53750となっているはずなのに、-2138517002。
・ちなみにGRBは、初期値も正しいし、値の代入もうまくできています。


GRAの挙動を書くと

・初期値:-2138570752(本来なら16bit全部1)
・initializeとしてGRA=0を代入後:-2138570752のまま
・コンペアマッチの値として53750を代入後:-2138517002(一応53750足された
値になる)

となっています。
しかし、いかんせん初期値が変なので、どうしようもありません。。


まとめると、今の私の問題点として

・なぜTCNTの値が増えないのでしょう。
・GRAの初期値はなぜ変な値が入っているのでしょう。

この2つの疑問があるのですが、どなたか助けていただけませんでしょうか。。

int main(){
PADDR = 0x08;

ITU1.TCNT = 0x00;
ITU1.GRA = 0x0000;
ITU1.GRB = 0x0000;

ITU1.TCR.BIT.CCLR = 1;
ITU1.TCR.BIT.TPSC = 3;

ITU1.GRA = 53750;
ITU1.GRB = 4440;

ITU.TMDR.BIT.PWM1 = 1;
ITU.TSTR.BIT.STR1 = 1;

while(1){
printf ("init GRA1= %d\n", ITU1.GRA);
printf ("init GRB1= %d\n", ITU1.GRB);
printf ("init ITU1.TCNT= %d\n", ITU1.TCNT);
}
}
スレッド概略
[表示中](起点)
 ├[5640(1)]
 ├[5641(2)]
 ├[5643(3)]
 └[5646(4)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]