コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第3週目

Slides:



Advertisements
Similar presentations
特別支援教育で使える PowerPoint の活用法 研修 最低限必要なスキルはこれでバッチリ!! ICT 活用支援員 高松 崇.
Advertisements

PC作業の一時停止 ●「スタンバイ(サスペンド)」: メモリには電源が供給される。実行中のデータがそのままメモリに保持されるため、作業を中断した状態から 数秒で再開ができる。省電力。 操作: 「スタート」→「電源オプション」→「スタンバイ」とクリックする。 ●「休止状態」: メモリの内容をハードディスクに退避してから全デバイスの電源をオフ。作業を中断した状態からの再開ができる。ノートPCでは電池が消耗しない。
高速分光器観測マニュアル ○内容 1:各種マスクスリットの(CCD上での)位置 p.2
マイコン入門実践教育プロセス説明 第4システム部 ES443 塩島秀樹.
USB2.0対応PICマイコンによる データ取得システムの開発
計算機システムⅡ 主記憶装置とALU,レジスタの制御
Handel-C基礎 および 7セグとマウスのハンドリング
テープ(メモリ)と状態で何をするか決める
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第2週目
F5 を押すか、または [スライド ショー] > [最初から] をクリックして、コースを開始してください。
Fire Tom Wada IE dept. Univ. of the Ryukyus
USB2.0対応PICを用いたデータロガーの製作
第10回 Dフリップフロップ ディジタル回路で特に重要な D-FF 仕組みを理解する タイミング図を読み書きできるようにする 瀬戸
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第3回 CPUの管理と例外処理 OSによるハードウェアの管理 CPUの構成、動作 CPUの管理 例外処理、割り込み処理 コンテキストスイッチ
Ibaraki Univ. Dept of Electrical & Electronic Eng.
第5回 CPUの役割と仕組み3 割り込み、パイプライン、並列処理
割 込 み(1) オペレーティングシステム No.5.
割り込み.
情報電子工学演習V(ハードウェア実技演習) PICマイコンによる光学式テルミンの製作
割り込み.
PIC制御による赤外線障害物 自動回避走行車
デバイスからの異常注入が指定可能なCPUエミュレータ
デジタル回路(続き) コンピュータ(ハードウェアを中心に)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
専門演習Ⅰ 国際経済学部 国際産業情報学科 2年 石川 愛
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
ICトレーナーの構成 7セグメントLED ブレッドボード XOR OR AND NAND 電源端子 スイッチ端子 LED端子 データLED
第6回 よく使われる組合せ回路 瀬戸 重要な組合せ回路を理解し、設計できるようにする 7セグディスプレイ用デコーダ 加算回路・減算回路
高速剰余算アルゴリズムとそのハードウェア実装についての研究
肩たたきロボットの試作 T21R009 工学部 ロボット工学科  松下 拓矢 棒読みにならず話しかけるようにやる。
コンピュータを知る 1E16M009-1 梅津たくみ 1E16M017-8 小沢あきら 1E16M035-0 柴田かいと
前坂 たけし (北大院・理) 其の壱 はじめての BIOS 前坂 たけし (北大院・理)
演習課題の進め方 1.製作内容の決定 2.部品の配置を決める (回路図を描く) 3.処理の流れをフローチャートに表す
マイコンによるLEDの点灯制御 T22R003 川原 岳斗.
コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第1週目 アセンブリ言語講座
R8C/Tiny I/Oポートの仕組み.
情報コミュニケーション入門b 第2回 Part2 パソコンの基本操作 ~日本語入力まで
コンピュータの基本構成について 1E16M001-1 秋田梨紗 1E16M010-2 梅山桃香 1E16M013-3 大津智紗子
ワンチップマイコンを用いた DCモータ走行車制御
ICトレーナーの構成 7セグメントLED ブレッドボード XOR OR AND NAND 電源端子 スイッチ端子 LED端子 データLED
情報電子工学演習Ⅴ(ハードウェア実技演習) PICマイコンによる光学式テルミンの製作
ディジタル回路の設計と CADによるシステム設計
ICトレーナーの構成 7セグメントLED ブレッドボード XOR OR AND NAND 電源端子 スイッチ端子 LED端子 データLED
PC作業の一時停止 ●「スタンバイ(サスペンド)」: メモリには電源が供給される。実行中のデータがそのままメモリに保持されるため、作業を中断した状態から 数秒で再開ができる。省電力。 操作: 「スタート」⇒「電源オプション」⇒「スタンバイ」とクリックする。 ●「休止状態」: メモリの内容をハードディスクに退避してから全デバイスの電源をオフ。作業を中断した状態からの再開ができる。ノートPCでは電池が消耗しない。
ロボットの協調動作の研究: マップ作成とマップ情報を利用した行動計画
計算機構成 第3回 データパス:計算をするところ テキスト14‐19、29‐35
情報コミュニケーション入門b 第2回 Part2 パソコンの基本操作 ~日本語入力まで
情報処理 タイマの基礎 R8C タイマの基礎.
ネットワーク技術II 第10.3課 サブネット化のメカニズム
R8C/Tinyマイコンの基礎.
情報電子工学演習Ⅴ(ハードウェア実技演習) PICマイコンによる光学式テルミンの製作
Fire Tom Wada IE dept. Univ. of the Ryukyus
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
コンピュータアーキテクチャ 第 9 回.
カラス撃退装置 ~カラスもたじたじ~ 8班 班長 藤井将之     梅田陽平     大村泰史     藤井秀徳.
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
コンピュータアーキテクチャ 第 4 回.
第4回 CPUの役割と仕組み2 命令の解析と実行、クロック、レジスタ
プログラムの開発手順 1.プログラム設計(仕様の決定) 2.コーディング(ソースファイルの作成) 3.アセンブル(オブジェクトファイル
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
レポート&筆記試験について.
2009年8月18日,新潟大学 「情報」と「ものづくり」 の実践教育3 下保敏和,佐藤亮一.
情報処理 ADコンバータの基礎 アナログ電圧値をディジタル・データとして取 り込む
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
Arc GISでのマッピング作業 測量学実習 第4回.
Presentation transcript:

コンピュータ系実験Ⅲ 「ワンチップマイコンの応用」 第3週目

実験内容 LED点灯回路を用いた割り込みプログラムの作成 第1週で作成した回路(17ページ図11)を使用 Switch Switch

割り込みとは? ある処理を行っている最中に、何らかの要因によってその処理を中断し、別の処理を行うこと ハードウェア割り込み:ハードウェアからの入力等に起因 例)キーボード入力 ソフトウェア割り込み:実行中のプログラムに起因 例)ゼロ除算

