[][mobile][Homepage][BBS][Blog][YouTube][asablo]

過去の記事の検索が簡単にできるよ (・∀・) 例 ランチャー9
カスタム検索

PIC16F18xx(12F1822,16F1823,16F1827,16F1939等)は連続したメモリーアクセスが可能2011/07/19 23:59:15

国内でPIC16F18xxが発売されてから半年以上が経ち、個人ホームページやブログでは、その製作記事などがちらほら見られるようになった。

私の方でも、ホームページで人気のある

LCD VUメーター 16F1827 使用

を移植している。

所で、この16F18XX系PICは、PIC16F88などの従来PICよりも更に使いやすくなった部分として、割り込み時にレジスタ退避を自動で行ってくれるので、ユーザーが意識して操作を行わなくてもよくなった。尤もHitech PICCを使う場合は意識することなく自動的にコンパイル時に退避コード生成されるが、それが無くなるわけなので、プログラム容量を減らす貢献となる。

自動退避するレジスター
• W レジスタ
• ステータス レジスタ (TO および PD を除く )
• BSR レジスタ
• FSR レジスタ
• PCLATH レジス



そして、もっと便利な機能として、メモリーを一つの連続したアドレスとして使用できる点である。
上記はPIC16F193xのメモリーマップであるが、相変わらずのバンク分けされたものである。
FSRメモリーが0x020~0x06F、0x0A0~0x0E0、0x120~0x16Fの各80バイトの領域が各バンクに分かれているが、それをなんと0x2000~0x20EFと、一つのメモリーアドレスとして扱うことができるのである。



PIC16F18xxは連続したメモリー空間を取り扱える

上記の様に各バンクに散らばった80バイトをリニアデーターメモリーとして取り扱えるので、例えば通信バッファとして大量にメモリーを確保したい場合にバンクを跨ぐ様なメモリー空間は単純には扱えなかったのが、0x2000以降を指定することで簡単にアクセスが可能となった。
Hitech PICCでなら

  unsigned char Buffer_FIFO[MAX_BUFF] @0x2000;

の様にするだけでOKだ。
これで80バイトを超える連続したメモリーを簡単に確保できる様になった。

この新しいPIC16F18xx系PICは、日本語で書かれている PIC16F193X/LF193Xのデータシートを読むことで、容量や機能の多少の違いはあるものの、12F1822,16F1823,16F1827,16F1939等のデバイスを簡単に扱えるようになるであろう。是非このドキュメントを参考にして、PIC16F18xx系を自分の物にして頂けたら幸いである。









Google
www Blog HP BBS


air_variableサイトをまとめて検索 
カスタム検索
[][admin][mobile][Homepage][BBS][Blog][YouTube][asablo]