16F628A覚書
〔PICの動かせ方入門に戻る〕
忘れないうちにメモします。
ここでの記載はHI-TECH C Compiler for PIC10/12/16 MCUs(Lite Mode)を使用しての内容です。
データシートはこちらです。英語だけどね
内蔵クロックを利用するには、
__CONFIG(INTIO)を宣言して、PCONレジスターにて利用する周波数を選択します。
PCON = 0b00001000 ; 赤い数字部分を変更する事により周波数を変更できます。
1:4MHz 0:47KHz
外付けクロックを行うと最大周波数20MHzで動作します。
精度が良いクロック発振周波数が欲しいなら外付けの発振子を付けて下さい。
ソフトで通信を行う場合、どうしてもタイミングが合わないなどの時に外付けの発振子を付けると出来る場合があります。
外付けの発振子を付ける場合は、__CONFIG(INTIO) ;を__CONFIG(HS) ;に代えます。
delay関数を使用する場合は、
#include <htc.h>のヘッダファイルを追加して
#define _XTAL_FREQ 4000000の行を追加するただしこれはクロックが4MHzの場合
__delay_us(197120) __delay_ms(197) クロック4MHzならこの値まで設定可能
ただし、( )の中は変数使用不可です、直接数値を入力、うんん...ちょっとぉいまいち!
197ms以上待たせたいなら、
for (i=0 ; i < 100 ; i++) __delay_ms(10) ; // 1秒待つ
という感じにします。
PS.
air variableさんのブログ情報によればHI-TECH C Compiler Ver9.80以降では
delay関数の設定可能時間がのびているらしいです。
クロック4MHzで__delay_us(50462464) __delay_ms(50462)
__CONFIG(LVPDIS):プログラミングの低電圧書き込み禁止、RB4がデジタル入出力で使えます。
__CONFIG(INTIO):INTIOの代わりにHSとすると外部周波数8,10,20MHzが使用できます。
__CONFIG(MCLRDIS):外部リセット信号は使用しない、RA5がデジタル入出力で使えます。
リセット信号を使用する場合は、MCLRENとします。
__CONFIG(BOREN):電源電圧降下の常時監視機能を許可します、
だいたい3.65V-4.35Vに降下したらリセットがかかります。
電源電圧を4V以下で駆動する場合はBORDISとしてこの機能を禁止して下さい。
Vpp
PICチップにプログラムを書込む時の、書込み電圧を負荷するピンという意味なので、
動作時には気にしなくて良い。
MCLR
外部リセット信号を入力する場合のピンとして使用。
リセット信号はLOW(0V:GND接続)でリセットが掛かります、だから
外部リセットを使わない時は100Ω〜10KΩ抵抗を介してVddに接続しなければならない。
RA5
Vddに接続するのは面倒なのでMCLRをDisable(禁止)にし、RA5の入力端子とした方が良いでしょう。
__CONFIG(MCLRDIS)を記述すればDisableに出来ます。
使い方は16F819の場合と同じです、「16F819覚書」を参照して下さい。
ただし、__CONFIG(CCPRB2/CCPRB3)の記述はいりません、CCP1の出力は9番ピンのみなので。
- 電源電圧は3.0〜5.5Vで駆動可能、ピンにつなげられる電流は最大25mA(通常20mA以下)まで
- アナログ入力(A/D)機能は無い、AN0-AN3はコンパレータ機能で使用する
- RA0-RA4のデジタルピンはコンパレータピンと共有されています。
デジタルピンとしての使い方はこちらを参照して下さい。
- 内部プルアップ抵抗の使い方は「スイッチの入/切でLEDを点灯させます」を参照して下さい。
【きむ茶工房ガレージハウス】
Copyright (C) 2006-2011 Shigehiro Kimura All Rights Reserved.