■ PIC 16F1823 の基本設定
最近、色々な種類のPICデバイスが発売されています。又、安い価格で販売されています。
この様な新しいPIC デバイスを使おうとすると、どの様にしたら良いか迷ってしまいます。
Web上で検索して、情報を集めて使い方を調べる方法が有りますが、万全ではありません。
そこで、データ・シートを頼りに使い方を調べる事にしました。
使うデバイスは、'PIC 16F1823' です。
このデバイスは、14PINの中規模デバイスです。
まず、最初にする事は、'CONFIG’ワードの設定です。このCONFIGワードは、
データ・シートには記載されていません。
では、どの様にして調べると良いのでしょうか?
それは、'HI-TECH C’プログラムの中の 'include’フォルダーの中のファイルを調べる事です。
デバイス毎の'h'ファイルが有るのでメモ帳などで開いて見ます。
PIC 16F1823は、'pic16f1823.h'です。
それぞれ、#define 命令等で定義されているのが分かります。
CONFIGワードは、以前の設定方法とは、異なり、'***_ON'、'***_OFF'と、云う記述になっています。
* 回路図
次に、オシレータの設定をします。これには、データ・シートの'OSCCON' レジスターの設定を見ます。
次に、I/Oの設定をします。
■ TRISA,TRISC の入出力設定をします。
I/O ポートの設定をします。
■ アナログ・チャンネルの設定をします。'ANSELA'、'ANSELC'レジスターを参照します。
設定を'1'にすると、アナログ・チャンネル'ON'
設定を'0'にすると、デジタルに設定されます。
次に、'A/D CONTROL REGISTER 0' を設定します。'ADCON0' レジスターを参照します。
このレジスターの 'bit1' の名称が 'GODONE' になっていますが、仕様が変更されているので使えません。
'GODONE' は、A/D変換開始(A/D変換終了フラグ)ビットなのですが、どの様に変更されたかを見てみます。
それには、'pic16f1823.h'の中の'ADCON0 'の設定項目を見ます。
■'GO_nDONE'
■'GO'
■'nDONE'
■'ADGO'
この4つのキー・ワードが使えます。
次に、'A/D CONTROL REGISTER 1' を設定します。'ADCON1' レジスターを参照します。
これで、主な設定が済みました。後は、プログラムを組むだけです。
その他のデバイスも同様な方法で設定すれば、'OK'です。
データ・シートさえ有れば、基本設定が出来る様になります。
[ 楽釣工房・ホームへ戻る ] [ ホーム・ページ 楽釣119 へ移動 ]
楽釣工房では、小魚用しゃくり機、わかさぎ用しゃくり機、Picマイコン制御による自動しゃくり機(しゃくりパターン制御)、赤外線リモコンの応用回路(電気機器のON/OFF、温度制御、リモコンに依る数値設定など)、電子回路について書いて行きます。
ブログの投稿記事に画像データを多く使用している為、他の投稿記事を読む事に不便をかけると思われます。
ホーム・ページ [ 楽釣119 ] では、今までの記事の内容を整理し、内容の不具合を修正し、又、記事の追加をして、ホーム・ページで公開しています。
[ 楽釣工房・ホームへ戻る ] [ ホーム・ページ 楽釣119 へ移動 ]
___________________________________________________________________________________________________________________
2012年1月6日金曜日
MPLAB IDE のアップ・デート
私が MPLAB IDE を久しぶりにアップ・デート(V8.60 から V8.80へ)して、以前に作成したプロジェクトを開こうとしたが、エラーが出て開く事が出来ませんでした。(MPLAB IDE プロジェクトのアイコンをダブル・クリックする。)
又、MPLAB IDE を起動して、プロジェクトを開こうとしても、エラーが出てプロジェクトを開く事が出来ませんでした。
同じようなプロジェクトを作成した類似プログラムでテストしてみると、開けるプロジェクトと、開けないプロジェクトが有りました。
このプロジェクトの違いを調べて見ても、変数の設定等が違うだけでした。
何か分からないけれど、バグが有りそうです?
この様な状態なので、最初からプロジェクトを作成しなければならないのかと心配しました。
そこで、色々、試しているうちに、簡単に修正する方法を見つけました。画像は、サンプル・プログラムです。

