にやにや製作:GoogleMapとGPSを自転車で使う

お気楽・ごくらく ( ・∀・)ニヤニヤ
     
製作 かるかる

CCS-Cヘッダ中のPIC16F88

2005年07月08日 23時53分20秒 | Weblog
昨日PIC16F88でLEDをまともに点滅さえできなかった理由が判明。
クロックの設定を裏技で設定する必要があることが判明した。

データシートを読んでクロックの項目が、今まで使ってきたPICと違いかなり複雑になっていることに気づく。
内部オシレータの設定が、4MHz固定ではなく31.25KHzから8MHzの8種類選べるとかとかとか......
で、このあたりの設定は新しく追加されたSFRのOSCCON(8Fh)に値を設定する必要があるとのこと。

調べてみるとコンパイラの出力にこの設定が含まれていない。
#use delay(clock=8000000) と指定しておけば、自動で8MHzが設定されると思ったが違っていた
CCS-Cの提供しているデバイスヘッダ 16F88.Hを見てみると中にこんな記述が....

////////////////////////////////////////////////////////////////// INTERNAL RC
// Constants used in setup_oscillator() are:  <---これ
#define OSC_31KHZ 0
#define OSC_125KHZ 0x10
#define OSC_250KHZ 0x20
#define OSC_500KHZ 0x30
#define OSC_1MHZ 0x40
#define OSC_2MHZ 0x50
#define OSC_4MHZ 0x60
#define OSC_8MHZ 0x70


setup_oscillator()なんぞ組み込み関数マニュアルにないんですけど。
PIC-WIZARDの設定でも出てこないし、ヘッダ見なきゃ気づかないって(Readme.txtに記述あり)

てわけで、setup_oscillator(OSC_8MHZ);をソースに追加して
 SFRのOSCCON(8Fh)に値が設定されることを確認。

-----------------
電子ボリューム基板。部品到着(7/8 20:15)
現在 作成手順書準備中。写真貼り付けて動作確認したらUPLOADします。7/9予定
基板キットは7/10に発送を開始