dsPIC33F/PIC24H

Similar documents
dsPIC33F FRM - Section 47. Interrupts (Part V)

PIC24F Family Reference Manual Section 8 Interrupts

dspic33e/pic24e ファミリリファレンスマニュアル.1 はじめに Note: dspic33e/pic24e の割り込みコントローラは CPU に対する多数の周辺モジュールからの割り込み要求の中から 最も優先度の高い 1 つの割り込み要求を選択します dspic33e/pic24e 本モ

PIC24F Family Reference Manual, Section 9 Watchdog Timer (WDT)

PIC10(L)F320/322 Product Brief

AN1019 そのような配慮として 下記の基本的ガイドラインに沿って 可能な限り 環境条件または動作条件を制限する必要があります アプリケーションの温度を可能な限り下げる アプリケーションの電圧 ( または EEPROM の VCC 電圧 ) を可能な限り下げる 書き込みバイト数を可能な限り少なくす

Timers_JP.fm

ヒント 2: CWG を使ったハーフブリッジまたはフルブリッジ回路の駆動 ハーフブリッジまたはフルブリッジモータ回路を駆動するために多ピンマイクロコントローラは必ずしも必要ではありません PWM モジュールと CWG モジュールを組み合わせると 少ピンデバイスでも駆動できます 図 2: CWG によ

Manchester Decoder Using the CLC and NCO

PICF/LF1847 表 1: デバイス PICF/LF1847 ファミリの各製品 プログラムメモリフラッシュ ( ワード ) データ EEPROM ( バイト ) SRAM ( バイト ) I/O 10 ビット A/D (ch) タイマ 8/ ビット EUSART MSSP CCP/ ECCP

Microsoft PowerPoint - kougi7.ppt

SMSC LAN8700 Datasheet

SMSC LAN8700 Datasheet

スライド 1

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )

PowerPoint プレゼンテーション

a.fm

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

スライド 1

Microchip Capacitive Proximity Design Guide

AN2754 USB-to-I2C Bridging with USB7002, USB7050, USB7051, and USB7052 Hubs

表 1: ファミリの各製品 デバイス (1) プログラムメモリ バイトワード SRAM ( バイト ) データメモリ データ EEPROM ( バイト ) ピン数 I/O 10 ビット A/D チャンネル コンパレータ CCP/ ECCP BOR/LVD CTMU MSSP EUSART タイマ 8

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

TB3179 メモリ保護ユニット (MPU) の設定方法 はじめに メモリ保護ユニット (MPU) は Cortex -M7 コアがメモリ保護のために備えているオプションのコンポーネントです MPU はメモリマップを分割し それぞれにアクセス権とルールを設定します 本書では Cortex-M7 ベー

PIC24F Family Reference Manual Section 2

DALI App. Note

スライド 1

USB.mif

JPN_SENT 16 FRM.fm

B MPLAB XC HPA Renewal Instructions.book

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

スライド 1

Multi-Tool Design Advisory

スライド 1

実習内容 PIC18C242 のポート B に接続した LED を点滅させます ( 他の実習と同じ内容です ) 8 個の LED に表示される値が +3 ずつインクリメントします MPLAB を使って MPASM アセンブラのソース ファイルをアセンブルします MPLAB とソース ファイルは配布し

計算機アーキテクチャ

Cortex -M キャッシュコントローラを使って決定論的コード性能を達成する方法 TB3186 はじめに マイクロコントローラベース (MCU) の組み込みアプリケーションでは ソフトウェアは不揮発性メモリに保存して実行します この不揮発性メモリとは 通常はフラッシュメモリです フラッシュメモリは

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

Using L1 Cache on PIC32MZ Devices.recover.fm

QuartusII SOPC_Builderで利用できるGPIF-AVALONブリッジとは?

PowerPoint プレゼンテーション

スライド 1

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

TB3172 Cortex -M7 マイクロコントローラの XDMAC を使ってオーディオアプリケーションにピンポンバッファリングを実装する方法 はじめに オーディオシステムアプリケーションでは リアルタイムシステムに関する代表的なプロデューサ / コンシューマ問題が発生する可能性があります タイミ

【注意事項】RX Driver Package、 RXファミリ RTC モジュール Firmware Integration Technology

AN1817 Using a Hardware or Software CRC with Enhanced Core PIC16F1XXX in Class B Applications

AN424 Modbus/TCP クイックスタートガイド CIE-H14

三菱電機マイコン機器ソフトウエア株式会社

スライド 1

Notes and Points for TMPR454 Flash memory

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

スライド 1

世界最高水準の 8/16 ビット PIC マイクロコントローラの伝統を継承し PIC32 ファミリ誕生は 32 ビットの性能と大容量のメモリで複雑化を続ける組み込みシステム設計の課題を解決します 高性能と大容量メモリ RTOS タッチパネル 複雑なアプリケーション向け MHz 1.56 DMIPS

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

Using RN4020 for Bluetooth Smart Communication.fm

Jan/25/2019 errata_c17m11_10 S1C17 マニュアル正誤表 項目 リセット保持時間 対象マニュアル発行 No. 項目ページ S1C17M10 テクニカルマニュアル システムリセットコントローラ (SRC) 特性 19-3 S1C17M20/M

Sample Rate Conversion Library for PIC32 User’s Guide

CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

Polycom RealConnect for Microsoft Office 365

PowerPoint Presentation

DS01149C_JP

デジタル シグナル コントローラ ソリューション マイクロチップ社の世界最高水準の8ビットPIC マイクロコントローラの伝統を継承した 16ビットdsPIC デジタル シグナル コントローラ(DSC)の幅広い製品ラインナップは システム コストの低減と効率向上によって 要求の厳しいアプリケーションの

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

ヤマハDante機器と他社AES67機器の接続ガイド

MPLAB Code Configurator User’s Guide

ex05_2012.pptx

ソフトウェア基礎技術研修

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設

Transcription:

注意 : この日本語版文書は参考資料としてご利用ください 最新情報は必ずオリジナルの英語版をご参照願います セクション 53. 割り込み ( パート VI) ハイライト 本セクションには以下の主要項目を記載しています 53.1 はじめに... 53-2 53.2 ノンマスカブルトラップ... 53-8 53.3 割り込み処理タイミング... 53-13 53.4 割り込み制御 / ステータスレジスタ... 53-16 53.5 割り込みの設定手順... 53-42 53.6 レジスタマップ... 53-45 53.7 設計のヒント... 53-46 53.8 関連アプリケーションノート... 53-47 53.9 改訂履歴... 53-48 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-1

dspic33f/pic24h ファミリリファレンスマニュアル 53.1 はじめに このデータシートには 以下のデバイスに固有の情報が記載されています dspic33fj16gp101 dspic33fj16gp102 dspic33fj16mc101 dspic33fj16mc102 dspic33f/pic24h の割り込みコントローラモジュールは 多数の周辺モジュールの割り込み要求信号を dspic33f/pic24h CPU への 1 つの割り込み要求信号に集約します このモジュールには以下のような特長があります 最大 8 個のプロセッサ例外とソフトウェアトラップ ユーザ選択可能な 7 レベルの優先度 最大 126 個のベクタを持つ割り込みベクタテーブル (IVT) 割り込みまたは例外要因の各々に一意のベクタ ユーザ指定優先度内で固定された優先度 デバッグをサポートする代替割り込みベクタテーブル (AIVT) 固定された割り込みエントリとリターンレイテンシ 53.1.1 割り込みベクタテーブル 図 53-1 に示すように 割り込みベクタテーブル (IVT) はプログラムメモリの 0x000004 から始まります IVT は 8 個のノンマスカブルトラップベクタと最大 118 個の割り込み要因からなる 126 個のベクタを格納します 通常 各割り込み要因には固有のベクタが割り当てられます 各割り込みベクタは 24 ビット幅のアドレスを格納します 各割り込みベクタ位置へ書き込まれた値は 対応する割り込みサービスルーチン (ISR) の開始アドレスを指します 53.1.2 代替割り込みベクタテーブル 代替割り込みベクタテーブル (AIVT) は IVT の直後に配置されます ( 図 53-1 参照 ) AIVT へアクセスするには 割り込み制御レジスタ 2 (INTCON2<15>) の代替割り込みベクタテーブルイネーブルビット (ALTIVT) を使います ALTIVT ビットをセットすると 全ての割り込みと例外の処理は既定値ベクタの代わりに代替ベクタを使用します 代替ベクタは既定値ベクタと同様に配置されます AIVT は 割り込みベクタを書き換えずにアプリケーションとサポート環境間の切り換えを可能にする事によって エミュレーションとデバッグをサポートします この機能を使用すると 複数の異なるソフトウェアアルゴリズムを評価するために 実行中にアプリケーションを切り換える事もできます AIVT を使用しない場合 IVT で使用するアドレスと同じアドレスを AIVT へ書き込む必要があります 53.1.3 リセットシーケンス 割り込みコントローラはリセット処理には関与しないため デバイスリセットは厳密には例外処理ではありません dspic33f/pic24h は リセット時にレジスタをクリアしてプログラムカウンタ (PC) を強制的にゼロに設定した後に 0x000000 からプログラムの実行を開始します ユーザアプリケーションは このリセットアドレスに GOTO 命令を書き込む事によって プログラムの実行を適当な起動ルーチンへリダイレクトできます Note: IVT および AIVT 内の未実装または未使用ベクタ位置には RESET 命令を含む既定値の割り込みハンドラルーチンのアドレスを書き込む必要があります DS70633A_JP - p. 53-2 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) 図 53-1: 割り込みベクタテーブル Decreasing Natural Order Priority IVT AIVT Reset GOTO Instruction 0x000000 Reset GOTO Address 0x000002 Reserved 0x000004 Oscillator Fail Trap Vector : Address Error Trap Vector : Stack Error Trap Vector : Math Error Trap Vector : Reserved : Reserved : Reserved : Interrupt Vector 0 0x000014 Interrupt Vector 1 : ~ : ~ : ~ : Interrupt Vector 52 0x00007C Interrupt Vector 53 0x00007E Interrupt Vector 54 0x000080 ~ ~ ~ Interrupt Vector 116 0x0000FC Interrupt Vector 117 0x0000FE Reserved 0x000100 Reserved 0x000102 Reserved : Oscillator Fail Trap Vector : Address Error Trap Vector : Stack Error Trap Vector : Math Error Trap Vector : Reserved : Reserved : Reserved : Interrupt Vector 0 0x000114 Interrupt Vector 1 : ~ : ~ : ~ : Interrupt Vector 52 0x00017C Interrupt Vector 53 0x00017E Interrupt Vector 54 0x000180 ~ : ~ : ~ : Interrupt Vector 116 : Interrupt Vector 117 0x0001FE Start of Code 0x000200 See Table 29-1 for Interrupt Vector details 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-3