■ MPLAB IDE V8.60 のプログラム"LCD 16F886" を例題にしています。
■ まず、MPLAB IDE を起動します。
■ ① の目的のプロジェクトで使われているファイルを開きます。表示される全てのファイルを開きます。
■ ファイルを開くと、エディター画面に選択したファイルが表示されます。
■ ② の、目的のプロジェクトを開きます。
■ これで、目的のプロジェクトを開く事が出来ました。
■ 但し、このままでは、コンパイルしてもエラーが出ます。それは、V8.66? 以降、仕様が変更されているので、エラーが出ます。
これを回避する為に、'C' ファイルの先頭に次の一文を追加します。プログラムの途中は、無効です!。
#define _LAGACY_HEADERS
これで、旧バージョンのファイルをコンパイルする事が出来ます。
又、別の方法として、HI-TECH C コンパイラーのバージョンを切り替えて、コンパイルする方法も有ります。
私のブログ記事の "HI-TECH C のバージョンの切り替え方" を参照して下さい。
■ 一度コンパイルしてプロジェクトを保存すると、次回からは、普通にプロジェクトを開くことが出来ます。
■ もし、上記のやり方でコンパイルエラーが発生した場合、プロジェクトを新規に作成する必要があるかも知れません。
せっかく作成したプロジェクトを無駄なく使いたい物です。
ちなみに、下記画像は、私がインストールしている'HI-TECH C コンパイラー'のバージョンです。

次の2つの画像(新・旧2つのバージョン)を比べて下さい。'CONFIGワード'の設定法が違います。
詳しい事は、新しいバージョンのデバイスごとのインクルード・ファイルを開いて見ると、分かります。
[ 楽釣工房・ホームへ戻る ] [ ホーム・ページ 楽釣119 へ移動 ]
又、MPLAB IDE を起動して、プロジェクトを開こうとしても、エラーが出てプロジェクトを開く事が出来ませんでした。
同じようなプロジェクトを作成した類似プログラムでテストしてみると、開けるプロジェクトと、開けないプロジェクトが有りました。
このプロジェクトの違いを調べて見ても、変数の設定等が違うだけでした。
何か分からないけれど、バグが有りそうです?
この様な状態なので、最初からプロジェクトを作成しなければならないのかと心配しました。
そこで、色々、試しているうちに、簡単に修正する方法を見つけました。画像は、サンプル・プログラムです。

■ MPLAB IDE V8.60 のプログラム"LCD 16F886" を例題にしています。
■ まず、MPLAB IDE を起動します。
■ ① の目的のプロジェクトで使われているファイルを開きます。表示される全てのファイルを開きます。
■ ファイルを開くと、エディター画面に選択したファイルが表示されます。
■ ② の、目的のプロジェクトを開きます。
■ これで、目的のプロジェクトを開く事が出来ました。
■ 但し、このままでは、コンパイルしてもエラーが出ます。それは、V8.66? 以降、仕様が変更されているので、エラーが出ます。
これを回避する為に、'C' ファイルの先頭に次の一文を追加します。プログラムの途中は、無効です!。
#define _LAGACY_HEADERS
これで、旧バージョンのファイルをコンパイルする事が出来ます。
又、別の方法として、HI-TECH C コンパイラーのバージョンを切り替えて、コンパイルする方法も有ります。
私のブログ記事の "HI-TECH C のバージョンの切り替え方" を参照して下さい。
■ 一度コンパイルしてプロジェクトを保存すると、次回からは、普通にプロジェクトを開くことが出来ます。
■ もし、上記のやり方でコンパイルエラーが発生した場合、プロジェクトを新規に作成する必要があるかも知れません。
せっかく作成したプロジェクトを無駄なく使いたい物です。
ちなみに、下記画像は、私がインストールしている'HI-TECH C コンパイラー'のバージョンです。

