弾数カウンタ (その5) [PIC]
PICのコンフィグレーションワードについてです。
と言うかHITEC-Cでのと言うことにもなります。
PICのプログラムは今まではほとんどが、アセンブラで書いてました。
#TK-80みたいにさらにハンドアセンブルなんてことはなくなりましたが。
が、今回はC言語で書くことにしました。一般的に高級な言語を使うと、冗長性が高くなるので、小さいプログラムでも大きなメモリ容量が必要になります。しかし、今回使用した16F88は巨大なメモリエリアを持っているので、C言語を使っても問題なくプログラムできます。
でもって、Hitec-Cでのコンフィグレーションワードです。
今回は以下のように設定しています。
__CONFIG(
UNPROTECT & CCPRB3 & DEBUGDIS & LVPDIS & BORDIS & PWRTEN & WDTDIS & INTCLK & MCLRDIS
);
__CONFIG(
FCMDIS & IESODIS
);
このおまじないは、ROMエリアのプロテクトはなしで、CCPはRB3ポートを使い、デバッグ機能は使わず、ブラウンアウトリセットは使わず、低電圧プログラムは行わず、パワーアップタイマは使用して、ウォッチドッグタイマは使用しないで、内部クロックを使い、リセットは使わないことと、
クロック喪失検出しない、内部クロックで外部クロックを補完しないことを宣言しています。
の内、機能を設定したいほうの定義を宣言します。
と言うかHITEC-Cでのと言うことにもなります。
PICのプログラムは今まではほとんどが、アセンブラで書いてました。
#TK-80みたいにさらにハンドアセンブルなんてことはなくなりましたが。
が、今回はC言語で書くことにしました。一般的に高級な言語を使うと、冗長性が高くなるので、小さいプログラムでも大きなメモリ容量が必要になります。しかし、今回使用した16F88は巨大なメモリエリアを持っているので、C言語を使っても問題なくプログラムできます。
でもって、Hitec-Cでのコンフィグレーションワードです。
今回は以下のように設定しています。
__CONFIG(
UNPROTECT & CCPRB3 & DEBUGDIS & LVPDIS & BORDIS & PWRTEN & WDTDIS & INTCLK & MCLRDIS
);
__CONFIG(
FCMDIS & IESODIS
);
このおまじないは、ROMエリアのプロテクトはなしで、CCPはRB3ポートを使い、デバッグ機能は使わず、ブラウンアウトリセットは使わず、低電圧プログラムは行わず、パワーアップタイマは使用して、ウォッチドッグタイマは使用しないで、内部クロックを使い、リセットは使わないことと、
クロック喪失検出しない、内部クロックで外部クロックを補完しないことを宣言しています。
機能 | 設定値 | 説明 |
コードプロテクト | PROTECT | ROMに書かれた内容をプログラマから参照できないようにガードする |
コードプロテクト | UNPROTECT | ROMの内容をプログラマからさん賞できないようにしない |
キャプチャー・コンパレータ・PWM | CCPRB0 | キャプチャー・コンパレータ・PWMをRB0ポートで使用する。 |
キャプチャー・コンパレータ・PWM | CCPRB3 | キャプチャー・コンパレータ・PWMをRB3ポートで使用する。 |
インサーキットデバッグ | DEBUGEN | PicKit2等を利用してターゲット基板上でのデバッグを可能にする。ただし、ホストとの通信用に3本のPIN(MCLR,RB6,RB7)を使用する |
インサーキットデバッグ | DEBUGDIS | インサーキットデバッグを使用しない。RB6,RB7が使用可能。 |
フラッシュメモリアクセス | UNPROTECT | 使用可能 |
フラッシュメモリアクセス | WP0 | 多分ポート1だけ使用可能 |
フラッシュメモリアクセス | WP1 | 多分ポート0だけ使用可能 |
フラッシュメモリアクセス | WPA | 使用できない |
データEEメモリ | UNPROTECT | 使用可能 |
データEEメモリ | CPD | 使用不可 |
低電圧プログラム | LVPEN | 使用可能 |
低電圧プログラム | LVPDIS | 使用不可 |
ブラウンアウトリセット | BOREN | 電源電圧が、だんだん低くなってきて動作が不安定になる前にリセットを発行 |
ブラウンアウトリセット | BORDIS | 電源電圧が、だんだん低くなってきて動作が不安定になる前にリセットを発行しない |
パワーアップタイマト | PWRDTEN | 電源投入時に安定するまでタイマを使用して動作を止める。 |
パワーアップタイマト | PWRDTDIS | 電源投入時に安定するまでタイマを使用して動作を止めずに即座に起動する。 |
ウォッチドッグタイマ | WDTEN | プログラムが定期的に割り込みを発行しないとリセットする。 |
ウォッチドッグタイマ | WDTDIS | プログラムが定期的に割り込みを発行しなくてもリセットしない。 |
クロック設定 | RCCLK | 外部部RCクロックを利用し、OSC1ピンにクロックを出力する |
クロック設定 | RCIO | 外部RCクロックを利用し、RA6,RA7は入出力に使用する |
クロック設定 | INTCLK | 内部RCクロックを利用し、OSC1にクロックを出力 |
クロック設定 | RCIO | 内部RCクロックを利用し、RA6,RA7はIOに使用する |
クロック設定 | EC | 外部RCクロックソースを利用する。 |
クロック設定 | HS | 高速水晶、クリスタル発振子を使う |
クロック設定 | XT | 外部水晶発振子を利用する。 |
クロック設定 | LP | 低電力水晶発振子を利用する。 |
の内、機能を設定したいほうの定義を宣言します。
2009-04-15 23:45
nice!(0)
コメント(0)
コメント 0