dspic33f/pic24h ファミリリファレンスマニュアル 表 53-1: 割り込みベクタ ベクタ番号 IVT アドレス AIVT アドレス 割り込み要因 0 0x000004 0x000104 予約済み 1 0x000006 0x000106 オシレータ障害 2 0x000008 0x000108 アドレスエラー 3 0x00000A 0x00010A スタックエラー 4 0x00000C 0x00010C 算術エラー 5 0x00000E 0x00010E 予約済み 6 0x000010 0x000110 予約済み 7 0x000012 0x000112 予約済み 8 0x000014 0x000114 INT0 外部割り込み 0 9 0x000016 0x000116 IC1 入力コンペア 1 10 0x000018 0x000118 OC1 出力コンペア 1 11 0x00001A 0x00011A T1 Timer1 12 0x00001C 0x00011C 予約済み 13 0x00001E 0x00011E IC2 入力キャプチャ 2 14 0x000020 0x000120 OC2 出力コンペア 2 15 0x000022 0x000122 T2 Timer2 16 0x000024 0x000124 T3 Timer3 17 0x000026 0x000126 SPI1E SPI1 エラー 18 0x000028 0x000128 SPI1 SPI1 転送完了 19 0x00002A 0x00012A U1RX UART1 受信 20 0x00002C 0x00012C U1TX UART1 送信 21 0x00002E 0x00012E AD1 ADC1 変換完了 22 0x000030 0x000130 予約済み 23 0x000032 0x000132 予約済み 24 0x000034 0x000134 SI2C1 I2C1 スレーブイベント 25 0x000036 0x000136 MI2C1 I2C1 マスタイベント 26 0x000038 0x000138 CMP コンパレータ割り込み 27 0x00003A 0x00013A CN 状態変化通知割り込み 28 0x00003C 0x00013C INT1 外部割り込み 1 29 0x00003E 0x00013E 予約済み 30 0x000040 0x000140 予約済み 31 0x000042 0x000142 予約済み 32 0x000044 0x000144 予約済み 33 0x000046 0x000146 予約済み 34 0x000048 0x000148 予約済み 35 0x00004A 0x00014A 予約済み 36 0x00004C 0x00014C 予約済み 37 0x00004E 0x00014E INT2 外部割り込み 2 38 0x000050 0x000150 予約済み 39 0x000052 0x000152 予約済み 40 0x000054 0x000154 予約済み 41 0x000056 0x000156 予約済み 42 0x000058 0x000158 予約済み 43 0x00005A 0x00015A 予約済み 44 0x00005C 0x00015C 予約済み 45 0x00005E 0x00015E IC3 - 入力キャプチャ 3 46 0x000060 0x000160 予約済み 47 0x000062 0x000162 予約済み DS70633A_JP - p. 53-4 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) 表 53-1: 割り込みベクタ ( 続き ) ベクタ番号 IVT アドレス AIVT アドレス割り込み要因 48 0x000064 0x000164 予約済み 49 0x000066 0x000166 予約済み 50 0x000068 0x000168 予約済み 51 0x00006A 0x00016A 予約済み 52 0x00006C 0x00016C 予約済み 53 0x00006E 0x00016E 予約済み 54 0x000070 0x000170 予約済み 55 0x000072 0x000172 予約済み 56 0x000074 0x000174 予約済み 57 0x000076 0x000176 予約済み 58 0x000078 0x000178 予約済み 59 0x00007A 0x00017A 予約済み 60 0x00007C 0x00017C 予約済み 61 0x00007E 0x00017E 予約済み 62 0x000080 0x000180 予約済み 63 0x000082 0x000182 予約済み 64 0x000084 0x000184 予約済み 65 0x000086 0x000186 PWM1 PWM1 周期一致 66 0x000088 0x000188 予約済み 67 0x00008A 0x00018A 予約済み 68 0x00008C 0x00018C 予約済み 69 0x00008E 0x00018E 予約済み 70 0x000090 0x000190 RTCC リアルタイムクロック / カレンダ 71 0x000092 0x000192 FLTA1 PWM1 フォルト A 72 0x000094 0x000194 予約済み 73 0x000096 0x000196 U1E UART1 エラー 74 0x000098 0x000198 予約済み 75 0x00009A 0x00019A 予約済み 76 0x00009C 0x00019C 予約済み 77 0x00009E 0x00019E 予約済み 78 0x0000A0 0x0001A0 予約済み 79 0x0000A2 0x0001A2 予約済み 80 0x0000A4 0x0001A4 予約済み 81 0x0000A6 0x0001A6 予約済み 82 0x0000A8 0x0001A8 予約済み 83 0x0000AA 0x0001AA 予約済み 84 0x0000AC 0x0001AC 予約済み 85 0x0000AE 0x0001AE CTMU 充電時間計測ユニット 86-125 0x0000B0-0x0000FE 0x0001B0-0x0001FE 予約済み 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-5

dspic33f/pic24h ファミリリファレンスマニュアル 53.1.4 CPU 優先度ステータス CPU は 16 段階の優先度 (0 ~ 15) で動作できます 例外処理を起動するには 割り込みまたはトラップ要因の優先度がその時点の CPU 優先度より高い必要があります 周辺モジュール割り込み要因と外部割り込み要因は 優先度 0 ~ 7 に設定できます CPU 優先度 8 ~ 15 は トラップ要因向けに予約されています トラップとは ハードウェアとソフトウェアの障害検出を目的とするノンマスカブル割り込み要因です (53.2 ノンマスカブルトラップ 参照 ) 各トラップ要因の優先度は固定されており 1 つの優先度には 1 つのトラップだけが割り当てられます 優先度 0 に設定された割り込み要因は CPU 優先度よりも高くなる事がないため 実質的に無効化されます CPU の現在の優先度は 下記のステータスビットにより示されます CPU ステータスレジスタ (SR<7:5>) の CPU 割り込み優先度 (IPL<2:0>) ステータスビット コア制御 (CORCON<3>) レジスタの CPU 割り込み優先度 3 (IPL3) ステータスビット IPL<2:0> ステータスビットは読み書き可能です 従ってユーザアプリケーションは これらのビットで CPU 優先度を変更する事によって 一定の優先度未満の割り込み要因を無効にできます 例えば IPL<2:0> = 011 に設定した場合 優先度 0 ~ 3 に設定されたいずれの要因も CPU に対して割り込む事はできません トラップイベントは 全てのユーザ割り込み要因よりも高い優先度を持ちます IPL3 ビットがセットされている場合 トラップイベントが発生中です ユーザアプリケーションは IPL3 ビットをクリアできますが セットする事はできません アプリケーションによっては トラップ発生時に IPL3 ビットをクリアして トラップの原因となった命令の直後の命令とは異なる命令に分岐させる必要があります IPL<2:0> = 111 に設定する事により 全てのユーザ割り込み要因を無効にできます Note: 割り込みのネスティングを無効にした場合 IPL<2:0> ビットは読み出し専用となります 詳細は 53.2.4.2 割り込みのネスティング を参照してください 53.1.5 割り込み優先度 周辺モジュールの割り込み要因には 7 段階の優先度のいずれか 1 つを割り当てる事ができます ユーザアプリケーションから割り当てる事ができる各割り込みの優先度制御ビットは IPCx レジスタの各ニブルの下位 3 ビットに格納されます 各ニブルの bit 3 は未実装であり 0 として読み出されます これらのビットは各割り込みの優先度を定義します 割り当て可能な優先度は 1 ( 最低優先度 ) ~ 7 ( 最高優先度 ) です ある割り込み要因に対応する IPC ビットを全てクリアすると その割り込み要因は実質的に無効になります Note: 実行中に割り込み優先度の設定を変更する場合 アプリケーションプログラムは変更動作中の割り込みを無効にする必要があります 割り込みを無効にしないと予期せぬ結果が生じる可能性があります 複数の割り込み要求に対して同一の優先度を割り当てる事ができます 同じユーザ割り当て優先度を持つ複数の割り込み間の競合を解消するために 各割り込み要因には IVT 内の並び順に基づく自然順序優先度が割り当てられています 表 53-1 に IVT 内の各割り込み要因の配置を示します 番号が若い割り込みベクタほど高い自然順序優先度を持ちます 保留中の割り込み要因の総合優先度は まずユーザアプリケーションが IPCx レジスタで割り当てた優先度に従い これが同一である場合には IVT 内の自然順序優先度に従って決まります 自然順序優先度は 同一のユーザアプリケーション割り当て優先度を持つ複数の割り込みが同時に保留状態にある場合にのみ それらの競合を回避するために使用されます 優先度の競合が解消して例外処理が開始した後では これより高いユーザアプリケーション割り当て優先度を持つ割り込み要因だけが CPU に対して割り込む事ができます すなわち 例外処理実行中に 同一ユーザアプリケーション割り当て優先度を持ち自然順序優先度がより高い割り込みが新たに要求されても それらは実行中の例外処理が完了するまで全て保留されます DS70633A_JP - p. 53-6 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) 各例外要因に対して 7 つの割り当て優先度のいずれかを設定する事により ユーザアプリケーションは自然順序優先度の低い割り込みに非常に高い総合優先度を持たせる事ができます 例えば Timer2 に優先度 7 を設定し 外部割り込み 0 (INT0) に優先度 1 を設定すれば INT0 の優先度を実質的に非常に低くする事ができます Note: dspic33f/pic24h の IVT 内で使用可能な周辺モジュールと割り込み要因はデバイスごとに異なります 本書では dspic33f/pic24h ファミリの全デバイスを包括した全ての割り込み要因を記載しています 詳細は各デバイスのデータシートを参照してください 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-7