次の2つの画像(新・旧2つのバージョン)を比べて下さい。'CONFIGワード'の設定法が違います。
詳しい事は、新しいバージョンのデバイスごとのインクルード・ファイルを開いて見ると、分かります。
[ 楽釣工房・ホームへ戻る ] [ ホーム・ページ 楽釣119 へ移動 ]
2011年10月12日水曜日
HI-TECH C のバージョン切り替え
HI-TECH C プログラムの新しいバージョンが公開されてインストールする場合、
普通、旧バージョンを削除してから新しいバージョンをインストールすると思いますが、これに関する記事を探したところ、何処にもありませんでした。
赤い矢印のプログラムを最上段に移動するために、目的のプログラムをマウスでクリックして選択します。
コンパイルした結果を見て下さい。
普通、旧バージョンを削除してから新しいバージョンをインストールすると思いますが、これに関する記事を探したところ、何処にもありませんでした。
そこで、最新版の HI-TECH C プログラムを、そのままインストールすると、どうなるかを試してみる事にしました。
すると、新旧のプログラムが存在したままインストールされる事が分かりました。これは、一体どう云う事なのかを調べて見ました。
HI-TECH C PIC18 のインストール も参考にして下さい。
すると、新旧のプログラムが存在したままインストールされる事が分かりました。これは、一体どう云う事なのかを調べて見ました。
HI-TECH C PIC18 のインストール も参考にして下さい。
MPLAB IDE を起動して、各項目を調べてみると、分かりました。!
新旧のバージョンを切り替えてコンパイラー・プログラムを動作させる方法が有ります。
従って、旧バージョンを削除する必要が無いのです。
又、最新版をインストールすると、優先的に使用される様になります。
コンパイラー・プログラムにバグがあって信頼性が低い場合、この時は、旧バージョンを使うしか有りません。
この様な時に、バージョンの切り替えが必要になって来ます。
[ 切り替え方 ]
まず、作成済みのプロジェクトを開きます。
( PIC18F2420 を使用しています。 従って、PIC18 を例題にして話を進めます。)
( PIC18F2420 を使用しています。 従って、PIC18 を例題にして話を進めます。)
一旦、ウインドウを閉じて、コンパイルします。
コンパイルした結果を見て下さい。
赤枠の中に "HI-TECH C" プログラムのバージョンが表示されています。
又、先ほどのウインドウを開きます。
次に、旧バージョンに切り替えてみます。
次に、 ”Move up” 又は、"Move to top" ボタンを押して移動します。
目的のプログラムが最上段に移動しました。
”適用” ⇒ ”OK” ボタンを押して、このウインドウを閉じます。
次に、コンパイルします。赤枠の中に "HI-TECH C" プログラムのバージョンが表示されています。
旧バージョンでコンパイルされたのが、分かります。
新しいバージョンの方が、プログラム・メモリの消費が少ないようです?・・・
新しいバージョンの方が、プログラム・メモリの消費が少ないようです?・・・
この様にして、古いバージョンを削除すること無く、最新バージョンをインストールし、混在したままで必要に応じて
2011年10月11日火曜日
HI-TECH C PIC18 のインストール
最初、MPLAB IDE ( PIC10/12/16 MCUs ) をインストールしますが、その内にPIC18 も
必要になって来ます。
最初に表示したページに戻ります。
では、"HI-TECH C" をクリックします。ダウンロード・ページに移動します。
必要になって来ます。
そこで、PIC18 のダウンロードの方法と、インストールの方法を説明します。
まず、最初にマイクロチップ社のホーム・ページを開きます。
次に、右上にある言語ボタンの「日本語」を押して、日本語表記にします。
PIC18 をダウンロードする為に、ユーザー登録をしなければなりません。
そこで、① の”myMicrochip Login” をクリックしてログ・イン・ページに移動します。
ユーザー登録をする為に、③ ”register now" のリンクをクリックします。
ユーザー登録ページが表示されました。
各欄は必須項目です。
最初に表示したページに戻ります。
このページの ② の部分の "開発ツール" ⇒ ”コンパイラ” をクリックします。
ページが移動しました。
このページにある ”PIC18 MCUs の PRO" の ”HI-TECH C ” プログラムをダウンロードします。
後で説明しますが、どのモードをダウンロードしても構いません。
では、"HI-TECH C" をクリックします。ダウンロード・ページに移動します。
先程、ユーザー登録を完了したので、⑤ の処にユーザー名が表示されています。
⑥ を押してダウンロードします。

