« 地震で儲けた人たち/東証さんもその1社かも | トップページ | 本日の朝ご飯のおかずの写真 静岡産サバの塩焼き、鹿児島産ゴボウのきんぴらなど »

2011年3月31日 (木)

秋月電子、PIC16F886制御、赤外線リモコン学習キットLCD付きの学習 /886のHI-TECH C proによる動作クロック設定

 秋月電子、PIC16F886制御、赤外線リモコン学習キットLCD付きの製作 /プログラムを書き換え文字列 Hello Jengaを表示できたに記した通り、学習中である。
 液晶の制御には、クロックの制御が重要である。タイミングを管理しないと液晶は何も表示してくれない。

 実は、PIC16F886の動作クロックの設定に悩んでいた。幸い、この石はデフォルトで4MHzで動作する(何も記述しなければ4M)。8Mで動かすとか31KHzで動かすとか考えなければ問題は生じない。
 でも、動作クロックの設定・制御が出来ずに液晶を動かしているのは、何となく気持ちが悪い。そこで、弄繰り回してHI-TECH C Proでの記述方法が分かったのでここへ記す。

 次の通りである。ブログ上だと改行が妙なことになるので読み難いかも。


#define CONFIG1 0x2007 /* 無しでもよいかも*/
#define FOSC_INTRC_NOCLKOUT 0xFFFC /* 無しでもよいかも*/
#define _XTAL_FREQ 1000000 /* 8M,4M,2M,1M,500k,250k,125k,31k */
#define JIKAN 500
main()
{
OSCCON=0xCF ; // 1M動作時
ANSEL = 0x00; // PORTA digital
ANSELH = 0x00;  // PORTB digital
__delay_ms(JIKAN);
}

 上記は、内蔵オシレータで1MHz動作を指定している。
 ポイントは、OSCCON=0xCF;と言う記述方法にある。PICによっては1Mを指定する際に、OSCCON=4;と書くような場合もあるようだが、886の場合はNGだ。16進数で記述した場合、上位4ビットで周波数を決めることになる。
 この点は、886のデータシートの64ページにも記載されているが、 OSCCON=4のような記述法でおかしい、おかしいと悩んでいた。
 31kから8Mは、次の通り。
31k 0b1000-1111 0x8F
125k 0b1001-11111 0x9F
250k 0b1010-1111 0xAF
500k 0b1011-1111 0xBF
1M 0b1100-1111 0xCF
2M 0b1101-1111 0xDF
4M 0b1110-1111 0xEF
8M 0b1111-1111 0xFF

 尚、delayを利用する場合は、_XTAL_FREQは必須。delay未使用なら、_XTAL_FREQなしでよい。


|

« 地震で儲けた人たち/東証さんもその1社かも | トップページ | 本日の朝ご飯のおかずの写真 静岡産サバの塩焼き、鹿児島産ゴボウのきんぴらなど »

デジモノ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 秋月電子、PIC16F886制御、赤外線リモコン学習キットLCD付きの学習 /886のHI-TECH C proによる動作クロック設定:

« 地震で儲けた人たち/東証さんもその1社かも | トップページ | 本日の朝ご飯のおかずの写真 静岡産サバの塩焼き、鹿児島産ゴボウのきんぴらなど »