dspic33f/pic24h ファミリリファレンスマニュアル 53.2 ノンマスカブルトラップ トラップはノンマスカブルでネスト可能な割り込みです トラップの優先度は固定されています トラップを使用すると アプリケーションのデバッグ中と稼働中の異常動作を修正できます ユーザアプリケーションにおいてトラップエラー条件を修正する必要がない場合 トラップベクタにデバイスリセット用ソフトウェアルーチンのアドレスを書き込んでおく必要があります トラップエラーを修正する場合 ユーザアプリケーションで トラップ条件修正用サービスルーチンのアドレスをトラップベクタに書き込みます dspic33f/pic24h には 以下の 4 つのノンマスカブルトラップ要因が実装されています オシレータ障害トラップ スタックエラートラップ アドレスエラートラップ 算術エラートラップ多くのトラップ条件では トラップを引き起こした命令の実行が完了してから例外処理が開始します 従って ユーザアプリケーションはトラップを引き起こした命令動作の修正が必要です 各トラップ要因は IVT 内の位置によって決まる固定の優先度を持ちます オシレータ障害トラップが最高の優先度を持ち 算術エラートラップが最低の優先度を持ちます ( 図 53-1 参照 ) さらに トラップ要因は ハード トラップと ソフト トラップの 2 つに分類されます 53.2.1 ソフトトラップ 算術エラートラップ ( 優先度 11) とスタックエラートラップ ( 優先度 12) はソフトトラップ要因に分類されます ソフトトラップは IVT 内の順位によって優先度が決まるノンマスカブル割り込み要因と同様に扱う事ができます ソフトトラップは割り込みと同様に処理され 例外処理の前に検出と認識のために 2 サイクルを要します 従って ソフトトラップが認識される前に別の命令が実行される可能性があります 53.2.1.1 スタックエラートラップ ( ソフトトラップ 優先度 12) スタックはリセット時に 0x0800 に初期化されます スタックポインタのアドレスが 0x0800 より低いと スタックエラートラップが発生します スタックポインタに関連付けられたスタックリミット (SPLIM) レジスタは リセット時に初期化されません SPLIM レジスタにワード書き込みをするまで スタックオーバーフローチェックは有効になりません W15 を用いてソースまたはデスティネーションポインタとして生成された全ての実効アドレス (EA) は SPLIM レジスタの値と比較されます EA が SPLIM レジスタの内容より大きい場合にスタックエラートラップが発生します また EA の計算結果がデータ領域の終端 (0xFFFF) を超えた場合にも スタックエラートラップが発生します スタックエラーは スタックエラートラップ (STKERR) ステータスビット (INTCON1<2>) をポーリングする事により ソフトウェア内で検出できます トラップサービスルーチンの再実行を避けるために プログラムがトラップから戻る前に RETFIE ( 割り込みからの戻り ) 命令を使って ソフトウェア内で STKERR ステータスフラグをクリアする必要があります 53.2.1.2 算術エラートラップ ( ソフトトラップ 優先度 11) 下記のいずれかのイベントによって算術エラートラップが発生します アキュムレータ A のオーバーフロー アキュムレータ B のオーバーフロー アキュムレータの致命的オーバーフロー ゼロ除算 ± 16 ビットを超えるアキュムレータシフト (SFTAC) 動作 INTCON1 レジスタの下記 3 ビットの設定により 3 種類のアキュムレータオーバーフロートラップを有効にできます アキュムレータ A オーバーフロートラップフラグ (OVATE) 制御ビット (INTCON1<10>) は アキュムレータ A のオーバーフローイベントに対するトラップを有効にします アキュムレータ B オーバーフロートラップフラグ (OVBTE) 制御ビット (INTCON1<9>) は アキュムレータ B のオーバーフローイベントに対するトラップを有効にします DS70633A_JP - p. 53-8 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) 致命的オーバーフロートラップイネーブル (COVTE) 制御ビット (INTCON1<8>) は いずれかのアキュムレータで致命的オーバーフローが発生した場合のトラップを有効にします このトラップが検出されると INTCON1 レジスタの対応する以下の ERROR ビットがセットされます - アキュムレータ A オーバーフロートラップフラグ (OVAERR) - アキュムレータ B オーバーフロートラップフラグ (OVBERR) - アキュムレータ A 致命的オーバーフロートラップイネーブル (COVAERR) - アキュムレータ B 致命的オーバーフロートラップイネーブル (COVBERR) アキュムレータ A ( または B) オーバーフローイベントとは アキュムレータ A ( または B) で bit 31 からの桁上げが発生した事を意味します 31 ビット飽和モードが有効のアキュムレータでは オーバーフローは発生しません 致命的アキュムレータオーバーフローとは いずれかのアキュムレータで bit 39 からの桁上げが発生した事を意味します アキュムレータ飽和モード (31 ビットまたは 39 ビット ) が有効の場合 致命的オーバーフローは発生しません ゼロ除算トラップは無効にできません ゼロ除算は 除算命令を実行する REPEAT ループの初回実行時にチェックされます ゼロ除算トラップが検出されると 算術エラーステータス (DIV0ERR) ビット (INTCON1<6>) がセットされます アキュムレータシフトトラップは無効にできません SFTAC 命令を使用すると リテラル値またはいずれかのワーキングレジスタの値だけアキュムレータをシフトできます このシフト値が ± 16 ビットを超えると算術エラートラップが発生し アキュムレータシフトエラーステータス (SFTAERR) ビット (INTCON1<7>) がセットされます この場合 SFTAC 命令は実行されますが シフト結果は対象のアキュムレータに書き込まれません 算術エラートラップは 算術エラーステータス (MATHERR) ビット (INTCON1<4>) をポーリングする事により ソフトウェア内で検出できます トラップサービスルーチンの再実行を避けるために プログラムがトラップから戻る前に RETFIE 命令を使って ソフトウェア内で MATHERR ステータスフラグをクリアする必要があります MATHERR ステータスビットをクリアする前に トラップの発生原因となった全ての条件をクリアする必要があります アキュムレータオーバーフローによるトラップが発生した場合 アキュムレータオーバーフロー (OA と OB) ステータスビット (SR<15:14>) をクリアする必要があります OA および OB ステータスビットは読み出し専用です 従ってユーザアプリケーションは これらをクリアするために オーバーフローが発生したアキュムレータ上でダミー演算 ( 0 加算等 ) を実行する必要があります これにより ハードウェアが OA または OB ステータスビットをクリアします 53.2.2 ハードトラップ ハードトラップは優先度 13 ~ 15 の例外を含みます アドレスエラー ( 優先度 13) とオシレータエラー ( 優先度 14) はハードトラップに分類されます ソフトトラップと同様に ハードトラップもノンマスカブル割り込み要因です ただしソフトトラップとは異なり ハードトラップはトラップを発生した命令の実行後に CPU のコード実行を強制的に停止します 通常のプログラム実行フローは トラップが認識され処理されるまで再開されません 53 割り込み ( パート VI) 53.2.2.1 ハードトラップの優先度と競合 トラップ処理中に優先度の高いトラップが発生すると 処理中のトラップは中断され 高優先度のトラップが認識 / 処理されます 中断されたトラップは 高優先度のトラップが終了するまで保留されます 発生した各ハードトラップが認識 / 処理されるまで コードのタイプに関わらず実行が再開される事はありません あるハードトラップが保留中 / 認識済み / 実行中のいずれかである時に これよりも低い優先度のハードトラップが発生した場合 高優先度トラップの処理が完了するまで低優先度トラップを認識する事ができないため ハードトラップの競合が発生します ハードトラップ競合条件では デバイスが自動的にリセットされます リセットが発生すると リセット制御レジスタ ( リセットモジュール内の RCON<15>) のトラップリセットフラグ (TRAPR) ステータスビットがセットされるため ソフトウェア内で検出可能です 53.2.2.2 オシレータ障害トラップ ( ハードトラップ 優先度 14) オシレータ障害トラップイベントは下記条件により発生します フェイルセーフクロックモニタ (FSCM) 有効時に システムクロック源の喪失を検出した場合 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-9