ダウンロードが終了して解凍すると、デスクトップにホルダーが作られて、その中に、 "PICC_18_9_80_WIN" と云うプログラムが有ります。( OS が Windows の場合 )
このプログラムのアイコンをダブル・クリックします。
すると、インストールが開始されます。
2011年9月28日水曜日
delay タイムの使い方 / MPLAB IDE
プログラムを作成する時、タイミング等を合わせる為に wait time を挿入する事は良くある事です。
又、アッセンブラーでプログラムを作成するとなると、タイミング時間を入れる為にステップ数を計算してプログラムしなければなりません。
しかし、手計算でする為、間違いが良くあります。
ところで、C 言語でプログラムする時は、delay time の関数が用意されているので、それを利用することができます。設定は、簡単です。
次の一文を書いて、delay time の関数を使えるように宣言します。
#define _XTAL_FREQ 4000000 // オシレータ周波数 4Mhzの場合又、アッセンブラーでプログラムを作成するとなると、タイミング時間を入れる為にステップ数を計算してプログラムしなければなりません。
しかし、手計算でする為、間違いが良くあります。
ところで、C 言語でプログラムする時は、delay time の関数が用意されているので、それを利用することができます。設定は、簡単です。
次の一文を書いて、delay time の関数を使えるように宣言します。
関数は、
__delay(1000); // 1000命令サイクル遅延する
__delay_us(400); // 400 μs( マイクロ秒 )遅延する
__delay_ms(10); // 10 ms ( ミリ秒 )遅延する
上記の3個があります。但し、制限が有ります。(上記の括弧内の数値は例です。)
それは、オシレータの周波数によって、ディレータイムに上限がある事です。
次の表を見て下さい。
| 動作周波数 | 最大時間 | __delay_ms(x) | __delay_us(x) |
| 20Mhz | 39,424μs | __delay_ms(39) | __delay_us(39424) |
| 16Mhz | 49,280μs | __delay_ms(49) | __delay_us(49280) |
| 10Mhz | 78,848μs | __delay_ms(78) | __delay_us(78848) |
| 8Mhz | 98,560μs | __delay_ms(98) | __delay_us(98560) |
| 4Mhz | 197,120μs | __delay_ms(197) | __delay_us(197120) |
それ以上のディレータイムが必要になる時は、 for 文、while文 などによるループ・プログラムを
作って実現するか、自分でループ・プログラムを作成してディレイ・タイマーを起動する等します。
又、 関数の括弧内に変数を使う事ができません。数値のみです。
次に、サンプル・プログラムを表示します。
又、 関数の括弧内に変数を使う事ができません。数値のみです。
次に、サンプル・プログラムを表示します。
このプログラムは、一定時間ごとにLEDランプなどを表示させる単純なプログラムです。
赤枠の中のプログラムを見て下さい。
10ms のディレイ・タイム遅延を行っています。これを while 文によって mt 回繰り返します。
wait_time(50); // wait time = 10 * 50 =500 ms

どちらも同じように動作します。
これらのプログラムをコンパイルすると、どうなるかを比べて見みます。赤枠の中のプログラムを見て下さい。
10ms のディレイ・タイム遅延を行っています。これを while 文によって mt 回繰り返します。
wait_time(50); // wait time = 10 * 50 =500 ms
又、for 文でプログラムする時は、 赤枠部分の文と、次の文を入れ替えて下さい。
どちらも同じように動作します。
while文の場合(プログラム・メモリー 59ワード)
for 文の場合( プログラム・メモリー 66 ワード )