割り込み処理の流れ 処理Bに移行 処理Aに戻る 処理A 割込み発生 処理B 処理Aで使用していた 退避したレジスタを元に戻す レジスタを

レジスタを退避しないと・・・① 処理Aの割り込みがかかる直前の状態(Wレジスタやファイルレジスタの内容)が処理Bによって書きつぶされる可能性がある 処理Aに戻った際に、割り込みがかかる直前の状態の続きから処理を再開することができない 逆に言うと、退避する必要があるのは、処理Aと処理Bの両方で使用するレジスタ

レジスタを退避しないと・・・② 今回の実験ではタイマルーチンを利用して、一定間隔でLEDの点灯移動をさせるパターンが2種類ある LED2~LED7まで順番に点灯するパターン(パターン1) LEDが3個ずつ交互に点灯するパターン(パターン2) これらのパターンで同じタイマルーチンを使用する タイマルーチンではレジスタファイルの特定の番地の値をカウントアップすることで時間を計っている 同じLEDを使用するので当然PICの出力(PORT B)も共通

レジスタを退避しないと・・・③ PORT Bを退避しなかった場合、パターン1の点灯パターンが壊れてしまう こうなってしまうかも・・・

レジスタを退避しないと・・・④ タイマルーチンで使用するレジスタを退避しなかった場合、元の状態に戻れなくなる 残り0.1秒で次のLEDに移動

実験手順 第2週のサンプルプログラム4を参考にして課題1を解く → TAによるチェック サンプルプログラム5に足りない部分を追加して、課題3を解く MPLABで動作確認 → TAによるチェック 実機で動作させる → TAによるチェック

課題1:LEDの点滅制御プログラム 第2週のサンプルプログラム4を参考にして、図11の回路に対応した点滅制御プログラムを作成(LEDの個数が変更になります) 入出力ポートの設定 PORTB0、PORT1を入力 PORTB2~PORTB7を出力 LEDの表示パターンの変更 PORTBに出力する値を適切なものに変更 完成したらMPLAB上で動作確認

入出力ポートの設定 右の図はレジスタファイルのSFR(Special Function Register)のみを示したもの Bank0 Bank1 0番地 右の図はレジスタファイルのSFR(Special Function Register)のみを示したもの TRIS Bレジスタの値を変更することでPORT Bの入出力を設定する(実験書12ページ) Indirect Addr Indirect Addr 1番地 TMR0 OPTION 2番地 PCL PCL 3番地 STATUS STATUS 4番地 FSR FSR 5番地 PORT A TRIS A 6番地 PORT B TRIS B 7番地 8番地 EEDATA EECON1 9番地 EEADR EECON2 0A番地 PCLATCH PCLATCH 0B番地 INTCON INTCON

レジスタファイル 0番地から0B番地まではSpecial Function Register(SFR)と呼ばれ、用途が決まっている 0番地 PICの動作設 ステータス 外部との入出力 1番地 2番地 ・・・ ・・・ 0B番地 0C番地 0D番地 ・・・ 4E番地 4F番地