dspic33f/pic24h ファミリリファレンスマニュアル PLL を使って動作中に PLL ロックの喪失を検出した場合 FSCM 有効時に PLL がパワーオンリセット (POR) でロックに失敗した場合オシレータ障害トラップイベントは オシレータ障害トラップ (OSCFAIL) ステータスビット (INTCON1<1>) またはクロック障害 (CF) ステータスビット ( オシレータモジュール内の OSCCON<3>) をポーリングする事により ソフトウェア内で検出可能です トラップサービスルーチン (TSR) の再実行を避けるために プログラムがトラップから戻る前に RETFIE 命令を使って OSCFAIL ステータスフラグをクリアする必要があります 53.2.2.3 アドレスエラートラップ ( ハードトラップ 優先度 13) アドレスエラートラップは 以下のような動作条件において発生する可能性があります 不正な位置でデータワードフェッチを試みた場合 この条件は 実効アドレスの最下位ビット (LSb) を 1 としたワードアクセス命令を実行した場合に発生します dspic33f/pic24h の CPU によるワードアクセスは 必ず偶数アドレスの境界位置を指定する必要があります ビット操作命令において 実効アドレスの最下位ビット (LSb) が 1 である間接アドレッシングモードを使った場合 未実装のデータアドレス空間からのデータフェッチを試みた場合 BRA #literal 命令または GOTO #literal 命令を実行し literal が未実装プログラムメモリアドレスであった場合 プログラムカウンタ値が未実装のプログラムメモリアドレスに変更された後に命令を実行した場合 プログラムカウンタは 値をスタックへ書き込んだ後に RETURN 命令を実行する事により変更できます アドレスエラートラップが発生すると データの破損を防ぐためにデータ空間への書き込みが禁止されます アドレスエラーは ADDRERR ステータスビット (INTCON1<3>) をポーリングする事によりソフトウェア内で検出できます トラップサービスルーチンの再実行を避けるために プログラムがトラップから戻る前に RETFIE 命令を使って ソフトウェア内で ADDRERR ステータスフラグをクリアする必要があります Note: MAC クラスの命令では データ空間が X 領域と Y 領域に分割されます これらの命令では Y 領域全体が未実装の X 領域として X 領域全体が未実装の Y 領域として扱われます 53.2.3 割り込み命令の無効化 DISI ( 割り込み無効化 ) 命令を使うと 最大 16384 命令サイクル間の割り込みを無効にできます この命令は 処理時間が重視されるコードセグメントを実行する際に便利です DISI 命令は優先度 1 ~ 6 の割り込みだけを無効にします 優先度 7 の割り込みと全てのトラップイベントは DISI 命令がアクティブであっても CPU に割り込む事ができます DISI 命令は CPU 内の割り込み無効化カウント (DISICNT) レジスタと連動します DISICNT レジスタがゼロ以外の時 優先度 1 ~ 6 の割り込みは無効です DISICNT レジスタは 命令サイクルごとに 1 つデクリメントされます DISICNT レジスタがゼロまでデクリメントされると 優先度 1 ~ 6 の割り込みが再度有効になります DISI 命令で指定する値には PSV アクセスや命令ストール等によって発生する全てのサイクルが含まれます DISICNT レジスタは 読み書き可能です ユーザアプリケーションで DISICNT レジスタをクリアすると カウントダウン終了前に DISI 命令を無効にできます DISICNT レジスタに値を書き込むか加算すると 割り込み無効期間を延長できます ただし DISICNT レジスタが既にゼロである場合にゼロ以外の値を書き込んでも 割り込みを無効にする事はできません 割り込みを無効にするには DISI 命令を実行する必要があります DISI 命令実行後に DISICNT がゼロ以外の値を格納している間であれば アプリケーションによって DISICNT の内容を変更して割り込み無効期間を延長できます DISI 命令実行の結果割り込みが無効になると DISI 命令 (DISI) ステータスビット (INTCON2<14>) がセットされます Note: DISI 命令を使用すると (CPU 優先度 7 以外の ) 全ユーザ割り込み要因を無効にできます DS70633A_JP - p. 53-10 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) 53.2.4 割り込み動作 全ての割り込みイベントフラグは命令サイクルごとにサンプリングされます 保留中の割り込み要求 (IRQ) は IFSx レジスタのフラグビット = 1 で示されます IRQ は 割り込みイネーブル (IECx) レジスタの対応するビットがセットされると割り込みを発生させます IRQ が検出された命令サイクルの残りの期間中に 保留中の全ての IRQ の優先度が評価されます CPU が IRQ に対応する際 実行中の命令は中断されません すなわち IRQ が検出された時点で実行中であった命令が完了してから ISR が実行されます IPL<2:0> ステータスビット (SR<7:5>) が示す現在のプロセッサ優先度よりも高いユーザ割り当て優先度を持つ保留 IRQ が存在すると プロセッサに対する割り込みが発生します この場合プロセッサは 下記の情報をソフトウェアスタックに保存します 現在のプログラムカウンタ (PC) 値 プロセッサステータスレジスタ (SRL) の下位バイト IPL3 ステータスビット (CORCON<3>) 上記の 3 つの値を使うと 戻り PC アドレス値 MCU ステータスビット 現在のプロセッサ優先度を自動的に保存できます これらの情報をスタックに保存した後 CPU はその保留割り込みの優先度を IPL<2:0> ビット位置に書き込みます この動作は RETFIE 命令によって ISR が終了するまでの間 その ISR の優先度以下の全ての割り込みを無効にします 図 53-2: 割り込みイベントのスタック動作 Stack Grows Toward Higher Address 15 PC<15:0> SR<7:0> <Free Word> PC<22:16> 0 W15 (before IRQ) W15 (after IRQ) This stack stores the IPL3 status bit (CORCON<3>) 53 割り込み ( パート VI) 53.2.4.1 割り込みからの戻り RETFIE 命令は プロセッサを割り込みシーケンス開始前の状態と優先度に戻すために PC 戻りアドレス IPL3 ステータスビット SRL レジスタをスタックから取り出します 53.2.4.2 割り込みのネスティング 既定値状態では割り込みのネスティングが可能です つまり 実行中の ISR よりも高いユーザアプリケーション割り当て優先度を持つ割り込み要因は その ISR に割り込む事ができます 割り込みのネスティングは 割り込みネスティングディセーブル (NSTDIS) 制御ビット (INTCON1<15>) をセットする事により無効にできます NSTDIS 制御ビットをセットすると 実行中の割り込みは常に IPL<2:0> = 111 に設定します ( すなわち CPU 優先度を強制的に 7 へ設定 ) この動作により RETFIE 命令が実行されるまで 他の割り込み要因は実質的に全てマスクされます 割り込みネスティングを無効にした場合 ユーザアプリケーション割り当て割り込み優先度は 保留中の割り込み間で競合を解消する以外の効果を持ちません 割り込みのネスティングを無効にした場合 IPL<2:0> ビット (SR<7:5>) は読み出し専用となります これにより ユーザソフトウェアが IPL<2:0> を 7 より低い値に設定し 実質的に割り込みのネスティングを再度有効にしてしまう事を防ぎます 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-11

dspic33f/pic24h ファミリリファレンスマニュアル 53.2.5 スリープとアイドルからの復帰 IECx レジスタの対応する制御ビットにより個々に有効にされた割り込み要因は いずれもプロセッサをスリープまたはアイドルモードから復帰させられます ある要因の割り込みステータスフラグがセットされ かつ IEC 制御レジスタの対応するビットによってその割り込み要因が有効にされている場合 復帰信号が dspic33f/pic24h CPU へ送られます デバイスがスリープまたはアイドルモードから復帰すると 以下のいずれかの動作が発生します 割り込み要因の優先度が現在の CPU 優先度よりも高い場合 プロセッサは割り込みを処理し その割り込み要因の ISR へ分岐します その要因に対してユーザアプリケーションが割り当てた割り込み優先度が現在の CPU 優先度以下である場合 プロセッサは CPU をスリープまたはアイドルモードへ移行させた PWRSAV 命令の直後の命令から動作を再開します Note: CPU 優先度 0 を割り当てられたユーザ割り込み要因は スリープまたはアイドルモードから CPU を復帰できません その割り込み要因は実質的に無効であるためです 割り込みを復帰要因として使用するには その割り込みの CPU 優先度をユーザアプリケーションで 1 以上に設定する必要があります 53.2.6 A/D コンバータの外部変換要求 INT0 外部割り込み要求ピンは A/D コンバータ用の外部変換要求信号ピンとしても使用します INT0 割り込み要因ではエッジ極性をプログラム可能です この機能は A/D コンバータ外部変換要求でも使用できます 53.2.7 外部割り込みサポート dspic33f/pic24h は 3 つの外部割り込みピン要因 (INT0 ~ INT2) をサポートします 各外部割り込みピンは 割り込みイベント検出用のエッジ検出回路を備えます INTCON2 レジスタには 各エッジ検出回路の極性を選択するための 3 つの制御ビット (INT0EP ~ INT2EP) があります これらのビットにより 各外部割り込みピンの極性 ( 立ち上がり / 立ち下がりのどちらのエッジで CPU に割り込むか ) を個別に設定できます 詳細はレジスタ 53-4 を参照してください DS70633A_JP - p. 53-12 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) 53.3 割り込み処理タイミング 53.3.1 1 サイクル命令に対する割り込みレイテンシ 図 53-3に 1サイクル命令の実行中に周辺モジュール割り込みが発生した場合のイベントシーケンスを示します 割り込み処理には 4 命令サイクルを要します 図 53-3 では これらの各サイクルに番号を振ってあります 周辺モジュール割り込みが発生すると 命令サイクル1 中に割り込みフラグステータスビットがセットされます 現在の命令の実行はこのサイクル中に完了します 割り込み発生後の次の命令サイクル2では プログラムカウンタ (PC) と下位バイトステータス (SRL) レジスタの内容をテンポラリバッファレジスタに保存します 割り込み処理の命令サイクル2は 2 サイクル命令への割り込みシーケンスとの整合性を維持するために NOP 命令として実行されます (53.3.2 2 サイクル命令に対する割り込みレイテンシ 参照 ) 命令サイクル3では 割り込み要因のベクタテーブルアドレスを PC に書き込み ISR の開始アドレスをフェッチします 命令サイクル4では ISR アドレスを PC に書き込みます NOP 命令として実行し この間に ISR 内の先頭命令をフェッチします 図 53-3: 1 サイクル命令実行中に割り込みが発生した場合のタイミング TCY 1 2 3 4 PC INST Executed PC PC+2 Vector# 2000 (ISR) 2002 2004 2006 Fetch INST(PC-2) INST(PC) FNOP Vector FNOP ISR ISR + 2 ISR + 4 53 Interrupt Flag Status bit CPU Priority 4 4 4 4 6 6 6 6 割り込み ( パート VI) Peripheral interrupt event occurs at or before midpoint of this cycle Save PC in temporary buffer PUSH SRL and High 8 bits of PC (from temporary buffer) PUSH Low 16 bits of PC (from temporary buffer) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-13

dspic33f/pic24h ファミリリファレンスマニュアル 53.3.2 2 サイクル命令に対する割り込みレイテンシ 2 サイクル命令実行中の割り込みレイテンシは 1 サイクル命令の場合と同じです 割り込み処理のサイクル1と2を使うと 2 サイクル命令の動作を完了する事ができます 図 53-4 は 2 サイクル命令実行前のサイクル中に周辺モジュール割り込みイベントが発生した場合のタイミングチャートです 図 53-5 は 2 サイクル命令の第 1 サイクル実行中に周辺モジュール割り込みイベントが発生した場合のタイミングチャートです この場合の割り込み処理は1サイクル命令の場合 (53.3.1 1 サイクル命令に対する割り込みレイテンシ 参照 ) と同じです 図 53-4: 2 サイクル命令実行前のサイクル中に割り込みが発生した場合のタイミング TCY 1 2 3 4 PC PC PC+2 Vector# 2000 (ISR) 2002 2004 2006 INST Executed INST(PC-2) INST(PC) INST(PC) Fetch FNOP ISR 1st cycle 2nd cycle Vector ISR + 2 ISR + 4 Interrupt Flag Status bit CPU Priority 4 4 4 4 6 6 6 6 Peripheral interrupt event occurs at or before midpoint of this cycle Save PC in temporary buffer PUSH SRL and High 8 bits of PC (from temporary buffer) PUSH Low 16 bits of PC (from temporary buffer) 図 53-5: 2 サイクル命令の第 1 サイクル実行中に割り込みが発生した場合のタイミング TCY 1 2 3 4 PC PC PC + 2 Vector# 2000 (ISR) 2002 2004 2006 INST Executed INST(PC) 1st cycle INST(PC) 2nd cycle FNOP Fetch Vector FNOP ISR ISR + 2 ISR + 4 Interrupt Flag Status bit CPU Priority 4 4 4 4 6 6 6 6 Peripheral interrupt event occurs at or before midpoint of this cycle Save PC in temporary buffer PUSH SRL and High 8 bits of PC (from temporary buffer) PUSH Low 16 bits of PC (from temporary buffer) DS70633A_JP - p. 53-14 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) 53.3.3 割り込みからの戻り 割り込みから戻るには プログラムで RETFIE 命令を呼び出す必要があります RETFIE 命令のサイクル 1 と 2 では PC と SRL レジスタの内容をスタックからポップします サイクル 3 では 更新されたプログラムカウンタが指すアドレスの命令をフェッチします このサイクルは NOP 命令として実行します サイクル 4 では 割り込み発生位置からプログラム実行を再開します 図 53-6: 割り込みから戻る場合のタイミング TCY 1 2 3 4 INST Executed ISR last instruction RETFIE RETFIE FNOP PC 2nd cycle PC + 2 PC + 4 PC ISR ISR + 2 PC PC + 2 PC + 4 PC + 6 CPU Priority 6 6 6 4 4 4 4 53.3.4 割り込みレイテンシに関する特殊条件 dspic33f/pic24h を使うと 周辺モジュール割り込み要因が保留になる際に 実行中の命令を完了させる事ができます 1 サイクル命令と 2 サイクル命令のいずれも割り込みレイテンシは同じです しかし 割り込みの発生タイミングによっては 割り込みレイテンシが 1 サイクル増える場合があります アプリケーションでレイテンシの維持が重要である場合 下記の動作を避ける必要があります PSV を使ってプログラムメモリ空間内の値にアクセスする MOV.D 命令の実行 2 サイクル命令に対する命令ストールサイクルの追加 PSV アクセスを実行する 1 サイクル命令に対する命令ストールサイクルの追加 PSVを使ってプログラムメモリ空間内の値にアクセスするビットテストおよびスキップ命令 (BTSC BTSS) 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-15

