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); } }