C - U-netSURF
C - U-netSURF C - U-netSURF
練 習 問 題 (1) ( 次 のように LED が 点 灯 するプログラムを 作 りなさい。( 解 答 例 は「IoPort_led_rotate_c」) 練 習 問 題 (2) ( スイッチが 押 されるたびに, 練 習 問 題 (1)の LED の 点 灯 方 向 が 逆 になるプログラムを 作 りなさい。 ( 解 答 例 は「IoPort_sw_led_rotate_c」) 57 TK-3687mini ユーザーズマニュアル C 言 語 版
2. . 外 部 割 込 み 基 本曓 的 にマイコンはプログラムに 従 って 一 連 の 作 業 を 順 番 に 実 行 していきます。しかし,マイコ ンにセンサやスイッチをつないで,「センサから 入 力 があったらこの 処 理 を 行 なう」とか,「スイッチが 押 されたらあの 処 理 を 行 なう」というようにプログラムする 場 合 ,いつ 入 力 があるかわからないため,セン サやスイッチの 状 態 をいつも 監 視 していなければなりません。マイコンが 普晘 段 ひまだったり, 多 少 反 応 が 遅 くなってもよかったりするのであれば,そういう 方 法沵 でもよいのですが,いろいろな 処 理 を 行 ない ながら,いざ 入 力 があったときは 優 先 して 処 理 しなければならないとなると, 別 の 方 法沵 を 考 えなえれば なりません。 このようなときに 使 うのが 外 部 割 込 みです。H8/3687 には IRQ0,IRQ1,IRQ2,IRQ3 という 4 つ の 端 子 が 用 意 されていて,それぞれの 端 子 の 信 号 の 変 化 によって 割 込 みをかけ, 特 定 の 処 理 を 実 行 することができます。 割 込 みとはハードウェア 的 にサブルーチンを 実 行 する 方 法沵 ,とも 言 えるでしょ う。 割 込 み 処 理 の 概 要 割 込 み 要 求 は H8/3687 に 内 蔵 さ れている 割 込 みコントローラによって 制 御 されます。 外 部 割 込 みの 割 込 み 動 作 は 下 記 のとおりです。 1. IRQ0~3 端 子 に 入 力 エッジが あると 割 込 みコントローラに 割 込 み 要 求 信 号 を 送 ります。(エッジの 方 向 は 個 別 に 選 択 可 能 ) 2. 割 込 みコントローラは CPU に 対 して 割 込 み 処 理 を 要 求 します。 3. CPU は 割 込 みを 受 け 付 けると, 実 行 中 の 命 令 を 実 行 したあと,プロ グラムカウンタと CCR(コンディショ ンコードレジスタ)をスタックにプッ シュします。 4. CPU は CCR の I ビットを 1 にセ ットして 他 の 割 込 みを 受 け 付 けない ようにします。 5. CPU は 外 部 割 込 み 要 求 に 対 するベクタアドレス(IRQ0 のとき 0x001C , IRQ1 の と き 0x001E , IRQ2 のとき 0x0020,IRQ3 のとき 0x0022)を 生 成 し,そのベクタアドレスにセットされているデータ( 割 込 み 処 理 のスタートアドレス) をプログラムカウンタにセットします。 6. 割 込 み 処 理 がスタートします。 58 TK-3687mini ユーザーズマニュアル C 言 語 版
- Page 8 and 9: H8/3687 のメモリマップ メ
- Page 10 and 11: 第 2 章 マイコンボードを
- Page 12 and 13: ハイパーターミナルの 設
- Page 14 and 15: 5 プロパティ ‘ 設 定 ’
- Page 16 and 17: ハイパーターミナルを 起
- Page 18 and 19: P60~67 の LED が 順 番 に 点
- Page 20 and 21: 第 3 章 マシン 語 でプロ
- Page 22 and 23: マシン 語 に 変 換 する
- Page 24 and 25: キーボード:‘F’,‘6’,‘
- Page 26 and 27: 3.プログラムをデバッグす
- Page 28 and 29: 第 4 章 C 言 語 でプログラ
- Page 30 and 31: 3.C 言 語 でプログラムを
- Page 32 and 33: まず,1「ワークスペース
- Page 34 and 35: 「 新 規 プロジェクト-5/9-
- Page 36 and 37: これで,プロジェクトワー
- Page 38 and 39: 「セクション 設 定 」ダ
- Page 40 and 41: もう 一 度 確 認 しましょ
- Page 42 and 43: HEW のワークスペースウィ
- Page 44 and 45: 4.プログラムのダウンロー
- Page 46 and 47: ダウンロードが 終 了 す
- Page 48 and 49: 実 習 には,TK-3687mini,Timer&LE
- Page 50 and 51: ポートプルアップコント
- Page 52 and 53: 記 述 します。 IO.PCR6 = 0xff
- Page 54 and 55: では,コーディングしてみ
- Page 56 and 57: ***********************************
- Page 60 and 61: 外 部 割 込 みに 使 用 す
- Page 62 and 63: 回 路 図 Timer&LED Display(B6092
- Page 64 and 65: } // メ゜ンルルーヴハ -----
- Page 66 and 67: __interrupt(vect=25) void INT_ADI(v
- Page 68 and 69: タイマ V の 設 定 用 レジ
- Page 70 and 71: タイマ V と 割 込 みを 使
- Page 72 and 73: } // 点 滅 LedCnt = LedCnt + 1; i
- Page 74 and 75: 4.タイマ Z H8/3687 に 内 蔵
- Page 76 and 77: 75 TK-3687mini ユーザーズマ
- Page 78 and 79: } while(1){} /*********************
- Page 80 and 81: __interrupt(vect=32) void INT_SCI3_
- Page 82 and 83: 調 歩 同 期曋 式 シリアル
- Page 84 and 85: シリアルポートのプログ
- Page 86 and 87: さて,プログラムリストは
- Page 88 and 89: hex_dt = hex_dt / 0x10; if (hex_dt>
- Page 90 and 91: H8/3687 の AD コンバータ H8/3
- Page 92 and 93: この AD 値 をそのまま 使
- Page 94 and 95: void void void void void void void
- Page 96 and 97: } IO.PCR6 = 0xff; //ポーヴダ6,P
- Page 98 and 99: IO.PDR3.BYTE = 0x00 ^ DRV_LOGIC; IO
- Page 100 and 101: 第 6 章 μITRON を 実 装 し
- Page 102 and 103: 2.カーネルライブラリの
- Page 104 and 105: 次 に,HOS のソースファイ
- Page 106 and 107: 次 に , CPU や 開 発 環 境
練 習 問 題 (1)<br />
(<br />
次 のように LED が 点 灯 するプログラムを 作 りなさい。( 解 答 例 は「IoPort_led_rotate_c」)<br />
練 習 問 題 (2)<br />
(<br />
スイッチが 押 されるたびに, 練 習 問 題 (1)の LED の 点 灯 方 向 が 逆 になるプログラムを 作 りなさい。<br />
( 解 答 例 は「IoPort_sw_led_rotate_c」)<br />
57<br />
TK-3687mini ユーザーズマニュアル C 言 語 版