dspic33f/pic24h ファミリリファレンスマニュアル 53.4 割り込み制御 / ステータスレジスタ 割り込みコントローラは下記のレジスタを使います INTCON1 INTCON2 レジスタ下記のレジスタはグローバル割り込み機能を制御します - INTCON1 は 割り込みネスティングディセーブル (NSTDIS) ビットと プロセッサトラップ要因の制御フラグとステータスフラグを格納します - INTCON2 は 外部割り込み要求信号の挙動と代替ベクタテーブルの使用を制御します IFSx: 割り込みフラグステータスレジスタ全ての割り込み要求フラグは IFSx レジスタに格納されます ( x はレジスタ番号 ) 各割り込み要因はそれぞれ 1 つのステータスビットを持ちます このビットは 周辺モジュールまたは外部信号によってセットされ ソフトウェアによってクリアされます IECx: 割り込みイネーブル制御レジスタ全ての割り込みイネーブル制御ビットは IECx レジスタに格納されます ( x はレジスタ番号 ) これらの制御ビットを使って 周辺モジュールまたは外部信号からの割り込みを個別に有効化できます IPCx: 割り込み優先度制御レジスタ各ユーザ割り込み要因には 7 段階の優先度のいずれかを割り当てる事ができます IPC レジスタは 各割り込み要因の優先度を設定します SR: CPU ステータスレジスタ SR そのものは割り込みコントローラハードウェアではありませんが 現在の CPU 優先度を示す IPL<2:0> ステータスビット (SR<7:5>) を格納しています ユーザアプリケーションは この IPL ビットに書き込む事によって 現在の CPU 優先度を変更できます CORCON: コア制御レジスタ CORCON レジスタそのものは割り込みコントローラハードウェアではありませんが 現在の CPU 優先度を示す IPL3 ステータスビットを格納しています IPL3 は読み出し専用ビットであるため ユーザアプリケーションからトラップイベントをマスクする事はできません INTTREG: 割り込み制御 / ステータスレジスタ INTTREG レジスタは 対応する割り込みベクタ番号と新規の CPU 割り込み優先度を格納します これらは INTTREG レジスタのベクタ番号 (VECNUM<6:0>) と割り込みレベル (ILR<3:0>) のビットフィールドにラッチされます 新しい割り込み優先度とは保留割り込みの優先度です 各レジスタの詳細は この後のセクションを参照してください Note: 割り込み要因の総数とタイプはデバイスごとに異なります 詳細は各デバイスのデータシートを参照してください 53.4.1 制御レジスタに対する割り込みの割り当て 割り込み要因は 表 53-1 の順番に従って IFSx IECx 0 IPCx レジスタに割り当てられます 例えば INT0 ( 外部割り込み 0) 要因のベクタ番号と自然順序優先度は共に 0 です 従って外部割り込み 0 のフラグステータス (INT0IF) ビットは IFS0<0> 内に格納されます INT0 割り込みは IEC0 レジスタの bit 0 をイネーブルビットとして使用します IPC0<2:0> ビットは INT0 割り込みの優先度を割り当てます DS70633A_JP - p. 53-16 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-1: SR: CPU ステータスレジスタ R-0 R-0 R/C-0 R/C-0 R-0 R/C-0 R-0 R/W-0 OA OB SA SB OAB SAB DA DC R/W-0 R/W-0 R/W-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0 IPL<2:0> RA N OV Z C C = クリアのみ可能ビット R = 読み出し可能ビット U = 未実装ビット 0 として読み出し S = セットのみ可能ビット W = 書き込み可能ビット -n = POR 時の値 1 = ビットをセット 0 = ビットをクリア x = ビットは未知 bit 15-8 割り込みコントローラには使用せず (SR ビットに関する説明は セクション 2. CPU (DS70204) の SR レジスタを参照してください ) bit 7-5 IPL<2:0>: CPU 割り込み優先度ステータスビット (1,2) bit 4-0 111 = CPU 割り込み優先度は 7 (15) ユーザ割り込みは無効 110 = CPU 割り込み優先度は 6 (14) 101 = CPU 割り込み優先度は 5 (13) 100 = CPU 割り込み優先度は 4 (12) 011 = CPU 割り込み優先度は 3 (11) 010 = CPU 割り込み優先度は 2 (10) 001 = CPU 割り込み優先度は 1 (9) 000 = CPU 割り込み優先度は 0 (8) 割り込みコントローラには使用せず (SR ビットに関する説明は セクション 2. CPU (DS70204) の SR レジスタを参照してください ) Note 1: IPL<2:0> ビットは IPL<3> ビット (CORCON<3>) と連結して CPU 割り込み優先度を構成します カッコ内の値は IPL<3> = 1 の場合の IPL の値です IPL<3> = 1 の場合ユーザ割り込みは無効です 2: NSTDIS (INTCON1<15>) = 1 の場合 IPL<2:0> ステータスビットは読み出し専用です 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-17

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-2: CORCON: コア制御レジスタ U-0 U-0 U-0 R/W-0 R/W-0 R-0 R-0 R-0 US EDT DL<1:0> R/W-0 R/W-0 R/W-1 R/W-0 R/C-0 R/W-0 R/W-0 R/W-0 SATA SATB SATDW ACCSAT IPL3 PSV RND IF bit 15-4 割り込みコントローラには使用せず (CORCON ビットに関する説明は セクション 2. CPU (DS70204) の CORCON レジスタを参照してください ) bit 3 IPL3: CPU 割り込み優先度ステータスビット 3 (1) bit 2-0 1 = CPU 優先度は 8 以上 0 = CPU 優先度は 7 以下 割り込みコントローラには使用せず (CORCON ビットに関する説明は セクション 2. CPU (DS70204) の CORCON レジスタを参照してください ) Note 1: IPL3 ビットは IPL<2:0> ビット (SR<7:5>) と連結して CPU 割り込み優先度を構成します DS70633A_JP - p. 53-18 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-3: INTCON1: 割り込み制御レジスタ 1 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 SFTACERR DIV0ERR MATHERR ADDRERR STKERR OSCFAIL bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 NSTDIS: 割り込みネスティングディセーブルビット 1 = 割り込みネスティングを無効にする 0 = 割り込みネスティングを有効にする OVAERR: アキュムレータ A オーバーフロートラップフラグビット 1 = アキュムレータ A のオーバーフローによるトラップが発生した 0 = アキュムレータ A のオーバーフローによるトラップは発生していない OVBERR: アキュムレータ B オーバーフロートラップフラグビット 1 = アキュムレータ B のオーバーフローによるトラップが発生した 0 = アキュムレータ B のオーバーフローによるトラップは発生していない COVAERR: アキュムレータ A 致命的オーバーフロートラップフラグビット 1 = アキュムレータ A の致命的オーバーフローによるトラップが発生した 0 = アキュムレータ A の致命的オーバーフローによるトラップは発生していない COVBERR: アキュムレータ B 致命的オーバーフロートラップフラグビット 1 = アキュムレータ B の致命的オーバーフローによるトラップが発生した 0 = アキュムレータ B の致命的オーバーフローによるトラップは発生していない OVATE: アキュムレータ A オーバーフロートラップイネーブルビット 1 = アキュムレータ A のオーバーフロートラップを有効にする 0 = トラップを無効にする OVBTE: アキュムレータ B オーバーフロートラップイネーブルビット 1 = アキュムレータ B のオーバーフロートラップを有効にする 0 = トラップを無効にする COVTE: 致命的オーバーフロートラップイネーブルビット 1 = アキュムレータ A または B の致命的オーバーフロートラップを有効にする 0 = トラップを無効にする SFTACERR: シフトアキュムレータエラーステータスビット 1 = 無効なアキュムレータシフトによる算術エラートラップが発生した 0 = 無効なアキュムレータシフトによる算術エラートラップは発生していない DIV0ERR: ゼロ除算エラーステータスビット 1 = ゼロ除算によるエラートラップが発生した 0 = ゼロ除算によるエラートラップは発生していない MATHERR: 算術エラーステータスビット 1 = 算術エラートラップが発生した 0 = 算術エラートラップは発生していない ADDRERR: アドレスエラートラップステータスビット 1 = アドレスエラートラップが発生した 0 = アドレスエラートラップは発生していない 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-19

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-3: INTCON1: 割り込み制御レジスタ 1 ( 続き ) bit 2 bit 1 bit 0 STKERR: スタックエラートラップステータスビット 1 = スタックエラートラップが発生した 0 = スタックエラートラップは発生していない OSCFAIL: オシレータ障害トラップステータスビット 1 = オシレータ障害トラップが発生した 0 = オシレータ障害トラップは発生していない DS70633A_JP - p. 53-20 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-4: INTCON2: 割り込み制御レジスタ 2 R/W-0 R-0 U-0 U-0 U-0 U-0 U-0 U-0 ALTIVT DISI U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 INT2EP INT1EP INT0EP bit 15 bit 14 bit 13-3 bit 2 bit 1 bit 0 ALTIVT: 代替割り込みベクタテーブルイネーブルビット 1 = 代替ベクタテーブルを使用する 0 = 代替ベクタテーブルを使用しない ( 既定値のベクタテーブルを使用する ) DISI: DISI ( 割り込み無効化 ) 命令ステータスビット 1 = DISI 命令はアクティブである 0 = DISI 命令は非アクティブである INT2EP: 外部割り込み 2 エッジ検出極性選択ビット 1 = 立ち下がりエッジで割り込み 0 = 立ち上がりエッジで割り込み INT1EP: 外部割り込み 1 エッジ検出極性選択ビット 1 = 立ち下がりエッジで割り込み 0 = 立ち上がりエッジで割り込み INT0EP: 外部割り込み 0 エッジ検出極性選択ビット 1 = 立ち下がりエッジで割り込み 0 = 立ち上がりエッジで割り込み 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-21

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-5: IFS0: 割り込みフラグステータスレジスタ 0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 AD1IF U1TXIF U1RXIF SPI1IF SPI1EIF T3IF R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 T2IF OC2IF IC2IF T1IF OC1IF IC1IF INT0IF bit 15-14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 AD1IF: ADC1 変換完了割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない U1TXIF: UART1 送信割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない U1RXIF: UART1 受信割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない SPI1IF: SPI1 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない SPI1EIF: SPI1 フォルト割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない T3IF: Timer3 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない T2IF: Timer2 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない OC2IF: 出力コンペアチャンネル 2 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない IC2IF: 入力キャプチャチャンネル 2 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない T1IF: Timer1 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない OC1IF: 出力コンペアチャンネル 1 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない DS70633A_JP - p. 53-22 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-5: IFS0: 割り込みフラグステータスレジスタ 0 ( 続き ) bit 1 bit 0 IC1IF: 入力キャプチャチャンネル 1 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない INT0IF: 外部割り込み 0 フラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-23

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-6: IFS1: 割り込みフラグステータスレジスタ 1 U-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0 INT2IF U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 INT1IF CNIF CMPIF MI2C1IF SI2C1IF bit 15-14 bit 13 bit 12-5 bit 4 bit 3 bit 2 bit 1 bit 0 INT2IF: 外部割り込み 2 フラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない INT1IF: 外部割り込み 1 フラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない CNIF: 入力状態変化通知割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない CMPIF: コンパレータ割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない MI2C1IF: I2C1 マスタイベント割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない SI2C1IF: I2C1 スレーブイベント割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない DS70633A_JP - p. 53-24 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-7: IFS2: 割り込みフラグステータスレジスタ 2 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0 IC3IF bit 15-6 bit 5 bit 4-0 IC3IF: 入力キャプチャチャンネル 3 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない 53 レジスタ 53-8: IFS3: 割り込みフラグステータスレジスタ 3 R/W-0 R/W-0 U-0 U-0 U-0 U-0 R/W-0 U-0 FLTA1IF RTCCIF PWM1IF 割り込み ( パート VI) U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 bit 15 bit 14 bit 13-10 bit 9 bit 8-0 FLTA1IF: PWM1 フォルト A 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない RTCCIF: RTCC 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない PWM1IF: PWM1 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-25

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-9: IFS4: 割り込みフラグステータスレジスタ 4 U-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0 CTMUIF U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U1EIF bit 15-14 bit 13 bit 12-2 bit 1 bit 0 CTMUIF: CTMU 割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない U1EIF: UART1 エラー割り込みフラグステータスビット 1 = 割り込み要求が発生した 0 = 割り込み要求は発生していない DS70633A_JP - p. 53-26 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-10: IEC0: 割り込みイネーブル制御レジスタ 0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 AD1IE U1TXIE U1RXIE SPI1IE SPI1EIE T3IE R/W-0 R/W-0 R/W-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0 T2IE OC2IE IC2IE T1IE OC1IE IC1IE INT0IE bit 15-14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 AD1IE: ADC1 変換完了割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする U1TXIE: UART1 送信割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする U1RXIE: UART1 受信割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする SPI1IE: SPI1 イベント割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする SPI1EIE: SPI1 イベント割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする T3IE: Timer3 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする T2IE: Timer2 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする OC2IE: 出力コンペアチャンネル 2 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする IC2IE: 入力キャプチャチャンネル 2 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする T1IE: Timer1 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする OC1IE: 出力コンペアチャンネル 1 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-27

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-10: IEC0: 割り込みイネーブル制御レジスタ 0 ( 続き ) bit 1 bit 0 IC1IE: 入力キャプチャチャンネル 1 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする INT0IE: 外部割り込み 0 イネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする DS70633A_JP - p. 53-28 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-11: IEC1: 割り込みイネーブル制御レジスタ 1 U-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0 INT2IE U-0 U-0 U-0 U-0 U-0 R/W-0 R/W-0 R/W-0 INT1IE CNIE CMPIE MI2C1IE SI2C1IE bit 15-14 bit 13 bit 12-5 bit 4 bit 3 bit 2 bit 1 bit 0 INT2IE: 外部割り込み 2 イネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする INT1IE: 外部割り込み 1 イネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする CNIE: 入力状態変化通知割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする CMPIE: コンパレータ割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする MI2C1IE: I2C1 マスタイベント割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする SI2C1IE: I2C1 スレーブイベント割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-29

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-12: IEC2: 割り込みイネーブル制御レジスタ 2 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0 IC3IE bit 15-6 bit 5 bit 4-0 IC3IE: 入力キャプチャチャンネル 3 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする レジスタ 53-13: IEC3: 割り込みイネーブル制御レジスタ 3 R/W-0 R/W-0 U-0 U-0 U-0 U-0 R/W-0 U-0 FLTA1IE RTCCIE PWM1IE U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 bit 15 bit 14 bit 13-10 bit 9 bit 8-0 FLTA1IE: PWM1 フォルト A 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする RTCCIE: RTCC 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする PWM1IE: PWM1 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする DS70633A_JP - p. 53-30 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-14: IEC4: 割り込みイネーブル制御レジスタ 4 U-0 U-0 R/W-0 U-0 U-0 U-0 U-0 U-0 CTMUIE U-0 U-0 U-0 U-0 U-0 U-0 R/W-0 U-0 U1EIE bit 15-14 bit 13 bit 12-2 bit 1 bit 0 CTMUIE: CTMU 割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする U1EIE: UART1 エラー割り込みイネーブルビット 1 = 割り込み要求を有効にする 0 = 割り込み要求を無効にする 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-31

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-15: IPC0: 割り込み優先度制御レジスタ 0 U-0 R/W-1 R/W-0 R/W-0 U-0 R/W-1 R/W-0 R/W-0 T1IP<2:0> OC1IP<2:0> U-0 R/W-1 R/W-0 R/W-0 U-0 R/W-1 R/W-0 R/W-0 IC1IP<2:0> INT0IP<2:0> bit 15 bit 14-12 bit 11 bit 10-8 bit 7 bit 6-4 bit 3 bit 2-0 T1IP<2:0>: Timer1 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 OC1IP<2:0>: 出力コンペアチャンネル 1 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 IC1IP<2:0>: 入力キャプチャチャンネル 1 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 未実装 : 0 として読み出し INT0IP<2:0>: 外部割り込み 0 優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 DS70633A_JP - p. 53-32 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-16: IPC1: 割り込み優先度制御レジスタ 1 U-0 R/W-1 R/W-0 R/W-0 U-0 R/W-1 R/W-0 R/W-0 T2IP<2:0> OC2IP<2:0> U-0 R/W-1 R/W-0 R/W-0 U-0 U-0 U-0 U-0 IC2IP<2:0> bit 15 bit 14-12 bit 11 bit 10-8 bit 7 bit 6-4 bit 3-0 T2IP<2:0>: Timer2 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 OC2IP<2:0>: 出力コンペアチャンネル 2 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 IC2IP<2:0>: 入力キャプチャチャンネル 2 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-33

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-17: IPC2: 割り込み優先度制御レジスタ 2 U-0 R/W-1 R/W-0 R/W-0 U-0 R/W-1 R/W-0 R/W-0 U1RXIP<2:0> SPI1IP<2:0> U-0 R/W-1 R/W-0 R/W-0 U-0 R/W-1 R/W-0 R/W-0 SPI1EIP<2:0> T3IP<2:0> bit 15 bit 14-12 bit 11 bit 10-8 bit 7 bit 6-4 bit 3 bit 2-0 U1RXIP<2:0>: UART1 受信割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 SPI1IP<2:0>: SPI1 イベント割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 SPI1EIP<2:0>: SPI1 エラー割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 未実装 : 0 として読み出し T3IP<2:0>: Timer3 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 DS70633A_JP - p. 53-34 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-18: IPC3: 割り込み優先度制御レジスタ 3 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-0 R/W-0 U-0 R/W-1 R/W-0 R/W-0 AD1IP<2:0> U1TXIP<2:0> bit 15-7 bit 6-4 bit 3 bit 2-0 AD1IP<2:0>: ADC1 変換完了割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 未実装 : 0 として読み出し U1TXIP<2:0>: UART1 送信割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-35

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-19: IPC4: 割り込み優先度制御レジスタ 4 U-0 R/W-1 R/W-0 R/W-0 U-0 R/W-1 R/W-0 R/W-0 CNIP<2:0> CMPIP<2:0> U-0 R/W-1 R/W-0 R/W-0 U-0 R/W-1 R/W-0 R/W-0 MI2C1IP<2:0> SI2C1IP<2:0> bit 15 bit 14-12 bit 11 bit 10-8 bit 7 bit 6-4 bit 3 bit 2-0 CNIP<2:0>: 状態変化通知割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 CMPIP<2:0>: コンパレータ割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 MI2C1IP<2:0>: I2C1 マスタイベント割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 未実装 : 0 として読み出し SI2C1IP<2:0>: I2C1 スレーブイベント割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 DS70633A_JP - p. 53-36 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-20: IPC5: 割り込み優先度制御レジスタ 5 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-0 R/W-0 INT1IP<2:0> bit 15-3 bit 2-0 INT1IP<2:0>: 外部割り込み 1 優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 53 レジスタ 53-21: IPC7: 割り込み優先度制御レジスタ 7 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 割り込み ( パート VI) U-0 R/W-1 R/W-0 R/W-0 U-0 U-0 U-0 U-0 INT2IP<2:0> bit 15-7 bit 6-4 bit 3-0 INT2IP<2:0>: 外部割り込み 2 優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-37

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-22: IPC9: 割り込み優先度制御レジスタ 9 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-0 R/W-0 U-0 U-0 U-0 U-0 IC3IP<2:0> bit 15-7 bit 6-4 bit 3-0 IC3IP<2:0>: 外部割り込み 3 優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 レジスタ 53-23: IPC14: 割り込み優先度制御レジスタ 14 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-0 R/W-0 U-0 U-0 U-0 U-0 PWM1IP<2:0> bit 15-7 bit 6-4 bit 3-0 PWM1IP<2:0>: PWM1 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 DS70633A_JP - p. 53-38 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-24: IPC15: 割り込み優先度制御レジスタ 15 U-0 R/W-1 R/W-0 R/W-0 U-0 R/W-1 R/W-0 R/W-0 FLTA1IP<2:0> RTCCIP<2:0> U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 bit 15 bit 14-12 bit 11 bit 10-8 bit 7-0 FLTA1IP<2:0>: PWM1 フォルト A 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 RTCCIP<2:0>: RTCC 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-39