TRIS Bの値の変更① PICのレジスタファイルは図9(13ページ)に示されているように、2つのバンクに分かれている TRIS BはBank1 Bank1の値を変更するにはバンクを切り替えなければならない STATUSレジスタのRP0の値を変更することで切り替える(RP1は0に固定) 0 → Bank0, 1 → Bank1 7bit 6bit 5bit 4bit 3bit 2bit 1bit 0bit IRP RP1 RP0 TO PD Z DC C

TRIS Bの値の変更② TRIS Bの0ビット目はPORT Bの0ビット目の入出力の設定、1ビット目は1ビット目….というように対応している 0 → 出力, 1 → 入力 例)TRIS Bを00001111に設定すると、PORT Bの上位4ビットが出力、下位4ビットが入力になる

プログラム例(実験書12ページ) BSF STATUS, RP0 MOVLW 1CH MOVWF TRISB BCF STATUS, RP0 STATUSレジスタのRP0を1にする → Bank1 PORT Bの設定 → PORTBの2~4ビットを入力、              他のビットを出力にする TRISBに設定値を書き込む STATUSレジスタのRP0を0にする → Bank0 Bank1にして、必要な設定を行った後は、 必ずBank0に戻しておくこと! PORTBなどBank0のレジスタにアクセスできなくなります

課題2:LEDの点灯移動プログラム 第2週の課題3のプログラムを元に図11の回路に対応した点灯移動プログラムを作成 0.2秒間隔でPORTB2→PORTB3→PORTB4→PORTB5……PORTB7→PORTB2 のように点滅するようにする 入出力の設定は課題1と同じにする 完成したらMPLAB上で動作確認

課題3:LEDの割り込みプログラム 図11の回路上で、課題2の点灯処理時にプッシュスイッチを押すと、課題1の処理を3回繰り返すプログラムの作成 サンプルプログラム5の”====”で囲まれた部分を作成(5箇所) プログラムを作成したら、MPLABで動作確認 動作確認後、実機で動作させる

割り込み許可の設定 割り込み許可の設定はSpecial Function RegisterのINTCON( INTerrupt CONtrol)レジスタとOPTION_REGレジスタで行う INTCONレジスタ どのような割り込みを許可するのかを設定 OPTION_REGレジスタ PICの様々な動作の設定用レジスタ 割り込みの動作モードの設定もここで行う

INTCONレジスタ 実験書34ページ図22に課題3の流れが示されている 今回は10010000に設定する(割り込み許可時) 今回はPICのRB0/INTピンに接続されたプッシュスイッチから割り込みをかける(図11の回路図参照) →RB0/INTピンからの割り込みを許可する4ビット目を1にする この設定を有効にする(割り込みを許可する)ために7ビット目を1にする 7ビット目が1の間だけ、PICに対して割り込みをかけることができる

OPTION_REGレジスタ① OPTION_REGレジスタの6ビット目は割り込みをRB0/INTピンの立ち上がりと立ち下がりのどちらでかけるかを設定するビット 0:立ち下がり RB0/INTピンからの入力がH→Lになったときに割り込みがかかるようにする 1:立ち上がり RB0/INTピンからの入力がL→Hになったときに割り込みがかかるようにする 今回は立ち下がりで割り込みをかけるので0にする

OPTION_REGレジスタ② RB0/INT H H→L PIC 5V 今回の回路では・・・ スイッチを押すと、GNDに接続されるのでLになる 今回はこのH→Lに変化した際に割り込みがかかる RB0/INT H H→L PIC GND

課題3:LEDの割り込みプログラム MPLAB上でのシミュレーション 割り込みは メインルーチン中 割り込みサブルーチン中 のそれぞれのタイミングでかける MPLAB上で動作させる際に、割り込みをかけた場合にWレジスタなどがどこに退避されているかを記録する(39ページの表を埋める) どのレジスタの退避をチェックすべきかは各自で決定する(決定後、TAにチェックを受けること)

実験書39ページの表の書き方 退避先の レジスタ の退避後の値 退避先の レジスタ (のアドレス) 退避する レジスタ 退避元 割り込み直前の値 退避先 割り込み前処理完了前の値 割り込み前処理完了後の値 PCL WREG PORTB 退避直前の値 退避先の レジスタ の退避される前の値

課題3:LEDの割り込みプログラム② 回路上での動作の際にも、MPLAB上でのシミュレーション同様、割り込みは メインルーチン中 割り込みサブルーチン中 のそれぞれのタイミングでかける 詳細は実験書を参照

プログラミング時の注意 自由に使用できるレジスタファイルは0CH番地~4F番地まで ただし、タイマルーチンなど、他の処理で使用しているレジスタは使わない 課題3に関しては、プログラム中の空欄を順番に埋めていくのではなく、分かりやすいところからとりかかること 最初から割り込み処理の部分を埋めるのはお勧めしません