今研修で秋月のH8のキットを使って勉強をしているのですが
割り込みについて理解できないところがあります。
タイマ割り込みなどの割り込みとは
メインの関数をよんでいる時に割り込んで今まで実行していたのに変わって実行されるわけですよね?
そのタイミングなんですが
ファイルを実行させるとソースの上から読むってのはわかるんですけど
例えば5行目の途中とかでも割り込みが行われるんですか?
つまり行単位で実行していてその間にはいってくるのか
行の中の単語?をよんでる最中に割り込んでくるのか。。。
知識が無いためうまく説明できませんがわかりますでしょうか?
よろしくおねがいします
No.4
- 回答日時:
> こうゆうプログラムにタイマかなんかで割り込むとき
> 上もしくは下の行の実行が終わった時に割り込まれるのか
>
> 上もしくは下の行の実行が終わって次の行を読み始めた途中でも割り込みが発生するのかどうかって事です。
この場合は、行の途中でも割り込みが入ります。
秋月のどのボードを使っているのかわかりませんが、コンパイラにGCCを使っているのであれば、
h8300-hms-gcc -S -mh オプション ファイル名
とすれば、アセンブリ言語のソースが出力されるので、それを見るとよくわかります。
まず、代入すべき値(ここでは0x01や0xfe)をレジスタに読み込んで、その値を出力ポートに書き込んでいるはずです。
P5.DR.BYTEの定義次第では、さらに複雑な命令に展開されているはずです。
No.3
- 回答日時:
詳細は補足していただくのを待つとして、わかる範囲で書いてみます。
H8/300Hの場合、ほとんどの命令は不分割ですが、一つだけ例外があります。それはEEPROM命令でワード単位の転送を行う場合です。この命令に限り、命令の実行が終わる前でも割り込みが入り、命令が中断されます。
それ以外は、1つの命令の実行が終わるまで、割り込みは入りません。
C言語での行単位の話であれば、C言語の場合、コンパイラが受け付けてくれる限り(翻訳限界まで)、同じ行にいくらでも式をかけますし、たった一つの代入しかしていないように見えても、実は多くの命令が実行されている場合があります。
機械語レベルで、命令が複数になれば、当然その間に割り込みが入ってきます。割り込みが入ってまずいのであれば、明示的に割り込みを禁止する必要があります。
No.2
- 回答日時:
割りこみは機械語の一命令語の終了のタイミングで行われます。
割りこんだ側が戻ってきたときの先頭番地を保存します。
割りこみ処理が終わると先ほど保存した次実行の先頭番地から続けて何事も無かったように
実行が再開されます。
こう言う関係ですからお同じデータエリアを2つのプログラムが共有することはまずありえません。
No.1
- 回答日時:
> 例えば5行目の途中とかでも割り込みが行われるんですか?
5行目というのがよくわからないのですが、アセンブリ言語でプログラムを書いていますか?それともC言語ですか?
この回答への補足
すいません。5行目とはたとえで何でもないです。
ちなみに言語はCです。
用は。
void main(void){
P5.DR.BYTE =0x01; (上)
P5.DR.BYTE =0xfe; (下)
}
こうゆうプログラムにタイマかなんかで割り込むとき
上もしくは下の行の実行が終わった時に割り込まれるのか
上もしくは下の行の実行が終わって次の行を読み始めた途中でも割り込みが発生するのかどうかって事です。
言葉、知識が足らなくてすみません;;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スーパーのレジで並んでいたら...
-
電車で待機列の割り込みについ...
-
VBAのDoEventsが上手く動きません
-
このレジの並び方は間違ってま...
-
pic 複数の割り込み関数 切り分...
-
リアルタイムクロック
-
アクセスできなくなった、HDDへ...
-
プリントスクリーンの自動化
-
マイコンSH-2の割り込みを用い...
-
マイコン C言語 割り込み処理...
-
【組込み】割り込み中のstatic...
-
バックグラウンドのプロセスの...
-
Macターミナルで実行中のプログ...
-
VBAの配列サイズとメモリに関して
-
ASP.NETでのメッセージ画面を出...
-
Excelでのセル内容の高速消去方法
-
TCP/IP通信時のサーバーからの受信
-
explorer.exeが異様にメモリを食う
-
vba listviewにおけるtextのAli...
-
C言語で、メモリを解放しないで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スーパーのレジで並んでいたら...
-
電車で待機列の割り込みについ...
-
CPU負荷率の安全な上限と計...
-
駅のトイレでナイチンに邪魔さ...
-
pic 複数の割り込み関数 切り分...
-
CPUの処理量を減らすコーデ...
-
【組込み】割り込み中のstatic...
-
このレジの並び方は間違ってま...
-
irqbalance って
-
VB6でSendKeyを利用したTab移動...
-
割り込みのカウントの仕方
-
USJでの割り込み
-
PICのPWMの正しい使い方につい...
-
電車のドアの前での並び方
-
マイコン C言語 割り込み処理...
-
一定時間操作がなかったら、と...
-
VB.net 割り込みの禁止
-
H8SX/1655のタイマー割り込みに...
-
PICマイコン 割り込み実行時間...
-
PIC24F C言語プログラミングに...
おすすめ情報