[H8-ML(283)] RE: [H8-ML(280)] Re: はじめまして
From: "Shouji Hirata" <shouji@xxxxxxxxxxxxx>
Date: 1999年09月08日(水)23時07分46秒
平田@マイクロフトです
> ところで, YellowSoft の C コンパイラって,関数のプロト
> タイプ宣言は出来ない仕様なんでしょうか?
プロトタイプ宣言はできるけど、型変換のミス等を見つけてくれなかったような・・
・・ 最近パラメータの型の指定ミスはコンパイラ任せにする癖がついているので、
今回もずいぶんバグに悩まされました。

> H8 のドキュメントによると,割込み禁止中に入った割り込み
> も保留されていると言うことなので,「再び割り込みを許可す
> る」前に,割り込みフラグをクリアしているのですが,クリア
> した直後に「再び割り込み許可する」と,保留されていた割り
> 込みが発生してしまうことが,時々ありました。

保留されていた割込は素直に使うことにしているもので(^_^)

 谷川さんのアプリの実体がわからないので何ともいえないのですが、割込応答関数
の中で100mSecも待ち続けるのには逆に違和感があります。僕なら「時間のか
かる処理」は割込応答関数の外に出してメールなりセマフォで通知するようにしま
す。割込入力の必要がないステートにいるときは無視すればよいし(^_^)

あと山勘で答えるだけで当てにしないでほしいのですが・・・・・

> -------------------------------------------------------
> void interrupt IRQ0(void)
> {
>     /* IRQ 割込み禁止 */
>     IER = 0x00;
>
>     /* ・・・何かの処理・・・ */
**ここの処理に時間がかかって次の割込が発生して「保留されている」
   のだと思うのですが
>     /* 割り込み禁止中に保留された割り込みをクリアするため */
>     /* IRQ 割り込みフラグ解除 */
>     ISR = 0x00;
**ISRに0を書き込んでクリアできるのは「SRをリードして1がたっている」
ビット
   じゃなかったでしたっけ? だから
   dmy = ISR;
       ISR = 0x00;
としないと保留されている割込はクリアされないのかも・・・・ ちなみにYell
owSoftのCコンパイラはオプティマイズの有無に関わらず

   ISR;         *1
       ISR = 0x00;   

こうすると*1の行を削除しちゃうので、結果としてリードできなくなるので気をつ
けてください

===========================================
  平田祥司 Shouji Hirata(GLP)
    E-mail : shouji@xxxxxxxxxxxxx
★株式会社マイクロフト新住所★
〒227-0066   横浜市青葉区あかね台2−11−29
===========================================

スレッド概略
[表示中](起点)


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


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