[H8-ML(1495)] Re: for 文での出力ポートの操作
From: "Shouji Hirata" <shouji@xxxxxxxxxxxxx>
Date: 2001年12月21日(金)02時00分59秒
篠原さんこんにちは。平田@マイクロフトです

 みなさんがコメントしているように、一度アセンブラ出力を検討されることをお勧
めします。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
 ==================================


スレッド概略
[1491(R)](起点)
 └[1494(U)]
   └[表示中]


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


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