1 / 15

タイマ割り込みと受信割り込み

タイマ割り込みと受信割り込み. 高橋 横道 野口. 割り込みとは. CPU の現在の処理を一時中断し,別の処理を行う仕組み. 割り込み要求が入った時点で,予め登録しておいた関数が呼ばれる.. 割り込みの必要性(一般例). エアバッグ 衝突を検知したらエアバックを即時展開する ABS (アンチロックブレーキシステム) タイヤがロックされたらブレーキ制御を一時無視し,タイヤを回す キャッチフォン 電話がかかってきたら割り込ませる レンジ トビラが開いたら過熱を即時停止. 割り込みの流れ. 3. 2. 割り込み関数. main. 割り込み 関数へ.

Download Presentation

タイマ割り込みと受信割り込み

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. タイマ割り込みと受信割り込み 高橋 横道 野口

  2. 割り込みとは • CPUの現在の処理を一時中断し,別の処理を行う仕組み. • 割り込み要求が入った時点で,予め登録しておいた関数が呼ばれる.

  3. 割り込みの必要性(一般例) • エアバッグ • 衝突を検知したらエアバックを即時展開する • ABS(アンチロックブレーキシステム) • タイヤがロックされたらブレーキ制御を一時無視し,タイヤを回す • キャッチフォン • 電話がかかってきたら割り込ませる • レンジ • トビラが開いたら過熱を即時停止

  4. 割り込みの流れ 3 2 割り込み関数 main 割り込み 関数へ mainを一時 中断 1 4 割り込み 発生 割り込み時の 処理を実行 6 中断されたところから mainの処理を実行 元の場所へ 戻る 5

  5. 食事中に電話がかかってきたら・・・ • 食事を中断して電話に出ます 3 2 電話 食事 電話を 受ける 食事を一時 中断 1 4 電話が かかってくる 電話をする 6 中断されたところから 食事を再開 電話を終了 時間 5

  6. マイコンの構成 0x000000 ベクタエリア 0x000100 内蔵ROM 0x07FFFF 外部アドレス空間 0xFEE000 内部I/Oレジスタ 0xFFBF20 外部アドレス空間 内蔵RAM 0xFFFF20 内部I/Oレジスタ 0xFFFFFF 外部アドレス空間

  7. ベクタテーブル 0x0000 0 リセット 0x0004 1 システム予約 0x001C 7 外部割込み(NMI) 0x0020 8 トラップ命令 0x0030 12 外部割込み(IRQ0-5) 0x0048 18 システム予約 0x0050 20 内部割込み

  8. 内部割込みのベクタテーブル 0x0050 20 WOVI 0x0054 21 CMI 0x0058 22 リザーブ 0x005C 23 ADI 0x0060 24 IMIA0 0x0064 25 IMIB0 0x0068 26 OVI0

  9. アセンブリコードの書き方 • アセンブリとは? • C言語よりも機械側よりの言語 • C言語では記述しきれない内容も記述できる. • 今回やること • レジスタの退避 • 割り込みの許可・設定

  10. タイマ割り込み1 •  タイマを使用し、ある一定のタイミングで割り込み処理を行う TISRAレジスタ IMIEA0に1を入れることで、割り込みを許可する。 ビット 7 6 5 4 3 2 1 0 IMIEA2 IMIEA1 IMIEA0 IMFA2 IMFA1 IMFA0 1:IMFA0フラグによる割り込み許可/0:禁止 GRAがコンペアマッチのとき、1になる。 ※コンペアマッチ:GRAに設定した値と現在のカウント値が   一致したとき、カウント値がクリアされる

  11. GRA タイマ割り込み2 GRAの設定値と現在のカウント値が一致 割り込み発生 0xffff IMFAフラグ=1 0x0000

  12. 受信割り込み1 • シリアル通信での受信時に割り込みを行う SCRレジスタ RIEに1を入れることで、受信での割り込みを許可する。 ビット 7 6 5 4 3 2 1 0 TIE RIE TE RE MPIE TEIE CKE1 CKE0 1:受信データフル割り込み(RXI)要求、   受信エラー割り込み(ERI)要求を許可 0:禁止

  13. 受信割り込み2 • シリアル通信での受信時に割り込みを行う SSRレジスタ 受信が完了すると,RDRFレジスタが1になる. ビット 7 6 5 4 3 2 1 0 TDRE RDRF ORER FER/ERS PER TBND MPB MPBT レシーブデータレジスタフル 受信を完了し,RDRにデータが 格納されていることを示すレジスタ. 1:受信完了 ※手動で0に戻す必要がある

  14. 受信割り込み3 ・割り込みの許可 SCI1.SCR.BIT.RIE=1; ・RXI(受信割り込み)要求の流れ データ受信→RSRレジスタに格納 →RDRレジスタに格納 SSRレジスタのRDRFが1になる 受信割り込み発生

More Related