unsigned int ・・・・; 4バイト幅のデータ型に宣言。実際は、1バイト幅のデータで済む・・・
unsigned char ・・・・; この、1バイト幅のデータ型に宣言するのが正しい。
for 文の場合( プログラム・メモリー 66 ワード )
と、なります。
プログラム・メモリーの消費の仕方が違います。
小規模のプログラムでは、問題になりませんが、複雑なプログラムを作成する時に、このような
サブルーチンを多用するとプログラム・メモリーが不足してきます。
効率良くプログラムを作成する為に、普段から心がける事が必要です。
[ 効率良くプログラミングする為のヒント ]
プログラムで使用する変数のデータ型について、普段、気にしないで使われていると思います。
PIC マイコンがプログラム内の変数を参照するために、1 バイト・データ形式の場合、1 バイト分の領域を確保します。
又、4 バイト・データ形式の場合、4 バイト分の領域を確保します。
ところが、1バイト・データを扱っているのに、4バイト分の領域を確保するとどうなるでしょうか?・・・
それは、マイコンが4 バイトのデータを参照する事になり、時間が掛かります。
こんな事では、高速動作をさせたりする事が難しくなります。
又、プログラム・サイズも大きくなってしまいます。
unsigned int ・・・・; 4バイト幅のデータ型に宣言。実際は、1バイト幅のデータで済む・・・
unsigned char ・・・・; この、1バイト幅のデータ型に宣言するのが正しい。
そこで、扱うデータのサイズを正しく把握して、データ型を正しく宣言してプログラミングすることが必要です。
2011年9月18日日曜日
CONFIG ワードを探す / MPLAB IDE v8.6
私のブログを訪問されている人達は、どんな情報を求めているのだろうかと思い、少し、調べてみました。
私のブログの統計情報を見てみると、MPLAB IDE 、CONFIG ワード 、等 PIC マイコンの
使い方の情報を求めているのが分かります。
又、PIC マイコンを使い始めたのだが、使い方が分からないと言う人達が情報を求めているのが
読み取れます。
そこで、以前、投稿した記事の MPLAB IDE V8.6 の使い方 / CONFIG ワードの設定 について
追加説明をします。
MPLAB IDE ( HI-TECH C ) プログラムがインストールされている事を前提に説明をします。
一番欲しい情報は、CONFIG ワードの設定の仕方だと思います。
[ サンプル・プログラム ]
MPLAB IDE に於いて C言語 でプログラミングする時、プロジェクトでデバイス( PIC )を
設定しますが、プログラムでは、
設定しますが、プログラムでは、
#INCLUDE で " pic.h " を宣言します。
このファイルに依って、 PIC の設定が自動的に行われます。
そこで、この " pic.h " ファイルの中身について、調べてみます。
MPLAB を普通にインストールすると、下記の画像の ① のルートに有ります。
次に、この ④ のファイルを探して下さい。このファイルをメモ帳で開いて見ます。
次に、この ④ のファイルを探して下さい。このファイルをメモ帳で開いて見ます。
このファイルは、PIC マイコンのデバイスを設定する為のファイルです。
ファイルの中身を 1 行ずつ見て確認しても良いのですが、検索機能を使ってサンプル・プログラムで使用しているデバイス "16F84A" を調べてみます。
検索結果は、次の通りです。
2011年9月5日月曜日
LCD 表示機のデモ / SC1602BSLB
16文字×2行 液晶表示機のデモ・テストです。
以前、私は PIC マイコンのプログラムをアッセンブラーで書いていましたが、ページ設定などとても面倒な手続きが必要でした。雑誌などで公開されているプログラムは、殆んど、 C 言語で記述されているのが現状です。
C言語の利点は、昔の BASIC プログラムの感覚でプログラムを組む事が出来るからです。
C言語で記述すると、PICマイコンの設定は簡単な命令を記述するだけで、後は自動的にコンパイラーが適正に設定してくれます。
又、作製したプログラムを他の PIC マイコンに移植するのも、CONFIG ワード、I/O の設定など特定項目を変更するだけで簡単に出来ます。

