[H8-ML(4304)] RE:Message for h8
From: "masanobu suzuki" <signas@xxxxxxxxxxxxxxx>
Date: 2004年01月16日(金)18時01分22秒
> このプログラムでは、ITUはTIOCA1だけを使い、また、割り込
> み処理をメイン関数の中で行っています。割り込みはメイン関
> 数でも出来るのでしょうか?

Cによる割り込みルーチンはメイン関数の外に記述します。
普通の関数との違いは、イエローソフト製Cコンパイラの場合、
1)ハードウエア割り込みの場合、メイン関数から呼ぶ(CALLする)
 ことはできません。暴走の原因になります。
2)割り込みルーチンに引数を渡したり、返したりすることはできません。
 通常は、グローバル変数や配列等でデータの受け渡しを行います。
3)スタートアップルーチンの
 .data.l	_main	    ;ITU0 GRAによる割込み処理先
 は_mainは、割り込み関数の名前になります。

尚、割り込み関数とスタートアップルーチンはお使いのC言語コン
パイラを参照して頂くしかありません。

その他、プログラム上で気づいた点を少し。

1)CPUのCCRレジスタによる割り込み許可を行っていない。
 H8ではリソース側で割り込みをイネーブルにしただけでは、CPU
 は割り込みを受け付けません。
2)While文の中の
 PB.DR.BIT.B0 = PA.DR.BYTE;
 は左辺はbit、右辺はbyteの構造体ですが、これでいいんでしょか?

鈴木(正)
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.560 / Virus Database: 352 - Release Date: 2004/01/08

スレッド概略
[4293(R)](起点)
 └[4299(U)]
   └[表示中]
     └[4314(1)]


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


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