篠原さんこんにちは。平田@マイクロフトです みなさんがコメントしているように、一度アセンブラ出力を検討されることをお勧 めします。volatile宣言がしてあれば、Cのソース上では篠原さんのソースでうまく パルスが出るはずです。(秋月のCコンパイラは使ったことないけど・・・)。 仕事柄いろいろなCPU用のコンパイラを使いますが、何日も悩んで原因がわからな かったことがアセンブラ出力を検討するとコンパイラの問題だったり、最適化で思わ ぬコードが出ていることがあります。今回のような事象が発生したときは、まずアセ ンブラ出力を取って検討するスタンスも必要だと思います。アセンブラ出力も疑っ て、オブジェクトを逆アセンブルして原因がわかったこともあるし・・・(^_^; for文を使わないとうまくEEPROMに書き込めるとのことですが、lowパルスの幅が ROMの規定値を満たしていますか? for文で書くとPBDR.Bit.B7が0になっている区間 がとても短く1になっている期間が長そうです。デジタルオシロで観測して、low区間 は規定値を満たしていますか? >最終的には4GHzのデジタル・オシロスコープを用いて波形を観測し、パルスの数 疑いだすときりがないのですが(^_^;、デジタルオシロだとlowパルスを見損ねたりし て > PBDR.BIT.B7 = 0; // 立ち下がり > PBDR.BIT.B7 = 1; // 立ち上がり アセンブラ出力を見れば一目で変わりそうですが、秋月のビットフィールドの操作は どうなっているんだろう。PBDRの出力ってリードしたときにラッチの内容が見れるん だっけ?(今ビール飲んで酔っ払いモードなので、H8のドキュメントを読む元気が・・ ・) ================================== 平田祥司 (shouji@xxxxxxxxxxxxx) 株式会社マイクロフト 神奈川県横浜市青葉区あかね台2-11-29 ==================================