ところで、 LCD表示機の説明書を一度見て理解できますか?・・・。
だいたい、こう言った説明書は細かい部分まで解説はしてくれません。
そこで、インター・ネットで探して、詳しく解説しているサイトが有ったので、その記事を参考にしました。
又、インター・ネットで検索して公開されているプログラムを探すと、殆んど、アッセンブラーで書かれたプログラムばかりでした。一応、参考にしました・・・。
仕方無く、MPLAB IDE をインストルすると、サンプル・プログラムが付録として付いてきます。
これを参考ににして、プログラムを組む事にしました。
但し、この手のプログラムは、まともに動作しないのが現状です。
色々、試行錯誤の結果、何とか完成しました。
完成したプログラムは、基本部分なので、本格的なプログラムを作るときは、メイン・プログラムからInclude file で定義した ” lcd.c ” の各種サブルーチンを呼び出すだけで、LCD をコントロールする事ができます。後は、応用するだけです。
サンプル・プログラムで使っている I/O ポートは、B ポート・オンリーなので、他の PIC マイコンに移植するのが簡単です。
[ LCD display 回路図 16F84A ]



[ プログラムの仕様 ]
● サンプル・プログラムは、 PIC 16F84A を使用しました。
● 他のPIC マイコンへの移植が簡単。
● LCD は、4bit モードで動作。
● PIC マイコンの I/O は、8bit ( B ポート)を使います。
● LCD の基本プログラムは、INCLUDE ファイルで定義をする。
メイン・プログラムからサブルーチンを呼び出す型式。
プログラム・ダウンロード ( PIC 16F84A ) ・・・ LCD 16F84A
プログラム・ダウンロード ( PIC 16F648A ) ・・・ LCD 16F648A
プログラム・ダウンロード ( PIC 16F886 ) ・・・ LCD 16F886
この記事の続きを読む・・・LCD 表示機のデモ
[ 楽釣工房・ホームへ戻る ] [ ホーム・ページ 楽釣119 へ移動 ]
以前、私は PIC マイコンのプログラムをアッセンブラーで書いていましたが、ページ設定などとても面倒な手続きが必要でした。雑誌などで公開されているプログラムは、殆んど、 C 言語で記述されているのが現状です。
C言語の利点は、昔の BASIC プログラムの感覚でプログラムを組む事が出来るからです。
C言語で記述すると、PICマイコンの設定は簡単な命令を記述するだけで、後は自動的にコンパイラーが適正に設定してくれます。
又、作製したプログラムを他の PIC マイコンに移植するのも、CONFIG ワード、I/O の設定など特定項目を変更するだけで簡単に出来ます。
ところで、 LCD表示機の説明書を一度見て理解できますか?・・・。
だいたい、こう言った説明書は細かい部分まで解説はしてくれません。
そこで、インター・ネットで探して、詳しく解説しているサイトが有ったので、その記事を参考にしました。
又、インター・ネットで検索して公開されているプログラムを探すと、殆んど、アッセンブラーで書かれたプログラムばかりでした。一応、参考にしました・・・。
仕方無く、MPLAB IDE をインストルすると、サンプル・プログラムが付録として付いてきます。
これを参考ににして、プログラムを組む事にしました。
但し、この手のプログラムは、まともに動作しないのが現状です。
色々、試行錯誤の結果、何とか完成しました。
完成したプログラムは、基本部分なので、本格的なプログラムを作るときは、メイン・プログラムからInclude file で定義した ” lcd.c ” の各種サブルーチンを呼び出すだけで、LCD をコントロールする事ができます。後は、応用するだけです。
サンプル・プログラムで使っている I/O ポートは、B ポート・オンリーなので、他の PIC マイコンに移植するのが簡単です。
[ LCD display 回路図 16F84A ]
[ プログラムの仕様 ]
● サンプル・プログラムは、 PIC 16F84A を使用しました。
● 他のPIC マイコンへの移植が簡単。
● LCD は、4bit モードで動作。
● PIC マイコンの I/O は、8bit ( B ポート)を使います。
● LCD の基本プログラムは、INCLUDE ファイルで定義をする。
メイン・プログラムからサブルーチンを呼び出す型式。
プログラム・ダウンロード ( PIC 16F84A ) ・・・ LCD 16F84A
プログラム・ダウンロード ( PIC 16F648A ) ・・・ LCD 16F648A
プログラム・ダウンロード ( PIC 16F886 ) ・・・ LCD 16F886
[ MPLAB IDE Project の作成 ]
複数のプログラムを使って作成した ”LCD 表示機のデモ”プログラムのMPLAB IDE Project を作成します。
サンプル・プログラムで使用した ”LCD 16F886” のプログラムは、
lcd.c
lcd-new.h
main-16F886.c
この3個のファイルに依って、構成されています。( 他のサンプル・プログラムも同様な構成です。 )
では、プロジェクトを作成します。
この記事の続きを読む・・・LCD 表示機のデモ
[ 楽釣工房・ホームへ戻る ] [ ホーム・ページ 楽釣119 へ移動 ]
2011年5月10日火曜日
MPLAB IDE エディターの分割
下記画像で、赤丸部分にボタンが在るのをご存知ですか?・・・