dspic33f/pic24h ファミリリファレンスマニュアル レジスタ 53-25: IPC16: 割り込み優先度制御レジスタ 16 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-0 R/W-0 U-0 U-0 U-0 U-0 U1EIP<2:0> bit 15-7 bit 6-4 bit 3-0 U1EIP<2:0>: UART1 エラー割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 レジスタ 53-26: IPC19: 割り込み優先度制御レジスタ 19 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 U-0 R/W-1 R/W-0 R/W-0 U-0 U-0 U-0 U-0 CTMUIP<2:0> bit 15-7 bit 6-4 bit 3-0 CTMUIP<2:0>: CTMU 割り込み優先度ビット 111 = 割り込み優先度 7 ( 最優先割り込み ) 001 = 割り込み優先度 1 000 = 割り込み要因は無効 DS70633A_JP - p. 53-40 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) レジスタ 53-27: INTTREG: 割り込み制御 / ステータスレジスタ U-0 U-0 U-0 U-0 R-0 R-0 R-0 R-0 ILR<3:0> U-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 VECNUM<6:0> bit 15-12 bit 11-8 bit 7 bit 6-0 ILR<3:0>: 新規 CPU 割り込み優先度ビット 1111 = CPU 割り込み優先度は 15 0001 = CPU 割り込み優先度は 1 0000 = CPU 割り込み優先度は 0 未実装 : 0 として読み出し VECNUM<6:0>: 保留中割り込みベクタ番号ビット 0111111 = 保留中の割り込みベクタ番号は 135 0000001 = 保留中の割り込みベクタ番号は 9 0000000 = 保留中の割り込みベクタ番号は 8 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-41

