h8

「h8」の編集履歴(バックアップ)一覧はこちら

h8」(2008/02/06 (水) 21:31:15) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

石垣 [sinnya07atgmail.com]at=@ 01/28 docファイルで現状のファイルをUP H8の応用範囲をもっともっとさがしてみてください。 文章の統合はあとでします。 メモ PB0はCN1の33ピン(3069f) 3069マザーボード上のLEDのポート P4 3664 [[LED電光掲示板>http://www.humblesoft.com/j405board/index.html]] マイコン4004開発に携わった偉い人 [[嶋 正利氏>http://v-t.jp/jp/topics/column/shima_column_main.php]] ・はじめに 昨今、身の回りの機械製品にはマイクロコンピュータが組み込まれ使われている。 マイクロコンピュータ 以下略 応用するためのドキュメントを作成する。 ・ マイコンとは CPU、LSIの説明 マイコンの分野 組み込み モータなどの高電流を必要とするものへの信号の伝え方 ・研究で使用した装置 AKI-H8/3069F日立フラッシュマイコンH8/3069F搭載のキット。 3069の写真 AKI-H8/3052F日立フラッシュマイコンH8/3052F搭載のキット。 3052の写真 ・AKI-H8/3069FとAKI-H8/3052の仕様。        3069 3052 CPU H8/3069 16ビット H8/300H 25MHz H8/3052 16ビット H8/300H 25MHz 内臓ROM 512KB 512KB 内臓RAM 16KB 8KB SCI RS-232C RS-232C ネットワークコントローラ あり なし I/Oポート 最大79 最大78 A/D 10ビットA/Dコンバータ8ch 10ビットA/Dコンバータ8ch D/A 8ビットD/Aコンバータ 2ch 8ビットD/Aコンバータ 2ch 本研究で使用したマイコンボードにはRS-232Cドライバ/レシーバが実装されており、パソコンとケーブルでつなぐことにより通信が可能になっている。 ただしAKI-H8/3052Fのほうは接続するためのDサブ9ピンコネクタがないため、回路図通りの接続ができるように回路を事前に作らなければならない。 AKI-H8/3069FはRJ45ソケット、RTL8019ネットワークコントローラが共に搭載されておりLANが使用することが出来る。 3069の転送方法(仮想TFTPサーバ)と実行(ターミナル) 3052の転送方法と実行 マイコンへのプログラム転送や実行は、 ・ OSの有無による開発環境の違い? 3069で行ったLEDの点灯 3052で行ったLEDの点灯 その二つの違い。 ・まとめ プログラムがハードにどのような影響をあたえているか。理解できた(0と1の信号をおくっているだけである) ・参考文献 ・付録  H8の種類 3069のbrledのプログラム 3069のLEDのプログラム 3052のLEDのプログラム H8/3069Rグループ 仕様概要 項 目 仕 様 CPU: • H8/300CPUに対してオブジェクトレベルで上位互換 • o 汎用レジスタマシン o  汎用レジスタ:16ビット×16本(8ビット×16本+16ビット×8本、32ビット×8本としても使用可能) o 高速動作 o  最大動作周波数:25MHz  加減算:80ns  乗除算:560ns o アドレス空間16Mバイト o 特長ある命令 o  8/16/32ビット転送・演算命令  符号なし/符号付き乗算命令 (8ビット×8ビット、16ビット×16ビット)  符号なし/符号付き除算命令 (16ビット÷8ビット、32ビット÷16ビット)        ビットアキュムレータ機能  レジスタ間接指定によりビット番号を指定可能なビット操作命令 メモリ: • H8/3069RF o ROM:512Kバイト o RAM:16Kバイト•   割り込みコントローラ: • 外部割込み端子7本:NMI、IRQ0~IRQ5 • 内部割込み36要因 • 3レベルの割込み優先順位が設定可能 バスコントローラ: • アドレス空間を8エリアに分割し、エリアごとに独立してバス仕様を設定可能 • エリア0~7に対してそれぞれチップセレクト出力可能 • エリアごとに8ビットアクセス空間/16ビットアクセス空間を設定可能 • エリアごとに2ステートアクセス空間/3ステートアクセス空間を設定可能 • 2種類のウェイトモードを設定可能 • エリアごとにプログラムウェイトのステート数を設定可能 • バーストROMを直接接続可能 • 最大8MバイトのDRAMを直接接続可能(またはインターバルタイマとして使用可能) • バス権調停機能 DMAコントローラ(DMAC): • ショートアドレスモード • o 最大4チャネルを使用可能 o I/Oモード/アイドルモード/リピートモードの選択可能 o 起動要因:16ビットタイマチャネル0~2のコンペアマッチ/インプットキャプチャA割込み、A/Dコンバータ の変換終了割込み、シリアルインタフェース の送信データエンプティ/受信データフル割込み、外部リクエスト • フルアドレスモード • o 最大2チャネルを使用可能 o ノーマルモード/ブロック転送モードの選択可能 o 起動要因:16ビットタイマチャネル0~2のコンペアマッチ/インプットキャプチャA割込み、A/Dコンバータ の変換終了割込み、外部リクエスト、オートリクエスト 16ビットタイマ×3チャネル: • 16ビットタイマ3チャネルを内蔵。最大6端子のパルス出力、または最大6種類のパルスの入力処理が可能 • 8ビットタイマカウンタ×1(チャネル0~2) • アウトプットコンペア出力/インプットキャプチャ入力(兼用端子)×2(チャネル0~2) • 同期動作可能(チャネル0~2) • PWMモード設定可能(チャネル0~2) • 位相計数モード設定可能(チャネル2) • コンペアマッチ/インプットキャプチャAの割込みによりDMAC起動可能(チャネル0~2) 8ビットタイマ×4チャネル: • 8ビットアップカウンタ(外部イベントカウント可能) • タイムコンスタントレジスタ×2 • 2チャネルの接続が可能能 プログラマブルタイミングパターンコントローラ(TPC): • 16ビットタイマをタイムベースとした最大16ビットのパルス出力が可能能 • 最大4ビット×4系統のパルス出力が可能(16ビット×1系統、8ビット×2系統などの設定も可能) • ノンオーバラップモード設定可能 • DMACによる出力データの転送可能 ウォッチドッグタイマ(WDT)×1チャネル: • オーバフローによりリセット信号を発生可能 • リセット信号の外部出力可能(ただしF-ZTAT版は不可) • インターバルタイマとして使用可能 シリアルインタフェース×3チャネル: • 調歩同期/クロック同期式モードの選択可能 • 送受信同時動作(全二重動作)可能 • 専用のボーレートジェネレータ内蔵 • スマートカードインタフェース拡張機能内蔵 A/Dコンバータ: • 分解能:10ビット • 8チャネル:単一モード/スキャンモード選択可能 • アナログ変換電圧範囲の設定が可能 • サンプル&ホールド機能付 • 外部トリガまたは8ビットタイマのコンペアマッチによるA/D変換開始可能 • A/D変換終了割込みによるDMAC起動可能 D/Aコンバータ: • 分解能:8ビット • 2チャネル • ソフトウェアスタンバイモード時D/A出力保持可能 I/Oポート: • 入出力端子70本 • 入力端子9本 動作モード: • 7種類のMCU動作モード モード アドレス空間 アドレス端子 バス幅初期値 バス幅最大値 モード1 1Mバイト A19~A0 8 ビット 16 ビット モード2 1Mバイト A19~A0 16 ビット 16 ビット モード3 16Mバイト A23~A0 8 ビット 16 ビット モード4 16Mバイト A23~A0 16 ビット 16 ビット モード5 16Mバイト A23~A0 8 ビット 16 ビット モード7 1Mバイト - - - • モード1~4では内蔵ROMは無効となります。 低消費電力状態: • スリープモード • ソフトウェアスタンバイモード • ハードウェアスタンバイモード • モジュール別スタンバイ機能あり • システムクロック分周比可変 その他: • クロック発振器内蔵 論文目次候補 改 はじめに 昨今、身の回りの機械製品にはマイクロコンピュータが組み込まれ使われている。 マイクロコンピュータ 以下略 応用するためのドキュメントを作成する。 H8の種類の多さ  H8の役割 研究で使用した装置  3069と3052の違い。OSの有無による違い。 まとめ 参考文献 付録 ---- 3069 LANによる通信。CGIが使える。WEBサーバ。 CGIを使ったブラウザ上からマザーボード上のLEDの操作。 マザーボード上のDIPスイッチのON/OFFをブラウザ上に表示。 3664/LED電光掲示板 付属のソフトウェアによる文字列の表示。 >/*LEDをブラウザから点灯消灯するプログラム*/ >#include <h8/reg3067.h> >#include <mes2.h> >int main(int argc, char **argv) { >char led[2][4]; >cgi_value(*(argv+1), "led0", led[0], 3); >cgi_value(*(argv+1), "led1", led[1], 3); >P4DDR = 0xc0; >P4DR = 0; >if(led[0][0] == 'o') P4DR |= 0x40; >if(led[1][0] == 'o') P4DR |= 0x80; >printf("<html><body>\r\n"); >printf("<h1>LEDテストページ</h1><hr>\r\n"); >printf("<p>argcは%dです。</p>\r\n",argc); >printf("<p>*argvは%sです。</p>\r\n",*argv); >printf("<p>*(argv+1)は%sです。</p>\r\n",*(argv+1)); >printf("<p>赤は%sです</p>\r\n",led[0]); >printf("<p>緑は%sです</p>\r\n",led[1]); >printf("<form action=\"%s\">",*argv); >printf("led1(赤)<input type=\"checkbox\"name=\"led0\" %s>\r\n",(led[0][0]=='o') ? "checked" : ""); >printf("led2(緑)<input type=\"checkbox\"name=\"led1\" %s><br>\r\n",(led[1][0]=='o') ? "checked" : ""); >printf"<inputtype=\"submit\"value=\"submit\"><br>\r\n"); >printf("</form><hr>\r\n"); >printf("</body></html>\r\n"); >} このプログラムによるブラウザの表示 添付ファイル参照 led無  LEDのチェックボックスがOFFの状態 led赤  赤のチェックボックスがON 緑のチェックボックスがOFFの状態 led緑  赤のチェックボックスがOFF 緑のチェックボックスがONの状態 led赤緑 赤のチェックボックスがON 緑のチェックボックスがONの状態 ---- 組み込みシステム  携帯電話、洗濯機、炊飯器、テレビ、HDレコーダ、iPod、車などには コンピュータが入っています。これらに入っているコンピュータシステムを、 組込みシステムと呼びます。近年の半導体技術・マイクロプロセッサ技術の 進歩によって、組込みシステムの応用分野は拡大の一途をたどっており、 身の回りの電子機器・電気機器のほとんどに組込みシステムが使われています。 組込みシステムの使われている機器の例を表に挙げます。 組み込みシステムの適用例 AV機器 テレビ, ビデオ, デジタルカメラ, セットトップボックス, オーディオ機器 • 家庭電化製品 電子レンジ, 炊飯器, エアコン, 洗濯機 • 個人用情報機器, 娯楽・教育機器 PDA, 電子手帳, カーナビ, ゲームマシン, 電子楽器 • パソコン周辺機器 プリンタ, スキャナ, ディスクドライブ, CD-ROMドライブ • OA機器 コピー, FAX, ワープロ • 通信機器 留守番電話機, ISDN電話機, 携帯電話, PHS, ATMスイッチ, 放送機器・設備, 無線設備, 人工衛星 • 運輸機器 自動車(エンジン制御, ABS, エアバッグ), 列車制御, 航空機制御 • 工業制御, その他 プラント制御, 工業用ロボット, エレベータ, 自動販売機, 医療用機器, 業務用データ端末 • 最終製品が多岐に亘るため、汎用コンピュータに比べて組み込みシステムは非常数と種類が多い。 • ソフトウェアだけでなくハードウェアも専用のものを開発することが多い。また、そのハードウェアに対応したデバイスドライバを作る必要もある。 • 機械の制御を行う場合にはリアルタイム制御が重要になる。 • 大量生産される製品の場合にはコストが非常に重要となるので、必要最低限のメモリと、安価なCPUで動作する必要がある。小規模なシステムでは1チップマイコンを利用することが多い。 • ほとんどの組み込みシステムでは、ユーザがプログラムを入れ替えたり更新したりすることは想定されない。そのため汎用コンピュータよりも自由にオペレーティングシステムやシステム構成を選択できる。 • 組み込みに用いられるOSとしては、日本においてはμITRON仕様OSが採用されることが多い。VxWorks、OS-9、QNXなども広く利用され、また最近では強力なネットワーク機能により本来汎用OSであるNetBSD、OpenBSD、FreeBSDなどのUnix-likeOSにも注目が集まっている。詳しくは、組み込みオペレーティングシステムを参照のこと。 • ただし、現在においても、特に低資源の環境ではOSを採用しないことも多い。 • かつては、ソフトウェアはEPROM(特にUV-EPROMが使われることが多かった)に書き込まれた状態で出荷されたため、出荷後にバグが発見されると、製品回収・交換作業などが必要になり、多大な費用がかかった。近年は主にフラッシュメモリが採用されるようになったので、出荷後の書き換えも可能となったが、大きな影響を及ぼすことには変わりはない。デジタル家電やパソコンの周辺機器などの場合、修正ソフトウェアはネットワークを介して公開されることが多い。 • ソフトウェアはC言語で記述されることが多い。32ビット以上のマイコンなど、比較的ハードウェア資源が豊富な環境ではC++やJavaが使用されることもある一方で、4ビットマイコンなどの資源が貧弱な環境や、逆に他言語では間に合わないような極めて高速な処理を求められる場面では、現在でもアセンブリ言語の使用が必須である。 • (ソフトウェア開発全般の話で)最近では開発にUMLといったオブジェクト指向の手法が取り入れられるようになっている。ただし組み込みシステム開発においては、機能で分類したクラスでプログラムを組み立てるのではなく、信頼性が保証されたモジュールで組み立てるのが普通である。 • デバッグは、ICEと呼ばれる機器を用いてパソコンをCPUに接続してリモートで行う。近年では、ICEを使わずJTAGエミュレータやROMエミュレータなどのエミュレータや、パソコン上でCPUの機能をシミュレートするシミュレータも使用される。 • 近年ではPCベースのハードウェアの低価格化に伴い、PCベースのハードウェアを使用し、OSも組み込み向けにカスタマイズしたWindows CEやLinuxなどが採用されている。Windows Embeddedは航空券のチェックインシステムからコンビニのPOSレジまで幅広く採用されている(組み込み版ではなかったWindowsNT 4.0の頃から組み込みシステムに採用されていた)。 • 携帯電話やデジタル家電、自動車など、必要とする機能が多岐にわたるシステムは、複数のマイコン・複数のOSを組み合わせたものとなり、数百人単位の開発人数・数年規模の開発期間を必要とする。このため、大規模組み込みシステムと呼ばれることがある。 • 専用のハードウェアに専用のソフトウェアが搭載されて製品となるものが多いので、そのテスト工程は、ハードウェア、ソフトウェアの両方にまたがる検証が重要になる。 マイコンはどのようなところで使われているか  最近の家電製品に多く使われている。パソコンで使うマウス、マウスの移動方向と移動量を数値データに変換してパソコンに出力している。 扇風機では、操作スイッチに応じてモータの回転数を制御して風量を調節したり、快適な清涼感を得るために風量を自然の風の揺らぎに近づけたりしている。マイコン内蔵タイマにより一定時間経過したら停止する「お休みタイマ」なども簡単に実現できる。 自動車のキーレスエントリでは、カギ側ではボタン操作情報とシリアル番号・暗号キーなどから、暗号化したシリアルデータを生成するエンコーダに、車体側では送られてきたシリアルデータに含まれる暗号キーを元に解読し、ボタン操作情報を取り出すデコーダに、それぞれマイコンが使われている。同一車種でも所有者が異なると開閉できなかったり、複数のキーで1台の車の開閉ができるしくみは、カギ側のシリアル番号を車体側のマイコンに登録しておくことで、暗号解読の際にシリアル番号の照合を行い、登録してある相手からの情報であるかどうか判断しているからである。  また、エアコンもマイコンを使われてるが、エアコンを例にすると以下のようになる。 a.部屋の温度を調べる(入力) b.部屋の温度と設定温度を比較する(判断) c.設定温度以上であれば止めて、設定温度以下であれば暖める(出力)  基本的には上記のa~cを繰り返して部屋の温度を一定にしている。  ただし、マイコンを使ってプログラムを作るともう少し賢い制御ができる。 例えば25度に温度を設定している場合、上記の処理では25.1度になるとエアコンがOFFして24.9度になるとエアコンがONしてしまい、頻繁にON/OFFを繰り返すことになる。  上記を解決するために、判断を賢くして設定温度が25度でも26度以上でOFFして24度以下でONするようにプログラムを作ることで頻繁なON/OFFを防ぐことができる。 ---- 1/15 冨田 マイコンとは マイコンとは、CPUやメモリを1つのLSIチップに集積した回路のことである。 マイコンとは元々「マイクロコンピュータ」の略称で、文字通り、超小型のコンピュータを意味するのものだった。「パソコン」の用語が広まる以前は、個人レベルで使用するコンピュータシステムを指してマイコンと呼んでいた。ここから派生して、マイコンに「マイコンピュータ」(my computer)という意味が付け加えられた。 マイコンという言葉は最近の家電製品にも使われており一般的になってきた。     CPUは、プログラム(命令)を実行するもの。プログラムでは、ある入力に対して様々な計算や条件判断を行い何らかの出力を行う。  メモリとは、1または0といったようにBIT単位(2進数)のデジタルデータを記録するための半導体記憶素子である。 マイコンはどのようなところで使われているか  最近の家電製品に多く使われている。パソコンで使うマウス、マウスの移動方向と移動量を数値データに変換してパソコンに出力している。 扇風機では、操作スイッチに応じてモータの回転数を制御して風量を調節したり、快適な清涼感を得るために風量を自然の風の揺らぎに近づけたりしている。マイコン内蔵タイマにより一定時間経過したら停止する「お休みタイマ」なども簡単に実現できる。 自動車のキーレスエントリでは、カギ側ではボタン操作情報とシリアル番号・暗号キーなどから、暗号化したシリアルデータを生成するエンコーダに、車体側では送られてきたシリアルデータに含まれる暗号キーを元に解読し、ボタン操作情報を取り出すデコーダに、それぞれマイコンが使われている。同一車種でも所有者が異なると開閉できなかったり、複数のキーで1台の車の開閉ができるしくみは、カギ側のシリアル番号を車体側のマイコンに登録しておくことで、暗号解読の際にシリアル番号の照合を行い、登録してある相手からの情報であるかどうか判断しているからである。  また、エアコンもマイコンを使われてるが、エアコンを例にすると以下のようになる。 a.部屋の温度を調べる(入力) b.部屋の温度と設定温度を比較する(判断) c.設定温度以上であれば止めて、設定温度以下であれば暖める(出力)  基本的には上記のa~cを繰り返して部屋の温度を一定にしている。  ただし、マイコンを使ってプログラムを作るともう少し賢い制御ができる。 例えば25度に温度を設定している場合、上記の処理では25.1度になるとエアコンがOFFして24.9度になるとエアコンがONしてしまい、頻繁にON/OFFを繰り返すことになる。  上記を解決するために、判断を賢くして設定温度が25度でも26度以上でOFFして24度以下でONするようにプログラムを作ることで頻繁なON/OFFを防ぐことができる。  このように、マイコンを使ってプログラムを動かす(実行)ことで細かな制御ができるようになる。 パソコンとマイコンの違い  パソコンとマイコンの大きな違いとして、CPUとしての処理能力が違う。 パソコンはマイコンに比べて単位時間当たりの命令実行数が多くなる。 ひとことで言うとパソコンのCPUが速いということになる。  しかし、使用用途を考慮した場合に速いCPUが必ずしも良いとは限らない。 速いCPUの特徴として以下のことがある。 1.消費電力が大きい 消費電力が大きいとは電気をたくさん使うということ。 バッテリーで動作する物を開発する場合に電気を多く使うCPUを使うとバッテリーで動作できる時間が短くなってる。 一概に言えませんが、クロック周波数(パソコンにある何MHzとか何GHzという数字)が高ければ処理能力が高くなるが、同時に消費電力も高くなる。 2.高価である パソコンで使われているCPUは数千円から数万円の価格で販売されている。 しかし、マイコンになると数百円またはそれ以下という価格でも購入できる。 量産品を作る場合は部品のコストは重要である。 マイクロプロセッサとは トランジスタや他の回路素子を集積した大規模な集積回路でコンピュータの中枢部を構成するもの。 集積回路とは 特定の複雑な機能を果たすために、多数の素子を一つにまとめた電子部品である。主に半導体で構成された電子回路が複数の端子を持つ小型パッケージに封入されてる。 トランジスタとは 増幅、またはスイッチ動作をする半導体素子で、近代の電子工学における主力素子である。 半導体素子とは 半導体の電気伝達の電子工学的な特徴を利用した固体能動素子である。 半導体とは 電気を通す導体や電気を通さない絶縁体に対して、それらの中間的な性質を示す物質である。 第4世代コンピュータ(1980年〜) VLSI(大規模集積回路)を論理素子に使用、450㎡のENIACの性能が電卓の大きさで実用。 ENIACとは 世界初のコンピュータ。 第1(〜1958) 当時、ラジオに使われていた真空管を論理素子に使ってコンピュータが作られた。 第2(1958〜1963) トランジスタを論理素子に使ってコンピュータ。 第3(1964〜1974) トランジスタを多数組み合わせ小型高機能回路ICを論理素子を使ってコンピュータ。 第5世代コンピュータ(開発中)  非ノイマン型コンピュータ.パターン認識が容易にできるように脳の働きをモデルにして開発中であるが,まだ実現していない. 非ノイマン型コンピュータとは、命令を1ステップずつ実行するノイマン型に対して、並列処理、データフロー、リダクションなどの処理方式を採用したコンピュータのことである。ニューロコンピュータやバイオコンピュータなど、次世代型のコンピュータのほとんどは非ノイマン型コンピュータにあたる。 ICとは 集積回路。 論理素子とは 論理演算を行うための最小の回路を論し素子と呼ぶ。 マイコンが組み込まれている 携帯 通話ボタンを押すと通話ができる。電話帳機能や発着信履歴の保存の機能。 自動車 エンジン制御用のECU(エンジンコントロールユニット) 炊飯器 ボタンを押すとご飯が炊ける。 他もそんな感じ。 アナログ回路とデジタル回路とは アナログとは、連続した入力信号の変化に対して出力信号の状態も連続的に変化する回路。連続した入力信号の変化に対して、有限個の出力信号の状態しか認めない回路はデジタル回路と呼ぶ。 アナログとデジタルの違いは、時計で例えるなら、針が文字盤のどの位置をさしているかで時刻を読み取る形式の時計はアナログ、液晶や発光ダイオードの点灯や非点灯で数字を表す形式の時計はデジタルの概念。 2章 データフローという用語は、システム内のデータの流れを指す言葉としても使われ、データフロー図内の矢印がデータフローと呼ばれている。データフロー図のデータフローは、外部実体やプロセスやデータストアの間のデータの流れを表現したものである。 ノイズリダクション(Noise reduction)とは、音声及び映像の信号に於いて雑音と見なされる成分を除去するために用いる装置あるいは信号処理ソフトウェアである。 アドレッシングモード プロセッサの命令には操作対象をオペランドで指定するものがあり、その指定方法の詳細がアドレッシングモードと呼ばれるものである。 オペランド(被演算子、引数、operand)という。たとえば、n と 3 との和を表す式 "n + 3" において、"+" は演算子であり、そのオペランドは "n" と "3" である。 リニアアドレス空間 リニア… 電子回路はアナログ電子回路のこと アドレス空間… メモリアドレスはコンピュータのメモリ内の物理的位置を識別するものであり、住所とある意味で類似している。アドレスはデータが格納されている位置を指すが、それはちょうど人間の住所がその人の居住地を指すのと同じである。 ステートとは何か?――例えば、「システムA」で処理を実行した「結果B」を基に、「システムC」で次の処理を行うとする。この「結果B」というのが、「ステート」である。分かりやすく、eコマースサイトを例に挙げてみよう。  あるパソコン系ショッピングサイトでデジタルカメラが安売りしていたので、「購入」ボタンを押してショッピングカートに入れたとしよう。まだ欲しいものがあるかもしれないので、その場では「決済」ボタンを押さずに、そのままショッピングを続ける。入手したかったソフトも見つけたので「購入」ボタンを押し、最後に「決済」ボタンを押して、以前、カートに入れておいたデジタルカメラと一緒に購入する手続きに移る。このようにサービスを一連の流れで提供するためには、誰が何を買ったのか(買おうとしているのか)という状態(ステート)を画面遷移の中で保持しなければならない。ちなみに、現在のショッピングサイトでは、このようなサービスを提供している。 バス コンピュータにおいて、1つの信号線・通信線に複数のデバイスがぶら下がる構造を「バス型トポロジー」と言う。 レジスタ コンピュータのプロセッサが内部に保持する少量で高速な記憶装置である。 コントロールレジスタ ステータスレジスタで読み出される各種フラグをリセット(解除)したり、プロセッサを特殊な動作状態にする(動作速度を落として低消費電力状態にするなど)ことを指示するレジスタ (プルアップとはポートを適切な抵抗で電源のプラス側に接続すること(電圧を吊り上げる ダーリントントランジスタとは、電流増幅率(hFE)を大きくするために、トランジスタを縦属に 2 段接続したものである。ダーリントントランジスタの電流増幅率は、2 つのトランジスタの電流増幅率の積である。 シリアル伝送。1本の回線を使って複数のデータを送る方式。 インタフェース - ものごとの境界となる部分と、その境界でのプロトコルを指す プロトコル(protocol、プロトコールとも)とは、複数の者が対象となる事項を確実に実行するための手順等について定めたもの。 調歩同期方式 調歩同期方式は、無情報の時にストップビットを連続で送出しておく ■8 種類のアドレッシングモード レジスタ直接 レジスタ間接 ディスプレースメント付きレジスタ関節 ポストインクリメント/プリデクリメントレジスタ間接 絶対アドレス イミディエイト プログラムカウンタ相対 メモリ間接 プログラムカウンタ 次に実行するべき命令が格納されているメインメモリ上のアドレスを指し示すレジスタ 汎用レジスタ 特定の目的を持たず、命令により各種機能を果たすレジスタ。 スタックポインタ これもアドレスレジスタの一種であるが、プロセッサの動作状態(すなわちプロセッサ内部レジスタの値)を一時保存する場所のアドレスを保持する目的に用いられる場合、スタックポインタと呼ばれる。 フラグレジスタ 処理の条件判定結果を保持するレジスタ アドバンスモード プログラム領域とデータ領域合計で最大16Mバイトまでサポート ---- 1/8 冨田 前回はやはり回路の配線がしっかり挿してなかった。しっかり挿したらLEDがしっかり光ってくれた。 また、LCDのモジュールの制御のプログラミングを打ったが、コンパイルができない。次回見直して完成したい。 ---- 12/26 冨田 昨日_ _dataの所を_dataをにしたが、___dataにした。あと、変換ができなかった理由は、数字のゼロと英語の大文字のオーと間違えて打ったため。 プログラミングはできたのだが、しっかりLEDが思ったとおりに光ってくれない。 次回は回路を見直していく。 ---- 12/25 冨田 前回のcrt0.sをアセンブルできなかったが、_ _dataの所を_dataにしたところできた。次にcrt0.oとbasicio.oのリンクするが失敗。原因は先ほどの _ _dataの所を_dataにしたためリンクの ファイルも_ _dataの所を_dataに直してなかったから。 しかし最後のbasicio.coffをbasicio.motに変換するところでエラーが多数。原因はわからないのでプログラミングの中を少しずつ書き直してみる。 石垣 H8(3069)がウェブサーバ。IP:192.168.10.2 PCをクライアント。IP:192.168.10.1 H8にはウェブサーバプログラム(MESの開発者のサンプル)http.elfを搭載。 そのほか、H8のマザーボード上のLEDをクライアント側の操作で光らせるCGIプログラムbrled.elfも搭載。 サーバとクライアントはクロスLANケーブルで接続。 ターミナルでH8を操作し、http.elfを実行。 クライアントのブラウザでサーバ内のプログラムbrled.elf(http://192.168.10.2:8088/brled.elf)を実行。 クライアントのブラウザにindex.htmlが表示。 ブラウザ上のチェックボックスのデータを送信ボタンを押したときにサーバに送信。   送信するとき、http://192.168.10.2:8088/brled.elf  (この部分にフィールド名=値1&フィールド名=値2…とエンコードされて、サーバに渡される。)   サーバは渡された値によってマザーボード上のLEDを点灯/消灯させる。      ---- 12/20 冨田 テスト用の書き込み失敗の原因を判明。プログラミングを書き込むときにMD2端子をGNDに接続し、FWE端子を 5Vに接続をしてなかったから。 今はポートの入出力のプログラミングを作っているが、どうしてもスタートアップルーチンがうまく起動しな い。原因はプログラミングの.dataセクションの内容だと思われるが、どこがだめなのか分からない… 石垣 ブラウザからマザーボード上のLEDを点灯させることに成功。(プログラムは参考にしているHPより) IEの設定で3069と通信ができなかった。(pingは通っていた。) RS232Cじゃなくてブラウザからなにかできるようにしようかなぁと思案中。 ---- 12/18 石垣 COMポートの不調はドライバのインストール後、再起動しなかったから?の模様。あの後直った。 ブラウザからマザーボード上のLEDを点灯させるつもり。 だが、うまく繋がってない。WEBサーバのプログラム(公式のとこから拾ってきたの)がちょっと違う? 要確認 ---- 12/17 石垣 3069へtftpによってLAN経由で自作プログラムをのせて実行することはできた。 が、USBシリアルポート変換ケーブルをつかってみたら今まで使っていたCOMポートまで動作不調に。 (COMポートは開いているが、H8(3069、3664ともに)通信できない) 自分の使っているPCが駄目みたい。 変換ケーブルか?変換ケーブルのせいか? ---- 12/14 石垣 OS(以下MES)を乗せ変えたのはいいが、自作プログラムをRAMに転送させる方法がわかんない。 仮想サーバ立ち上げて、LAN経由で3069側から落とさせるらしい。 そのための設定に手間取り中。 でも、電光掲示板につかっている3664のほうもMESを使っているような感じが・・・ なので、これで通信ができれば結構簡単にいけるかも? 3069とPCはLAN(クロス)ケーブルで、直接つなぐつもり。 ルータって使っちゃいけないんですよね? 調べたところ、RS232Cケーブルをつかってもいけそう?? ---- 12/13 石垣 3069のOSは参考にしているHPと同じものに。 ただし、プログラムを乗せるときにLAN経由らしいのでクロスケーブルを購入予定(探したけど、研究室内にはなさそう) これで、RS232Cでターミナルでのコマンドによる操作でなく、自作プログラムで操作ができれば 通信プログラムは間違っていないことになる。 ---- 12/12 石垣 3069でSCIをユーザープログラムで動作させる場合は、JP1から線を引き出してDサブ9ピンとつなげなければならない。 え?また工作するん? 3052に使っているものを拝借するか・・・というか、それが一番はやそう。 参考にしているところが新しいOSのため、3069につんでいるOSを最新のものに書き換えたほうがよさそう。 これで通信ができればwin側のプログラムは間違っていないことになる。 そうすると問題点は、 送るデータが間違っている。(形式どおりにどうコマンドを送るか?) 送信データバイト数の設定が間違っている。 に、絞ることができると思われる。 ---- 12/11 石垣 3069にデータを送りつけたとき、どこにはいるのか? 3069側のプログラムは? 3052は今後、入出力とできればLCD ---- 12/10 石垣 winから通信ソフトを使わずに、プログラムから電光掲示板を操作する。 けど、できない。 送信データバイトの設定がおかしい? ファームウェアへのコマンドが届いてない? 3664(電光掲示板セット)の前に3069で通信のテストをする。 これができれば、通信はできていると思われる。 そうすると問題は、3664のファームウェアに送るコマンドデータが おかしいとわかるはず。 毎日いて、この進み具合はマズイ ---- 12/6 冨田 テスト用のプログラムをCPUに書き込み。 だが失敗。色々試したが原因は不明。あとはハンダゴテでつけた所の接触不良の可能性があるから、 次回はそこの所をチェックする。 ---- 12/5 石垣 Cで直接3664と通信することにする。 コマンドと数値だけで直接操作できる?(ターミナルが内部で変換しているのかいないのか) 通信プログラムはみつけたので、それを解読。自分で使えるようアレンジ。 ---- 12/3 石垣 ハイパーターミナルをつかってコマンドによる希望座標のLEDを光らせることができる。 図形LEDで表示させる。 毎回、座標を計算してコマンドで送るのは大変なのでC言語で自動化しようとおもう。 そのためのプログラムを考える。 問題は、3664への通信。 ターミナルにコマンドと座標をおくってターミナル経由でシリアル通信する? ---- 11/28 冨田 h8のテストプログラムを作成。 ---- 11/28 石垣 3664と電光掲示板は壊れてなかった。 電光掲示板のほうは一緒に入っていたソフトで動作確認済み。 このソフトなしで自分でC言語で組んで表示させるようにする。したい。できればいいなぁ・・・ LCDも新たに買ってきたのでこっちの表示もさせてみる。 Cで組むために、ファームウェアのコマンド解析。etc ---- 11/22 h8-3664と電光掲示板の動作確認 動作テストしたあとに、3664がショート・・・ ---- 11/08 >/*h8マイコンテストプログラム*/ >/*ポート3を入力に設定 押しボタンスイッチ*/ >/*ポートBを出力に設定 LED*/ >/*押しボタンスイッチが押されている間LED点滅*/ >/*離したらLED消灯*/ > >#include <h8/reg3067.h> /*h8/3069fで使用するI/Oポートを定義*/ >#include <h8/syscall.h> /*h8/OSを使う場合に必ず指定をする*/ > >int main() { > int sw; > PBDDR = 0xff;/*PB全8ビットのポートを出力に設定する*/ > P3DDR = 0x00;/*P3を全ビット入力に設定*/ > > while(1) { > sw = P3DR & 0x01; /*スイッチ入力*/ > if(sw == 0){ /*スイッチがONならば*/ > PBDR = 0x0f; /*LED出力*/ > sleep(5); /*0.5秒待機*/ > PBDR = 0; /*LED消灯*/ > sleep(5); /*0.5秒待機*/ > } > else /*スイッチがOFFならばLED消灯*/ > PBDR = 0; > } >} sleepの場所をwaitでの待機にしようとしたがコンパイル時にできなかった。 /usr/h8300-hms/lib/h8300h/int32/libc.a(syswait.o): In function `wait': syswait.c:12: undefined reference to `_wait' collect2: ld returned 1 exit status sw = P3DR & 0x01; /*スイッチ入力*/の部分 ビット0の状態を調べるために1とANDしている。 すると、ビット0以外のビットは必ず0にクリアされるため結果的にビット0だけが残る。 それを変数swにいれているのでビット0の値で処理ができる。 作成したスイッチ入力回路はスイッチがONの時に0(LOW)となるので変数swが0の時、 IF文の中の処理に向かう。 ---- 11/6 入力テスト終了 P3と接続したスイッチを押すとPBに接続されたLEDが消灯 ---- 10/29 h8/3664と電光掲示板との接続リード線の”準備” プレゼンの準備 ---- 10/18 LCD死亡? LCDは配線がどこか繋がっていなかっただけで使えた模様。 おいらの一日を返して!orz LCD探してくる。 次回CPUボードの入力を考える。 ---- 10/11 LCDのテストをしたところ表示がされなかったので、マザーボードから取り外し確認してみることに。 しかし、取り外せない、まいった。 LCDはなかったことにするか??思案中 マザーボードのLEDも点灯することを確認。 ---- 10/04 Bポートを使い、四つのLEDを(0101)(1010)の交互に点灯させることに成功。次はスイッチを追加して、スイッチが押されたときに点灯させるようにする。 また、他のポート(つかっていい場所)でも試してみる。 ---- 10/03 h8/3069を通してLEDを点灯することに成功。ひゃっほーい ただし、LEDと抵抗だけの回路なので元のものとは違う? 今までできなかったのはLEDが死んでいたのと、プログラムミス。 回路もまちがっていたかもしれない。要確認。 ---- 09/27 動作確認用のLED回路作成。 電子回路を誰か確認していただけるとありがたい。 完成した後、3069マザーボードにLEDがついているのを発見。これ使ってもいけそう。 h8/3069にのせるLED点灯用のプログラムは完成した。 ---- ただし、include<h8/3067.h>(h8/3069のI/Oポート定義)がないといわれる。 なので、defineでポートごとに定義。 h8/OSのh8/syscall.hはあるのにおかしい。同ファイルにreg3067.hがあるのにもかかわらず認識されず。 10/2 include<h8/reg3067.h>で解決しました。 ソースが読みにいってるファイルになかっただけでした。 ---- しかし、h8/3069のRAMに書き込まれた、アドレス「fff600」にアクセスできず。 やり方がおかしい? 要確認。 壊れたh8/3069よりDCジャックとDサブ9ピン(メス)を分離。 h8/3052の方で再利用予定。 LED点灯は来週末までには!! 3052のRS232C用のコードは作成完了。でも、Dサブ取れたんだからこれ使ったほうが早そう。 >/*led P4*/ >/*#include <h8/3067.h> h8/3069fで使用するI/Oポートを定義*/ >#include <h8/syscall.h> /*h8/OSを使う場合に必ず指定をする*/ >#define P4DDR (*(volatile unsigned char*)0xfffc8) /*ポート4の定義*/ >#define P4DR (*(volatile unsigned char*)0xfffca) >int main() { > P4DDR = 0x01; /*P4のポートを出力に設定する*/ > while(1) { > P4DR = 0x00; /*P4をLにする*/ > sleep(10); /*1秒の時間待ち*/ > P4DR = 0x01; /*P4をHにする*/ > sleep(10); /*1秒の時間待ち*/ > } >} C:\Documents and Settings\烏野\h8program>h8300-hms-gcc -O -mh -mint32 -T ram3067 .x -o led.coff -nostartfiles ramcrt0.s led.c -lc C:\Documents and Settings\烏野\h8program>h8300-hms-objcopy -O srec led.coff led. mot C:\Documents and Settings\烏野\h8program>put led.mot fff600 10 5E FF F6 06 54 70 01 00 6D F6 0F F6 01 00 6D F4 fff610 10 7A 03 00 0F FF C8 FA 01 68 BA 7A 04 00 0F FF CA fff620 10 18 AA 68 CA 01 00 6B 22 00 00 01 3C 1A 80 88 0A fff630 10 5D 20 FA 01 68 CA 01 00 6B 22 00 00 01 3C 1A 80 fff640 6 88 0A 5D 20 40 DA ---- 09/11 サンプルプログラムの動作 ハイパータミナルからexecコマンドでサンプルプログラムを動作さ せようとすると止まる。 原因不明。 たまに、dumpでもとまる。(反応がなくなる) CPUボード側でリセットスイッチを押すと再び反応する。 通信時に光るはずのLEDが発光せず。 不良品? ---- 09/04 マザーボード作成完了 CPUボードの動作確認未 ---- 07/16 H8/3069F(CPUボード完成 要動作確認) マザーボードはCPUボード動作確認後作成予定 KARAAGEに開発環境セッティング RS232C9ピン:入手済 h8/3069FCPUボードにOSインストール 8/9:インストール完了 電源は+5V安定化電源 ---- h8マイコンボードの制作目的 終了 CPUの動作確認最優先   なんらかの形で動作確認をする。   候補:LEDと接続し点灯 予定   入力と出力のテスト   スイッチによる入力とLEDによる出力 (未)LEDとの接続 LEDと接続し動作確認を行ったら、マザーボードの作成 のちLCDによる文字表示など (要)目的は? h8/3069FはLANボードなので通信を使ってなんらかの成果を出したい。LCDがマザーボードについているので、外部からの入力に反応してなんらかの出力をする? 秋月電子 h8/3069Fのぺーじ http://akizukidenshi.com/catalog/items2.php?q=%22K-00168%22&s=popularity&p=1&r=1&page= 参考:h8/3052 http://www.mech.tohoku-gakuin.ac.jp/rde/contents/tech/h8/h8_3052.html ---- 自宅PCでコンパイルしたいなどと聞いたので C言語用コンパイラ&エディタなど ここを参考に http://www.ooyashima.net/db/prog.htm#vc BCC Developerは使えるようにしたので、インストールのサポートはできます。 ちなみに、BCC Developerは統合開発環境です。 BCC Developerのreadme.txtを読めばインストは出来るはずです。 コンパイラ本体はユーザー登録の必要あり 今まで自分の使っているものが配布終了していたので、どれがいいかは分からなくなりました。 なげっぱなしもあれなんで。 連絡用においておきますね。っ[sinnya07atgmail.com]at=@
石垣 [sinnya07atgmail.com]at=@ 01/28 docファイルで現状のファイルをUP H8の応用範囲をもっともっとさがしてみてください。 文章の統合はあとでします。 メモ PB0はCN1の33ピン(3069f) 3069マザーボード上のLEDのポート P4 3664 [[LED電光掲示板>http://www.humblesoft.com/j405board/index.html]] マイコン4004開発に携わった偉い人 [[嶋 正利氏>http://v-t.jp/jp/topics/column/shima_column_main.php]] ・はじめに 昨今、身の回りの機械製品にはマイクロコンピュータが組み込まれ使われている。 マイクロコンピュータ 以下略 応用するためのドキュメントを作成する。 ・ マイコンとは CPU、LSIの説明 マイコンの分野 組み込み モータなどの高電流を必要とするものへの信号の伝え方 ・研究で使用した装置 AKI-H8/3069F日立フラッシュマイコンH8/3069F搭載のキット。 3069の写真 AKI-H8/3052F日立フラッシュマイコンH8/3052F搭載のキット。 3052の写真 ・AKI-H8/3069FとAKI-H8/3052の仕様。        3069 3052 CPU H8/3069 16ビット H8/300H 25MHz H8/3052 16ビット H8/300H 25MHz 内臓ROM 512KB 512KB 内臓RAM 16KB 8KB SCI RS-232C RS-232C ネットワークコントローラ あり なし I/Oポート 最大79 最大78 A/D 10ビットA/Dコンバータ8ch 10ビットA/Dコンバータ8ch D/A 8ビットD/Aコンバータ 2ch 8ビットD/Aコンバータ 2ch 本研究で使用したマイコンボードにはRS-232Cドライバ/レシーバが実装されており、パソコンとケーブルでつなぐことにより通信が可能になっている。 ただしAKI-H8/3052Fのほうは接続するためのDサブ9ピンコネクタがないため、回路図通りの接続ができるように回路を事前に作らなければならない。 AKI-H8/3069FはRJ45ソケット、RTL8019ネットワークコントローラが共に搭載されておりLANが使用することが出来る。 3069の転送方法(仮想TFTPサーバ)と実行(ターミナル) 3052の転送方法と実行 マイコンへのプログラム転送や実行は、 ・ OSの有無による開発環境の違い? 3069で行ったLEDの点灯 3052で行ったLEDの点灯 その二つの違い。 ・まとめ プログラムがハードにどのような影響をあたえているか。理解できた(0と1の信号をおくっているだけである) ・参考文献 ・付録  H8の種類 3069のbrledのプログラム 3069のLEDのプログラム 3052のLEDのプログラム H8/3069Rグループ 仕様概要 項 目 仕 様 CPU: • H8/300CPUに対してオブジェクトレベルで上位互換 • o 汎用レジスタマシン o  汎用レジスタ:16ビット×16本(8ビット×16本+16ビット×8本、32ビット×8本としても使用可能) o 高速動作 o  最大動作周波数:25MHz  加減算:80ns  乗除算:560ns o アドレス空間16Mバイト o 特長ある命令 o  8/16/32ビット転送・演算命令  符号なし/符号付き乗算命令 (8ビット×8ビット、16ビット×16ビット)  符号なし/符号付き除算命令 (16ビット÷8ビット、32ビット÷16ビット)        ビットアキュムレータ機能  レジスタ間接指定によりビット番号を指定可能なビット操作命令 メモリ: • H8/3069RF o ROM:512Kバイト o RAM:16Kバイト•   割り込みコントローラ: • 外部割込み端子7本:NMI、IRQ0~IRQ5 • 内部割込み36要因 • 3レベルの割込み優先順位が設定可能 バスコントローラ: • アドレス空間を8エリアに分割し、エリアごとに独立してバス仕様を設定可能 • エリア0~7に対してそれぞれチップセレクト出力可能 • エリアごとに8ビットアクセス空間/16ビットアクセス空間を設定可能 • エリアごとに2ステートアクセス空間/3ステートアクセス空間を設定可能 • 2種類のウェイトモードを設定可能 • エリアごとにプログラムウェイトのステート数を設定可能 • バーストROMを直接接続可能 • 最大8MバイトのDRAMを直接接続可能(またはインターバルタイマとして使用可能) • バス権調停機能 DMAコントローラ(DMAC): • ショートアドレスモード • o 最大4チャネルを使用可能 o I/Oモード/アイドルモード/リピートモードの選択可能 o 起動要因:16ビットタイマチャネル0~2のコンペアマッチ/インプットキャプチャA割込み、A/Dコンバータ の変換終了割込み、シリアルインタフェース の送信データエンプティ/受信データフル割込み、外部リクエスト • フルアドレスモード • o 最大2チャネルを使用可能 o ノーマルモード/ブロック転送モードの選択可能 o 起動要因:16ビットタイマチャネル0~2のコンペアマッチ/インプットキャプチャA割込み、A/Dコンバータ の変換終了割込み、外部リクエスト、オートリクエスト 16ビットタイマ×3チャネル: • 16ビットタイマ3チャネルを内蔵。最大6端子のパルス出力、または最大6種類のパルスの入力処理が可能 • 8ビットタイマカウンタ×1(チャネル0~2) • アウトプットコンペア出力/インプットキャプチャ入力(兼用端子)×2(チャネル0~2) • 同期動作可能(チャネル0~2) • PWMモード設定可能(チャネル0~2) • 位相計数モード設定可能(チャネル2) • コンペアマッチ/インプットキャプチャAの割込みによりDMAC起動可能(チャネル0~2) 8ビットタイマ×4チャネル: • 8ビットアップカウンタ(外部イベントカウント可能) • タイムコンスタントレジスタ×2 • 2チャネルの接続が可能能 プログラマブルタイミングパターンコントローラ(TPC): • 16ビットタイマをタイムベースとした最大16ビットのパルス出力が可能能 • 最大4ビット×4系統のパルス出力が可能(16ビット×1系統、8ビット×2系統などの設定も可能) • ノンオーバラップモード設定可能 • DMACによる出力データの転送可能 ウォッチドッグタイマ(WDT)×1チャネル: • オーバフローによりリセット信号を発生可能 • リセット信号の外部出力可能(ただしF-ZTAT版は不可) • インターバルタイマとして使用可能 シリアルインタフェース×3チャネル: • 調歩同期/クロック同期式モードの選択可能 • 送受信同時動作(全二重動作)可能 • 専用のボーレートジェネレータ内蔵 • スマートカードインタフェース拡張機能内蔵 A/Dコンバータ: • 分解能:10ビット • 8チャネル:単一モード/スキャンモード選択可能 • アナログ変換電圧範囲の設定が可能 • サンプル&ホールド機能付 • 外部トリガまたは8ビットタイマのコンペアマッチによるA/D変換開始可能 • A/D変換終了割込みによるDMAC起動可能 D/Aコンバータ: • 分解能:8ビット • 2チャネル • ソフトウェアスタンバイモード時D/A出力保持可能 I/Oポート: • 入出力端子70本 • 入力端子9本 動作モード: • 7種類のMCU動作モード モード アドレス空間 アドレス端子 バス幅初期値 バス幅最大値 モード1 1Mバイト A19~A0 8 ビット 16 ビット モード2 1Mバイト A19~A0 16 ビット 16 ビット モード3 16Mバイト A23~A0 8 ビット 16 ビット モード4 16Mバイト A23~A0 16 ビット 16 ビット モード5 16Mバイト A23~A0 8 ビット 16 ビット モード7 1Mバイト - - - • モード1~4では内蔵ROMは無効となります。 低消費電力状態: • スリープモード • ソフトウェアスタンバイモード • ハードウェアスタンバイモード • モジュール別スタンバイ機能あり • システムクロック分周比可変 その他: • クロック発振器内蔵 論文目次候補 改 はじめに 昨今、身の回りの機械製品にはマイクロコンピュータが組み込まれ使われている。 マイクロコンピュータ 以下略 応用するためのドキュメントを作成する。 H8の種類の多さ  H8の役割 研究で使用した装置  3069と3052の違い。OSの有無による違い。 まとめ 参考文献 付録 ---- 3069 LANによる通信。CGIが使える。WEBサーバ。 CGIを使ったブラウザ上からマザーボード上のLEDの操作。 マザーボード上のDIPスイッチのON/OFFをブラウザ上に表示。 3664/LED電光掲示板 付属のソフトウェアによる文字列の表示。 >/*LEDをブラウザから点灯消灯するプログラム*/ >#include <h8/reg3067.h> >#include <mes2.h> >int main(int argc, char **argv) { >char led[2][4]; >cgi_value(*(argv+1), "led0", led[0], 3); >cgi_value(*(argv+1), "led1", led[1], 3); >P4DDR = 0xc0; >P4DR = 0; >if(led[0][0] == 'o') P4DR |= 0x40; >if(led[1][0] == 'o') P4DR |= 0x80; >printf("<html><body>\r\n"); >printf("<h1>LEDテストページ</h1><hr>\r\n"); >printf("<p>argcは%dです。</p>\r\n",argc); >printf("<p>*argvは%sです。</p>\r\n",*argv); >printf("<p>*(argv+1)は%sです。</p>\r\n",*(argv+1)); >printf("<p>赤は%sです</p>\r\n",led[0]); >printf("<p>緑は%sです</p>\r\n",led[1]); >printf("<form action=\"%s\">",*argv); >printf("led1(赤)<input type=\"checkbox\"name=\"led0\" %s>\r\n",(led[0][0]=='o') ? "checked" : ""); >printf("led2(緑)<input type=\"checkbox\"name=\"led1\" %s><br>\r\n",(led[1][0]=='o') ? "checked" : ""); >printf"<inputtype=\"submit\"value=\"submit\"><br>\r\n"); >printf("</form><hr>\r\n"); >printf("</body></html>\r\n"); >} このプログラムによるブラウザの表示 添付ファイル参照 led無  LEDのチェックボックスがOFFの状態 led赤  赤のチェックボックスがON 緑のチェックボックスがOFFの状態 led緑  赤のチェックボックスがOFF 緑のチェックボックスがONの状態 led赤緑 赤のチェックボックスがON 緑のチェックボックスがONの状態 ---- 組み込みシステム  携帯電話、洗濯機、炊飯器、テレビ、HDレコーダ、iPod、車などには コンピュータが入っています。これらに入っているコンピュータシステムを、 組込みシステムと呼びます。近年の半導体技術・マイクロプロセッサ技術の 進歩によって、組込みシステムの応用分野は拡大の一途をたどっており、 身の回りの電子機器・電気機器のほとんどに組込みシステムが使われています。 組込みシステムの使われている機器の例を表に挙げます。 組み込みシステムの適用例 AV機器 テレビ, ビデオ, デジタルカメラ, セットトップボックス, オーディオ機器 • 家庭電化製品 電子レンジ, 炊飯器, エアコン, 洗濯機 • 個人用情報機器, 娯楽・教育機器 PDA, 電子手帳, カーナビ, ゲームマシン, 電子楽器 • パソコン周辺機器 プリンタ, スキャナ, ディスクドライブ, CD-ROMドライブ • OA機器 コピー, FAX, ワープロ • 通信機器 留守番電話機, ISDN電話機, 携帯電話, PHS, ATMスイッチ, 放送機器・設備, 無線設備, 人工衛星 • 運輸機器 自動車(エンジン制御, ABS, エアバッグ), 列車制御, 航空機制御 • 工業制御, その他 プラント制御, 工業用ロボット, エレベータ, 自動販売機, 医療用機器, 業務用データ端末 • 最終製品が多岐に亘るため、汎用コンピュータに比べて組み込みシステムは非常数と種類が多い。 • ソフトウェアだけでなくハードウェアも専用のものを開発することが多い。また、そのハードウェアに対応したデバイスドライバを作る必要もある。 • 機械の制御を行う場合にはリアルタイム制御が重要になる。 • 大量生産される製品の場合にはコストが非常に重要となるので、必要最低限のメモリと、安価なCPUで動作する必要がある。小規模なシステムでは1チップマイコンを利用することが多い。 • ほとんどの組み込みシステムでは、ユーザがプログラムを入れ替えたり更新したりすることは想定されない。そのため汎用コンピュータよりも自由にオペレーティングシステムやシステム構成を選択できる。 • 組み込みに用いられるOSとしては、日本においてはμITRON仕様OSが採用されることが多い。VxWorks、OS-9、QNXなども広く利用され、また最近では強力なネットワーク機能により本来汎用OSであるNetBSD、OpenBSD、FreeBSDなどのUnix-likeOSにも注目が集まっている。詳しくは、組み込みオペレーティングシステムを参照のこと。 • ただし、現在においても、特に低資源の環境ではOSを採用しないことも多い。 • かつては、ソフトウェアはEPROM(特にUV-EPROMが使われることが多かった)に書き込まれた状態で出荷されたため、出荷後にバグが発見されると、製品回収・交換作業などが必要になり、多大な費用がかかった。近年は主にフラッシュメモリが採用されるようになったので、出荷後の書き換えも可能となったが、大きな影響を及ぼすことには変わりはない。デジタル家電やパソコンの周辺機器などの場合、修正ソフトウェアはネットワークを介して公開されることが多い。 • ソフトウェアはC言語で記述されることが多い。32ビット以上のマイコンなど、比較的ハードウェア資源が豊富な環境ではC++やJavaが使用されることもある一方で、4ビットマイコンなどの資源が貧弱な環境や、逆に他言語では間に合わないような極めて高速な処理を求められる場面では、現在でもアセンブリ言語の使用が必須である。 • (ソフトウェア開発全般の話で)最近では開発にUMLといったオブジェクト指向の手法が取り入れられるようになっている。ただし組み込みシステム開発においては、機能で分類したクラスでプログラムを組み立てるのではなく、信頼性が保証されたモジュールで組み立てるのが普通である。 • デバッグは、ICEと呼ばれる機器を用いてパソコンをCPUに接続してリモートで行う。近年では、ICEを使わずJTAGエミュレータやROMエミュレータなどのエミュレータや、パソコン上でCPUの機能をシミュレートするシミュレータも使用される。 • 近年ではPCベースのハードウェアの低価格化に伴い、PCベースのハードウェアを使用し、OSも組み込み向けにカスタマイズしたWindows CEやLinuxなどが採用されている。Windows Embeddedは航空券のチェックインシステムからコンビニのPOSレジまで幅広く採用されている(組み込み版ではなかったWindowsNT 4.0の頃から組み込みシステムに採用されていた)。 • 携帯電話やデジタル家電、自動車など、必要とする機能が多岐にわたるシステムは、複数のマイコン・複数のOSを組み合わせたものとなり、数百人単位の開発人数・数年規模の開発期間を必要とする。このため、大規模組み込みシステムと呼ばれることがある。 • 専用のハードウェアに専用のソフトウェアが搭載されて製品となるものが多いので、そのテスト工程は、ハードウェア、ソフトウェアの両方にまたがる検証が重要になる。 マイコンはどのようなところで使われているか  最近の家電製品に多く使われている。パソコンで使うマウス、マウスの移動方向と移動量を数値データに変換してパソコンに出力している。 扇風機では、操作スイッチに応じてモータの回転数を制御して風量を調節したり、快適な清涼感を得るために風量を自然の風の揺らぎに近づけたりしている。マイコン内蔵タイマにより一定時間経過したら停止する「お休みタイマ」なども簡単に実現できる。 自動車のキーレスエントリでは、カギ側ではボタン操作情報とシリアル番号・暗号キーなどから、暗号化したシリアルデータを生成するエンコーダに、車体側では送られてきたシリアルデータに含まれる暗号キーを元に解読し、ボタン操作情報を取り出すデコーダに、それぞれマイコンが使われている。同一車種でも所有者が異なると開閉できなかったり、複数のキーで1台の車の開閉ができるしくみは、カギ側のシリアル番号を車体側のマイコンに登録しておくことで、暗号解読の際にシリアル番号の照合を行い、登録してある相手からの情報であるかどうか判断しているからである。  また、エアコンもマイコンを使われてるが、エアコンを例にすると以下のようになる。 a.部屋の温度を調べる(入力) b.部屋の温度と設定温度を比較する(判断) c.設定温度以上であれば止めて、設定温度以下であれば暖める(出力)  基本的には上記のa~cを繰り返して部屋の温度を一定にしている。  ただし、マイコンを使ってプログラムを作るともう少し賢い制御ができる。 例えば25度に温度を設定している場合、上記の処理では25.1度になるとエアコンがOFFして24.9度になるとエアコンがONしてしまい、頻繁にON/OFFを繰り返すことになる。  上記を解決するために、判断を賢くして設定温度が25度でも26度以上でOFFして24度以下でONするようにプログラムを作ることで頻繁なON/OFFを防ぐことができる。 ---- 1/15 冨田 マイコンとは マイコンとは、CPUやメモリを1つのLSIチップに集積した回路のことである。 マイコンとは元々「マイクロコンピュータ」の略称で、文字通り、超小型のコンピュータを意味するのものだった。「パソコン」の用語が広まる以前は、個人レベルで使用するコンピュータシステムを指してマイコンと呼んでいた。ここから派生して、マイコンに「マイコンピュータ」(my computer)という意味が付け加えられた。 マイコンという言葉は最近の家電製品にも使われており一般的になってきた。     CPUは、プログラム(命令)を実行するもの。プログラムでは、ある入力に対して様々な計算や条件判断を行い何らかの出力を行う。  メモリとは、1または0といったようにBIT単位(2進数)のデジタルデータを記録するための半導体記憶素子である。 マイコンはどのようなところで使われているか  最近の家電製品に多く使われている。パソコンで使うマウス、マウスの移動方向と移動量を数値データに変換してパソコンに出力している。 扇風機では、操作スイッチに応じてモータの回転数を制御して風量を調節したり、快適な清涼感を得るために風量を自然の風の揺らぎに近づけたりしている。マイコン内蔵タイマにより一定時間経過したら停止する「お休みタイマ」なども簡単に実現できる。 自動車のキーレスエントリでは、カギ側ではボタン操作情報とシリアル番号・暗号キーなどから、暗号化したシリアルデータを生成するエンコーダに、車体側では送られてきたシリアルデータに含まれる暗号キーを元に解読し、ボタン操作情報を取り出すデコーダに、それぞれマイコンが使われている。同一車種でも所有者が異なると開閉できなかったり、複数のキーで1台の車の開閉ができるしくみは、カギ側のシリアル番号を車体側のマイコンに登録しておくことで、暗号解読の際にシリアル番号の照合を行い、登録してある相手からの情報であるかどうか判断しているからである。  また、エアコンもマイコンを使われてるが、エアコンを例にすると以下のようになる。 a.部屋の温度を調べる(入力) b.部屋の温度と設定温度を比較する(判断) c.設定温度以上であれば止めて、設定温度以下であれば暖める(出力)  基本的には上記のa~cを繰り返して部屋の温度を一定にしている。  ただし、マイコンを使ってプログラムを作るともう少し賢い制御ができる。 例えば25度に温度を設定している場合、上記の処理では25.1度になるとエアコンがOFFして24.9度になるとエアコンがONしてしまい、頻繁にON/OFFを繰り返すことになる。  上記を解決するために、判断を賢くして設定温度が25度でも26度以上でOFFして24度以下でONするようにプログラムを作ることで頻繁なON/OFFを防ぐことができる。  このように、マイコンを使ってプログラムを動かす(実行)ことで細かな制御ができるようになる。 パソコンとマイコンの違い  パソコンとマイコンの大きな違いとして、CPUとしての処理能力が違う。 パソコンはマイコンに比べて単位時間当たりの命令実行数が多くなる。 ひとことで言うとパソコンのCPUが速いということになる。  しかし、使用用途を考慮した場合に速いCPUが必ずしも良いとは限らない。 速いCPUの特徴として以下のことがある。 1.消費電力が大きい 消費電力が大きいとは電気をたくさん使うということ。 バッテリーで動作する物を開発する場合に電気を多く使うCPUを使うとバッテリーで動作できる時間が短くなってる。 一概に言えませんが、クロック周波数(パソコンにある何MHzとか何GHzという数字)が高ければ処理能力が高くなるが、同時に消費電力も高くなる。 2.高価である パソコンで使われているCPUは数千円から数万円の価格で販売されている。 しかし、マイコンになると数百円またはそれ以下という価格でも購入できる。 量産品を作る場合は部品のコストは重要である。 ---- 1/8 冨田 前回はやはり回路の配線がしっかり挿してなかった。しっかり挿したらLEDがしっかり光ってくれた。 また、LCDのモジュールの制御のプログラミングを打ったが、コンパイルができない。次回見直して完成したい。 ---- 12/26 冨田 昨日_ _dataの所を_dataをにしたが、___dataにした。あと、変換ができなかった理由は、数字のゼロと英語の大文字のオーと間違えて打ったため。 プログラミングはできたのだが、しっかりLEDが思ったとおりに光ってくれない。 次回は回路を見直していく。 ---- 12/25 冨田 前回のcrt0.sをアセンブルできなかったが、_ _dataの所を_dataにしたところできた。次にcrt0.oとbasicio.oのリンクするが失敗。原因は先ほどの _ _dataの所を_dataにしたためリンクの ファイルも_ _dataの所を_dataに直してなかったから。 しかし最後のbasicio.coffをbasicio.motに変換するところでエラーが多数。原因はわからないのでプログラミングの中を少しずつ書き直してみる。 石垣 H8(3069)がウェブサーバ。IP:192.168.10.2 PCをクライアント。IP:192.168.10.1 H8にはウェブサーバプログラム(MESの開発者のサンプル)http.elfを搭載。 そのほか、H8のマザーボード上のLEDをクライアント側の操作で光らせるCGIプログラムbrled.elfも搭載。 サーバとクライアントはクロスLANケーブルで接続。 ターミナルでH8を操作し、http.elfを実行。 クライアントのブラウザでサーバ内のプログラムbrled.elf(http://192.168.10.2:8088/brled.elf)を実行。 クライアントのブラウザにindex.htmlが表示。 ブラウザ上のチェックボックスのデータを送信ボタンを押したときにサーバに送信。   送信するとき、http://192.168.10.2:8088/brled.elf  (この部分にフィールド名=値1&フィールド名=値2…とエンコードされて、サーバに渡される。)   サーバは渡された値によってマザーボード上のLEDを点灯/消灯させる。      ---- 12/20 冨田 テスト用の書き込み失敗の原因を判明。プログラミングを書き込むときにMD2端子をGNDに接続し、FWE端子を 5Vに接続をしてなかったから。 今はポートの入出力のプログラミングを作っているが、どうしてもスタートアップルーチンがうまく起動しな い。原因はプログラミングの.dataセクションの内容だと思われるが、どこがだめなのか分からない… 石垣 ブラウザからマザーボード上のLEDを点灯させることに成功。(プログラムは参考にしているHPより) IEの設定で3069と通信ができなかった。(pingは通っていた。) RS232Cじゃなくてブラウザからなにかできるようにしようかなぁと思案中。 ---- 12/18 石垣 COMポートの不調はドライバのインストール後、再起動しなかったから?の模様。あの後直った。 ブラウザからマザーボード上のLEDを点灯させるつもり。 だが、うまく繋がってない。WEBサーバのプログラム(公式のとこから拾ってきたの)がちょっと違う? 要確認 ---- 12/17 石垣 3069へtftpによってLAN経由で自作プログラムをのせて実行することはできた。 が、USBシリアルポート変換ケーブルをつかってみたら今まで使っていたCOMポートまで動作不調に。 (COMポートは開いているが、H8(3069、3664ともに)通信できない) 自分の使っているPCが駄目みたい。 変換ケーブルか?変換ケーブルのせいか? ---- 12/14 石垣 OS(以下MES)を乗せ変えたのはいいが、自作プログラムをRAMに転送させる方法がわかんない。 仮想サーバ立ち上げて、LAN経由で3069側から落とさせるらしい。 そのための設定に手間取り中。 でも、電光掲示板につかっている3664のほうもMESを使っているような感じが・・・ なので、これで通信ができれば結構簡単にいけるかも? 3069とPCはLAN(クロス)ケーブルで、直接つなぐつもり。 ルータって使っちゃいけないんですよね? 調べたところ、RS232Cケーブルをつかってもいけそう?? ---- 12/13 石垣 3069のOSは参考にしているHPと同じものに。 ただし、プログラムを乗せるときにLAN経由らしいのでクロスケーブルを購入予定(探したけど、研究室内にはなさそう) これで、RS232Cでターミナルでのコマンドによる操作でなく、自作プログラムで操作ができれば 通信プログラムは間違っていないことになる。 ---- 12/12 石垣 3069でSCIをユーザープログラムで動作させる場合は、JP1から線を引き出してDサブ9ピンとつなげなければならない。 え?また工作するん? 3052に使っているものを拝借するか・・・というか、それが一番はやそう。 参考にしているところが新しいOSのため、3069につんでいるOSを最新のものに書き換えたほうがよさそう。 これで通信ができればwin側のプログラムは間違っていないことになる。 そうすると問題点は、 送るデータが間違っている。(形式どおりにどうコマンドを送るか?) 送信データバイト数の設定が間違っている。 に、絞ることができると思われる。 ---- 12/11 石垣 3069にデータを送りつけたとき、どこにはいるのか? 3069側のプログラムは? 3052は今後、入出力とできればLCD ---- 12/10 石垣 winから通信ソフトを使わずに、プログラムから電光掲示板を操作する。 けど、できない。 送信データバイトの設定がおかしい? ファームウェアへのコマンドが届いてない? 3664(電光掲示板セット)の前に3069で通信のテストをする。 これができれば、通信はできていると思われる。 そうすると問題は、3664のファームウェアに送るコマンドデータが おかしいとわかるはず。 毎日いて、この進み具合はマズイ ---- 12/6 冨田 テスト用のプログラムをCPUに書き込み。 だが失敗。色々試したが原因は不明。あとはハンダゴテでつけた所の接触不良の可能性があるから、 次回はそこの所をチェックする。 ---- 12/5 石垣 Cで直接3664と通信することにする。 コマンドと数値だけで直接操作できる?(ターミナルが内部で変換しているのかいないのか) 通信プログラムはみつけたので、それを解読。自分で使えるようアレンジ。 ---- 12/3 石垣 ハイパーターミナルをつかってコマンドによる希望座標のLEDを光らせることができる。 図形LEDで表示させる。 毎回、座標を計算してコマンドで送るのは大変なのでC言語で自動化しようとおもう。 そのためのプログラムを考える。 問題は、3664への通信。 ターミナルにコマンドと座標をおくってターミナル経由でシリアル通信する? ---- 11/28 冨田 h8のテストプログラムを作成。 ---- 11/28 石垣 3664と電光掲示板は壊れてなかった。 電光掲示板のほうは一緒に入っていたソフトで動作確認済み。 このソフトなしで自分でC言語で組んで表示させるようにする。したい。できればいいなぁ・・・ LCDも新たに買ってきたのでこっちの表示もさせてみる。 Cで組むために、ファームウェアのコマンド解析。etc ---- 11/22 h8-3664と電光掲示板の動作確認 動作テストしたあとに、3664がショート・・・ ---- 11/08 >/*h8マイコンテストプログラム*/ >/*ポート3を入力に設定 押しボタンスイッチ*/ >/*ポートBを出力に設定 LED*/ >/*押しボタンスイッチが押されている間LED点滅*/ >/*離したらLED消灯*/ > >#include <h8/reg3067.h> /*h8/3069fで使用するI/Oポートを定義*/ >#include <h8/syscall.h> /*h8/OSを使う場合に必ず指定をする*/ > >int main() { > int sw; > PBDDR = 0xff;/*PB全8ビットのポートを出力に設定する*/ > P3DDR = 0x00;/*P3を全ビット入力に設定*/ > > while(1) { > sw = P3DR & 0x01; /*スイッチ入力*/ > if(sw == 0){ /*スイッチがONならば*/ > PBDR = 0x0f; /*LED出力*/ > sleep(5); /*0.5秒待機*/ > PBDR = 0; /*LED消灯*/ > sleep(5); /*0.5秒待機*/ > } > else /*スイッチがOFFならばLED消灯*/ > PBDR = 0; > } >} sleepの場所をwaitでの待機にしようとしたがコンパイル時にできなかった。 /usr/h8300-hms/lib/h8300h/int32/libc.a(syswait.o): In function `wait': syswait.c:12: undefined reference to `_wait' collect2: ld returned 1 exit status sw = P3DR & 0x01; /*スイッチ入力*/の部分 ビット0の状態を調べるために1とANDしている。 すると、ビット0以外のビットは必ず0にクリアされるため結果的にビット0だけが残る。 それを変数swにいれているのでビット0の値で処理ができる。 作成したスイッチ入力回路はスイッチがONの時に0(LOW)となるので変数swが0の時、 IF文の中の処理に向かう。 ---- 11/6 入力テスト終了 P3と接続したスイッチを押すとPBに接続されたLEDが消灯 ---- 10/29 h8/3664と電光掲示板との接続リード線の”準備” プレゼンの準備 ---- 10/18 LCD死亡? LCDは配線がどこか繋がっていなかっただけで使えた模様。 おいらの一日を返して!orz LCD探してくる。 次回CPUボードの入力を考える。 ---- 10/11 LCDのテストをしたところ表示がされなかったので、マザーボードから取り外し確認してみることに。 しかし、取り外せない、まいった。 LCDはなかったことにするか??思案中 マザーボードのLEDも点灯することを確認。 ---- 10/04 Bポートを使い、四つのLEDを(0101)(1010)の交互に点灯させることに成功。次はスイッチを追加して、スイッチが押されたときに点灯させるようにする。 また、他のポート(つかっていい場所)でも試してみる。 ---- 10/03 h8/3069を通してLEDを点灯することに成功。ひゃっほーい ただし、LEDと抵抗だけの回路なので元のものとは違う? 今までできなかったのはLEDが死んでいたのと、プログラムミス。 回路もまちがっていたかもしれない。要確認。 ---- 09/27 動作確認用のLED回路作成。 電子回路を誰か確認していただけるとありがたい。 完成した後、3069マザーボードにLEDがついているのを発見。これ使ってもいけそう。 h8/3069にのせるLED点灯用のプログラムは完成した。 ---- ただし、include<h8/3067.h>(h8/3069のI/Oポート定義)がないといわれる。 なので、defineでポートごとに定義。 h8/OSのh8/syscall.hはあるのにおかしい。同ファイルにreg3067.hがあるのにもかかわらず認識されず。 10/2 include<h8/reg3067.h>で解決しました。 ソースが読みにいってるファイルになかっただけでした。 ---- しかし、h8/3069のRAMに書き込まれた、アドレス「fff600」にアクセスできず。 やり方がおかしい? 要確認。 壊れたh8/3069よりDCジャックとDサブ9ピン(メス)を分離。 h8/3052の方で再利用予定。 LED点灯は来週末までには!! 3052のRS232C用のコードは作成完了。でも、Dサブ取れたんだからこれ使ったほうが早そう。 >/*led P4*/ >/*#include <h8/3067.h> h8/3069fで使用するI/Oポートを定義*/ >#include <h8/syscall.h> /*h8/OSを使う場合に必ず指定をする*/ >#define P4DDR (*(volatile unsigned char*)0xfffc8) /*ポート4の定義*/ >#define P4DR (*(volatile unsigned char*)0xfffca) >int main() { > P4DDR = 0x01; /*P4のポートを出力に設定する*/ > while(1) { > P4DR = 0x00; /*P4をLにする*/ > sleep(10); /*1秒の時間待ち*/ > P4DR = 0x01; /*P4をHにする*/ > sleep(10); /*1秒の時間待ち*/ > } >} C:\Documents and Settings\烏野\h8program>h8300-hms-gcc -O -mh -mint32 -T ram3067 .x -o led.coff -nostartfiles ramcrt0.s led.c -lc C:\Documents and Settings\烏野\h8program>h8300-hms-objcopy -O srec led.coff led. mot C:\Documents and Settings\烏野\h8program>put led.mot fff600 10 5E FF F6 06 54 70 01 00 6D F6 0F F6 01 00 6D F4 fff610 10 7A 03 00 0F FF C8 FA 01 68 BA 7A 04 00 0F FF CA fff620 10 18 AA 68 CA 01 00 6B 22 00 00 01 3C 1A 80 88 0A fff630 10 5D 20 FA 01 68 CA 01 00 6B 22 00 00 01 3C 1A 80 fff640 6 88 0A 5D 20 40 DA ---- 09/11 サンプルプログラムの動作 ハイパータミナルからexecコマンドでサンプルプログラムを動作さ せようとすると止まる。 原因不明。 たまに、dumpでもとまる。(反応がなくなる) CPUボード側でリセットスイッチを押すと再び反応する。 通信時に光るはずのLEDが発光せず。 不良品? ---- 09/04 マザーボード作成完了 CPUボードの動作確認未 ---- 07/16 H8/3069F(CPUボード完成 要動作確認) マザーボードはCPUボード動作確認後作成予定 KARAAGEに開発環境セッティング RS232C9ピン:入手済 h8/3069FCPUボードにOSインストール 8/9:インストール完了 電源は+5V安定化電源 ---- h8マイコンボードの制作目的 終了 CPUの動作確認最優先   なんらかの形で動作確認をする。   候補:LEDと接続し点灯 予定   入力と出力のテスト   スイッチによる入力とLEDによる出力 (未)LEDとの接続 LEDと接続し動作確認を行ったら、マザーボードの作成 のちLCDによる文字表示など (要)目的は? h8/3069FはLANボードなので通信を使ってなんらかの成果を出したい。LCDがマザーボードについているので、外部からの入力に反応してなんらかの出力をする? 秋月電子 h8/3069Fのぺーじ http://akizukidenshi.com/catalog/items2.php?q=%22K-00168%22&s=popularity&p=1&r=1&page= 参考:h8/3052 http://www.mech.tohoku-gakuin.ac.jp/rde/contents/tech/h8/h8_3052.html ---- 自宅PCでコンパイルしたいなどと聞いたので C言語用コンパイラ&エディタなど ここを参考に http://www.ooyashima.net/db/prog.htm#vc BCC Developerは使えるようにしたので、インストールのサポートはできます。 ちなみに、BCC Developerは統合開発環境です。 BCC Developerのreadme.txtを読めばインストは出来るはずです。 コンパイラ本体はユーザー登録の必要あり 今まで自分の使っているものが配布終了していたので、どれがいいかは分からなくなりました。 なげっぱなしもあれなんで。 連絡用においておきますね。っ[sinnya07atgmail.com]at=@

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。