これは、MPLAB IDE のエディター画面を分割するボタンです。
テキスト・プログラムが長い場合、デバッグ・編集する時、変数の値等を参照する為に、
プログラム・テキストの前後・左右を行ったり、来たりする事が多々あります。
これは、とても不便な事です。
そこで、MPLAB IDE のエディターに備わっているエディター分割ボタンの登場です。
使い方は、このボタンを左クリックしながらドラッグするだけです。これでエディター・ウインドウが分割表示されます。
後は、それぞれに表示させたいテキスト部分を選択するだけです。
分割して表示されているだけなので、どちら(前後・左右)を変更しても、テキストの変更が
反映されるのは、元のテキスト・プログラムだけです。

表示させたいプログラム・テキスト。① ボタンで上下に分割。

② ボタンで左右に分割。これを使う機会は、少ないと思います。
2011年5月7日土曜日
MPLAB IDE でシュミレートする ②
前回のMPLAB IDE でシュミレートする ① は、非同期(手動)でシュミレートする方法を紹介しましたが、
今回は、入力信号を予め設定して、同期して自動的にシュミレートする方法を紹介します。
赤外線リモコン送信機プログラムの下記の部分 [Ⅰ]、 [Ⅱ] について検証します。
まず、Stimulus (スティミュラス)ウインドウを開き、Pin / Register Actions (Synchronous stimulus : 同期 )
タブを選択します。
① は、タイム・ユニット(時間単位)を設定します。
② は、タイム・シーケンス(予定時間) を設定します。タイム・ユニットで設定された時間単位で動作します。
PIC マイコンが動作を開始し、入力コマンドを開始する予定時間を設定します。
③ は、この部分をクリックすると、入力コマンドに使用する信号を選択します。下記のウインドウが開きます。
(このプログラムで使用する信号です。)
検証 [Ⅰ]
④ は、これらのシュミレート条件を設定した後、”Apply” (適用する)ボタンを押してシュミレート条件を
確定します。一部を変更した時も必ず ”Apply” (適用する)ボタンを押して確定します。
⑤ は、設定した条件をクリアーするボタンです
設定した項目の行にカーソルを合わせクリックします。次に、”Delete Row” ボタンを押すと行がクリアーされます。
⑥ は、設定した条件をファイルに保存します。
上図の信号で条件設定しました。
タイム・ライン
■ [ 0] : PIC マイコン、動作開始
■ [500] : カスタム・チャンネル[1 : RB4 ] を入力 ”1”
■ [800] : リモコン・チャンネル [1 : RA0 ] を入力 ”1” 、カスタム・チャンネル[1 : RB4 ] を入力 ”0”にする
■ [900] : リモコン・チャンネル [1 : RA0 ] を入力 ”0”
シュミレータ・ツール・ボタンの "RUN" を押します。
この様にして、赤外線リモコン信号が出力されました。
2011年5月4日水曜日
MPLAB IDE でシュミレートする ①
前回投稿した記事の続きです。
作製した赤外線リモコン送信機をシュミレートして検証します。
プログラム名 「TX-4.c」