dspic33f/pic24h ファミリリファレンスマニュアル 53.5 割り込みの設定手順 53.5.1 初期化 割り込み要因の設定手順は以下の通りです 1. 割り込みのネスティングを使用しない場合 NSTDIS 制御ビット (INTCON1<15>) をセットする 2. 割り込み要因のユーザ割り当て優先度を選択する ( 適切な IPCx 制御レジスタの制御ビットに書き込む ) 優先度はアプリケーションと割り込み要因のタイプによって決まる 複数レベルの優先度を使用しない場合 有効にした全ての割り込み要因の IPCx レジスタ制御ビットにゼロ以外の同じ値を設定する Note: デバイスリセットが発生すると IPC レジスタが初期化され 全てのユーザ割り込み要因は優先度 4 に設定されます 3. 対応する IFSx ステータスレジスタで 周辺モジュールに関連付けられた割り込みフラグのステータスビットをクリアする 4. その割り込み要因に対応する IECx 制御レジスタの割り込みイネーブル制御ビットをセットして 割り込み要因を有効にする 53.5.2 割り込みサービスルーチン 割り込みサービスルーチン (ISR) を宣言して割り込みベクタテーブルを適正なベクタアドレスで初期化する方法は プログラミング言語 (C またはアセンブラ ) と アプリケーションの開発に使用する言語開発ツールによって異なります 通常 ISR で処理する割り込み要因に対応する IFSx レジスタの割り込みフラグは ユーザアプリケーションによってクリアする必要があります クリアしないと アプリケーションは ISR 終了後に同じ ISR を再度実行します ISR をアセンブリ言語でコーディングしている場合 RETFIE 命令で ISR を終了し 保存してある PC 値 SRL 値 以前の CPU 優先度をアンスタックする必要があります 53.5.3 トラップサービスルーチン トラップサービスルーチン (TSR) は ISR と同様にコーディングできます TSR への再入を回避するために INTCON1 レジスタの対応するトラップステータスフラグをコードによってクリアする必要がある点が異なります 53.5.4 割り込みの無効化 割り込みを無効化する手順は以下の通りです 1. PUSH 命令を使って現在の SR 値をソフトウェアスタックにプッシュする 2. SRL と値 0xE0 の論理 OR 演算を実行し CPU の優先度を強制的に 7 に設定する 割り込みを有効にするには POP 命令により以前の SR 値を復元します Note: 無効にできるのは優先度 7 以下の割り込みだけです トラップ要因 ( 優先度 8 ~ 15) を無効にする事はできません DISI 命令は優先度 1 ~ 6 の割り込みを一定の期間無効にします 優先度 7 の割り込み要因は DISI 命令によって無効にできません DS70633A_JP - p. 53-42 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) 53.5.5 サンプルコード 例 53-1 のサンプルコードは 割り込みネスティングを有効にして Timer1/Timer2/Timer3/ 入力状態変化通知割り込みを優先度 2/5/6/4 に設定する方法と ステータスレジスタを使って割り込みを有効 / 無効にする方法を示しています サンプル ISR では割り込みのクリア方法を示します 例 53-1: ネスティングされた割り込みのサンプルコード void enableinterrupts(void) { /* Set CPU IPL to 0, enable level 1-7 interrupts */ /* No restoring of previous CPU IPL state performed here */ SRbits.IPL = 0; } return; void disableinterrupts(void) { /* Set CPU IPL to 7, disable level 1-7 interrupts */ /* No saving of current CPU IPL setting performed here */ SRbits.IPL = 7; } return; void initinterrupts(void) { /* Interrupt nesting enabled here */ INTCON1bits.NSTDIS = 0; /* Set Timer3 interrupt priority to 6 (level 7 is highest) */ IPC2bits.T3IP = 6; /* Set Timer2 interrupt priority to 5 */ IPC1bits.T2IP = 5; 53 割り込み ( パート VI) /* Set Change Notice interrupt priority to 4 */ IPC4bits.CNIP = 4; /* Set Timer1 interrupt priority to 2 */ IPC0bits.T1IP = 2; /* Reset Timer1 interrupt flag */ IFS0bits.T1IF = 0; /* Reset Timer2 interrupt flag */ IFS0bits.T2IF = 0; /* Reset Timer3 interrupt flag */ IFS0bits.T3IF = 0; /* Enable CN interrupts */ IEC1bits.CNIE = 1; 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-43

dspic33f/pic24h ファミリリファレンスマニュアル 例 53-1: ネスティングされた割り込みのサンプルコード ( 続き ) /* Enable Timer1 interrupt */ IEC0bits.T1IE = 1; /* Enable Timer2 interrupt (PWM time base) */ IEC0bits.T2IE = 1; /* Enable Timer3 interrupt */ IEC0bits.T3IE = 1; /* Reset change notice interrupt flag */ IFS1bits.CNIF = 0; } return; void attribute (( interrupt,no_auto_psv)) _T1Interrupt(void) { /* Insert ISR Code Here*/ } /* Clear Timer1 interrupt */ IFS0bits.T1IF = 0; void attribute (( interrupt,no_auto_psv)) _T2Interrupt(void) { /* Insert ISR Code Here*/ } /* Clear Timer2 interrupt */ IFS0bits.T2IF = 0; void attribute (( interrupt,no_auto_psv)) _T3Interrupt(void) { /* Insert ISR Code Here*/ } /* Clear Timer3 interrupt */ IFS0bits.T3IF = 0; void attribute (( interrupt,no_auto_psv)) _CNInterrupt(void) { /* Insert ISR Code Here*/ } /* Clear CN interrupt */ IFS1bits.CNIF = 0; DS70633A_JP - p. 53-44 Preliminary 2011 Microchip Technology Inc.

2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-45 53.6 レジスタマップ 表 53-2: SFR 名 表 53-2 に dspic33f/pic24h の割り込み ( パート VI) モジュール関連特殊機能レジスタのまとめを示します 割り込みコントローラのレジスタマップ SFR アドレス Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 INTCON1 0080 NSTDIS OVAERR OVBERR COVAERR COVBERR OVATE OVBTE COVTE SFTACERR DIV0ERR MATHERR ADDRERR STKERR OSCFAIL 0000 INTCON2 0082 ALTIVT DISI INT2EP INT1EP INT0EP 0000 IFS0 0084 AD1IF U1TXIF U1RXIF SPI1IF SPI1EIF T3IF T2IF OC2IF IC2IF T1IF OC1IF IC1IF INT0IF 0000 IFS1 0086 INT2IF INT1IF CNIF CMPIF MI2C1IF SI2C1IF 0000 IFS2 0088 IC3IF 0000 IFS3 008A FLTA1IF RTCCIF PWM1IF 0000 IFS4 008C CTMUIF U1EIF 0000 IEC0 0094 AD1IE U1TXIE U1RXIE SPI1IE SPI1EIE T3IE T2IE OC2IE IC2IE T1IE OC1IE IC1IE INT0IE 0000 IEC1 0096 INT2IE INT1IE CNIE CMPIE MI2C1IE SI2C1IE 0000 IEC2 0098 IC3IE 0000 IEC3 009A FLTA1IE RTCCIE PWM1IE 0000 IEC4 009C CTMUIE U1EIE 0000 IPC0 00A4 T1IP<2:0> OC1IP<2:0> IC1IP<2:0> INT0IP<2:0> 4444 IPC1 00A6 T2IP<2:0> OC2IP<2:0> IC2IP<2:0> 4440 IPC2 00A8 U1RXIP<2:0> SPI1IP<2:0> SPI1EIP<2:0> T3IP<2:0> 4444 IPC3 00AA AD1IP<2:0> U1TXIP<2:0> 0044 IPC4 00AC CNIP<2:0> CMPIP<2:0> MI2C1IP<2:0> SI2C1IP<2:0> 4444 IPC5 00AE INT1IP<2:0> 0004 IPC7 00B2 INT2IP<2:0> 0040 IPC9 00B6 IC3IP<2:0> 0040 IPC14 00C0 PWM1IP<2:0> 0040 IPC15 00C2 FLTA1IP<2:0> RTCCIP<2:0> 4400 IPC16 00C4 U1EIP<2:0> 0040 IPC19 00CA CTMUIP<2:0> 0040 INTTREG 00E0 ILR<3:0>> VECNUM<6:0> 0000 x = リセット時の値は不定です = 未実装ビットであり 0 として読み出されます リセット時の値は 16 進数で示しています 全リセット セクション 53. 割り込み ( パート VI) 割り込み ( パート VI) 53

dspic33f/pic24h ファミリリファレンスマニュアル 53.7 設計のヒント 質問 1: 回答 : 質問 2: 回答 : 同じユーザアプリケーション割り当て優先度を持つ 2 つの割り込み要因が同時に保留された場合 どのように処理されますか 自然順序優先度が高い方の割り込み要因が優先されます 割り込み要因の自然順序優先度は その要因の割り込みベクタテーブル (IVT) 内のアドレス順によって決まります IVT アドレスが低い割り込み要因ほど 自然順序優先度は高くなります DISI 命令を使って割り込みとトラップの全ての要因を無効化できますか DISI 命令は トラップまたは優先度 7 の割り込み要因を無効化しません しかし ユーザアプリケーション内に有効な優先度 7 の割り込み要因が存在しない場合 DISI 命令を使って簡単に全ての割り込みを無効化できます DS70633A_JP - p. 53-46 Preliminary 2011 Microchip Technology Inc.