作製した赤外線リモコン送信機をシュミレートして検証します。
プログラム名 「TX-4.c」
MPLAB IDE を起動して、コンパイルを完了しておきます。
手順
1.シュミレータ・ツールバーを表示させる。
2・PIC の動作周波数を設定する。
3.ブレーク・ポイントを設定する。
4.Simulus ( スティミュラス ) で入力条件を設定する。
5.ロジック・アナライザーを起動する。
6.シュミレートする。
では、ブレーク・ポイントを設定します。
ブレーク・ポイントの設定の仕方に依って、シュミレートしにくい場合が有ります。
その時は、ダミー命令を入れて作業がしやすい様にします。勿論、プログラムのタイミングに影響が無い処、
影響の無い命令を挿入します。
注 ) 括弧の部分にブレーク・ポイントを設定出来ません!。
Stimulus ( スティミュラス ) の入力条件を設定します。
[ 16F648A ] I/O マップ
RA0 : リモコン・チャンネル "1" : 押しボタン入力
RA1 : リモコン・チャンネル "2" : 押しボタン入力
RA2 : リモコン・チャンネル "3" : 押しボタン入力
RA3 : リモコン・チャンネル "4" : 押しボタン入力
RA4 : リモコン・チャンネル "5" : 押しボタン入力
RA5 : リモコン・チャンネル "6" : 押しボタン入力
RA6 : リモコン・チャンネル "7" : 押しボタン入力
RA7 : リモコン・チャンネル "8" : 押しボタン入力
RB4 : カスタム・チャンネル "1" : Bit0 : ショート・ピン入力
RB5 : カスタム・チャンネル "2" : Bit1 : ショート・ピン入力
RB6 : カスタム・チャンネル "4" : Bit2 : ショート・ピン入力
RB7 : カスタム・チャンネル "8" : Bit3 : ショート・ピン入力
RB6 : カスタム・チャンネル "4" : Bit2 : ショート・ピン入力
RB7 : カスタム・チャンネル "8" : Bit3 : ショート・ピン入力
RB3 : CCP ( RB3 ) PWM 出力端子 : 赤外線LED出力
リモコン・チャンネル "1" ( RA0 ) を入力に設定。その他のリモコン・チャンネルは省略。
RB4 ~ RB7 は、ショート・ピンなので、ここではON/OFF スイッチのように扱います。
"Set High" をファイヤーすれば、スイッチON
"Set Low" をファイヤーすれば、スイッチOFF です。
シュミレート条件を設定した後、”Apply” (適用する)ボタンを押してシュミレート条件を確定します。
シュミレート条件を設定した後、”Apply” (適用する)ボタンを押してシュミレート条件を確定します。
それでは、シュミレータを "RUN" します。リモコン信号は3回出力されますので、
3回 "RUN" ボタンを押す事になります。
RB4 : Set High を ファイヤー ( Fire ボタンを押す ) します。
次に、RA0 をファイヤー ( Fire ボタンを押す ) します。
PWM 出力波形が表示されました。
ここで、PWM 波形を拡大して見ます。
赤枠の部分を拡大します。
PWM 波の周期が (26 Cyc)、( 26 μs) です。設計値どおりです。
表示された数値が波形と重なって見えにくくなる場合は、この数値にマウスのフォーカスを合わせ、
左クリックしながらドラックすると移動できます。
登録:
投稿 (Atom)

