セクション 53. 割り込み ( パート VI) 53.8 関連アプリケーションノート 本セクションに関連するアプリケーションノートの一覧を示します 一部のアプリケーションノートは dspic33f/pic24h 製品ファミリ向けではありません ただし概念は共通しており 変更が必要であったり制限事項が存在したりするものの利用が可能です 割り込みモジュールに関連する最新のアプリケーションノートは以下の通りです タイトル現在 関連するアプリケーションノートはありません アプリケーションノート番号 Note: dspic33f/pic24h ファミリ向けのその他のアプリケーションノートとサンプルコードは マイクロチップ社のウェブサイト (www.microchip.com) をご覧ください 53 割り込み ( パート VI) 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-47

dspic33f/pic24h ファミリリファレンスマニュアル 53.9 改訂履歴 リビジョン A (2010 年 4 月 ) 本書の初版 DS70633A_JP - p. 53-48 Preliminary 2011 Microchip Technology Inc.

マイクロチップ社製デバイスのコード保護機能に関して以下の点にご注意ください マイクロチップ社製品は 該当するマイクロチップ社データシートに記載の仕様を満たしています マイクロチップ社では 通常の条件ならびに仕様に従って使用した場合 マイクロチップ社製品のセキュリティレベルは 現在市場に流通している同種製品の中でも最も高度であると考えています しかし コード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です 弊社の理解では こうした手法はマイクロチップ社データシートにある動作仕様書以外の方法でマイクロチップ社製品を使用する事になります このような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます マイクロチップ社は コードの保全性に懸念を抱いているお客様と連携し 対応策に取り組んでいきます マイクロチップ社を含む全ての半導体メーカーで 自社のコードのセキュリティを完全に保証できる企業はありません コード保護機能とは マイクロチップ社が製品を 解読不能 として保証するものではありません コード保護機能は常に進歩しています マイクロチップ社では 常に製品のコード保護機能の改善に取り組んでいます マイクロチップ社のコード保護機能の侵害は デジタルミレニアム著作権法に違反します そのような行為によってソフトウェアまたはその他の著作物に不正なアクセスを受けた場合 デジタルミレニアム著作権法の定めるところにより損害賠償訴訟を起こす権利があります 本書に記載されているデバイスアプリケーション等に関する情報は ユーザの便宜のためにのみ提供されているものであり 更新によって無効とされる事があります お客様のアプリケーションが仕様を満たす事を保証する責任は お客様にあります マイクロチップ社は 明示的 暗黙的 書面 口頭 法定のいずれであるかを問わず 本書に記載されている情報に関して 状態 品質 性能 商品性 特定目的への適合性をはじめとする いかなる類の表明も保証も行いません マイクロチップ社は 本書の情報およびその使用に起因する一切の責任を否認します マイクロチップ社の明示的な書面による承認なしに 生命維持装置あるいは生命安全用途にマイクロチップ社の製品を使用する事は全て購入者のリスクとし また購入者はこれによって発生したあらゆる損害 クレーム 訴訟 費用に関して マイクロチップ社は擁護され 免責され 損害を受けない事に同意するものとします 暗黙的あるいは明示的を問わず マイクロチップ社が知的財産権を保有しているライセンスは一切譲渡されません 商標マイクロチップ社の名称とロゴ Microchip ロゴ dspic KEELOQ KEELOQ ロゴ MPLAB PIC PICmicro PICSTART PIC 32 ロゴ rfpic UNI/O は 米国およびその他の国におけるマイクロチップ テクノロジー社の登録商標です FilterLab Hampshire HI-TECH C Linear Active Thermistor MXDEV MXLAB SEEVAL Embedded Control Solutions Company は 米国におけるマイクロチップ テクノロジー社の登録商標です Analog-for-the-Digital Age Application Maestro chipkit chipkit ロゴ CodeGuard dspicdem dspicdem.net dspicworks dsspeak ECAN ECONOMONITOR FanSense HI-TIDE In-Circuit Serial Programming ICSP Mindi MiWi MPASM MPLAB Certified ロゴ MPLIB MPLINK mtouch Omniscient Code Generation PICC PICC-18 PICDEM PICDEM.net PICkit PICtail REAL ICE rflab Select Mode Total Endurance TSHARC UniWinDriver WiperLock ZENA は 米国およびその他の国におけるマイクロチップ テクノロジー社の商標です SQTP は 米国におけるマイクロチップ テクノロジー社のサービスマークです その他 本書に記載されている商標は各社に帰属します 2011, Microchip Technology Incorporated, All Rights Reserved. ISBN: 978-1-61341-434-7 マイクロチップ社では Chandler および Tempe ( アリゾナ州 ) Gresham ( オレゴン州 ) の本部 設計部およびウェハー製造工場そしてカリフォルニア州とインドのデザインセンターが ISO/TS-16949: 2009 認証を取得しています マイクロチップ社の品質システムプロセスおよび手順は PIC MCU および dspic DSC KEELOQ コードホッピングデバイス シリアル EEPROM マイクロペリフェラル 不揮発性メモリ アナログ製品に採用されています さらに 開発システムの設計と製造に関するマイクロチップ社の品質システムは ISO 9001:2000 認証を取得しています 2011 Microchip Technology Inc. Preliminary DS70633A_JP - p. 53-49

各国の営業所とサービス 北米本社 2355 West Chandler Blvd. Chandler, AZ 85224-6199 Tel: 480-792-7200 Fax: 480-792-7277 技術サポート : http://www.microchip.com/ support URL: www.microchip.com アトランタ Duluth, GA Tel: 678-957-9614 Fax: 678-957-1455 ボストン Westborough, MA Tel: 774-760-0087 Fax: 774-760-0088 シカゴ Itasca, IL Tel: 630-285-0071 Fax: 630-285-0075 クリーブランド Independence, OH Tel: 216-447-0464 Fax: 216-447-0643 ダラス Addison, TX Tel: 972-818-7423 Fax: 972-818-2924 デトロイト Farmington Hills, MI Tel: 248-538-2250 Fax: 248-538-2260 インディアナポリス Noblesville, IN Tel: 317-773-8323 Fax: 317-773-5453 ロサンゼルス Mission Viejo, CA Tel: 949-462-9523 Fax: 949-462-9608 サンタクララ Santa Clara, CA Tel: 408-961-6444 Fax: 408-961-6445 トロント Mississauga, Ontario, Canada Tel: 905-673-0699 Fax: 905-673-6509 アジア / 太平洋アジア太平洋支社 Suites 3707-14, 37th Floor Tower 6, The Gateway Harbour City, Kowloon Hong Kong Tel: 852-2401-1200 Fax: 852-2401-3431 オーストラリア - シドニー Tel: 61-2-9868-6733 Fax: 61-2-9868-6755 中国 - 北京 Tel: 86-10-8569-7000 Fax: 86-10-8528-2104 中国 - 成都 Tel: 86-28-8665-5511 Fax: 86-28-8665-7889 中国 - 重慶 Tel: 86-23-8980-9588 Fax: 86-23-8980-9500 中国 - 杭州 Tel: 86-571-2819-3187 Fax: 86-571-2819-3189 中国 - 香港 SAR Tel: 852-2401-1200 Fax: 852-2401-3431 中国 - 南京 Tel: 86-25-8473-2460 Fax: 86-25-8473-2470 中国 - 青島 Tel: 86-532-8502-7355 Fax: 86-532-8502-7205 中国 - 上海 Tel: 86-21-5407-5533 Fax: 86-21-5407-5066 中国 - 瀋陽 Tel: 86-24-2334-2829 Fax: 86-24-2334-2393 中国 - 深圳 Tel: 86-755-8203-2660 Fax: 86-755-8203-1760 中国 - 武漢 Tel: 86-27-5980-5300 Fax: 86-27-5980-5118 中国 - 西安 Tel: 86-29-8833-7252 Fax: 86-29-8833-7256 中国 - 厦門 Tel: 86-592-2388138 Fax: 86-592-2388130 中国 - 珠海 Tel: 86-756-3210040 Fax: 86-756-3210049 アジア / 太平洋インド - バンガロール Tel: 91-80-3090-4444 Fax: 91-80-3090-4123 インド - ニューデリー Tel: 91-11-4160-8631 Fax: 91-11-4160-8632 インド - プネ Tel: 91-20-2566-1512 Fax: 91-20-2566-1513 日本 - 横浜 Tel: 81-45-471-6166 Fax: 81-45-471-6122 韓国 - 大邱 Tel: 82-53-744-4301 Fax: 82-53-744-4302 韓国 - ソウル Tel: 82-2-554-7200 Fax: 82-2-558-5932 または 82-2-558-5934 マレーシア - クアラルンプール Tel: 60-3-6201-9857 Fax: 60-3-6201-9859 マレーシア - ペナン Tel: 60-4-227-8870 Fax: 60-4-227-4068 フィリピン - マニラ Tel: 63-2-634-9065 Fax: 63-2-634-9069 シンガポール Tel: 65-6334-8870 Fax: 65-6334-8850 台湾 - 新竹 Tel: 886-3-5778-366 Fax: 886-3-5770-955 台湾 - 高雄 Tel: 886-7-536-4818 Fax: 886-7-330-9305 台湾 - 台北 Tel: 886-2-2500-6610 Fax: 886-2-2508-0102 タイ - バンコク Tel: 66-2-694-1351 Fax: 66-2-694-1350 ヨーロッパオーストリア - ヴェルス Tel: 43-7242-2244-39 Fax: 43-7242-2244-393 デンマーク - コペンハーゲン Tel: 45-4450-2828 Fax: 45-4485-2829 フランス - パリ Tel: 33-1-69-53-63-20 Fax: 33-1-69-30-90-79 ドイツ - ミュンヘン Tel: 49-89-627-144-0 Fax: 49-89-627-144-44 イタリア - ミラノ Tel: 39-0331-742611 Fax: 39-0331-466781 オランダ - ドリューネン Tel: 31-416-690399 Fax: 31-416-690340 スペイン - マドリッド Tel: 34-91-708-08-90 Fax: 34-91-708-08-91 イギリス - ウォーキンガム Tel: 44-118-921-5869 Fax: 44-118-921-5820 08/02/11 DS70633A_JP - p. 53-50 Preliminary 2011 Microchip Technology Inc.