PIC16F拡張版の思い出し
2012-11-12
急にDDSの実験を本格化したため、PICのプログラム作成に手を染める運びなんですが、普段日常的に使わない「言語」を思い出そうとしても、何だかちょっと腰が引けてしまいます。ブログを振り返ると、そこそこ気合いの入っていた時期・・・昨年の冬辺りやLCメータ製作が活況のころには何やら次々とこしらえていたようです。そして、途中で使い始めた「Enhanced Mid-Range CPU」・・・PIC16Fの拡張版がやはり使い易いなぁという印象だけで、そもそも何が使い難かったのかさえ忘れてしまいました
PICは非常によく考えられたプロセッサである反面、小さな身体にゴマンと機能を担いでいることやハード・アーキテクチャの制約から、メモリアクセス関連が非常に弱い印象がありましたが、確か上記拡張版ではかなり改善されたんじゃなかったっけ・・・と命令セットと暫し睨めっこ。で、段々思い出してきたものの、旧来品との「差」(どこがどう改良されたんだっけか)が判らず、これまたネットで情報集め。すると、きちんとまとめられているサイトを発見しました。
自分用の備忘録として、ちょいと抜き書きしてみます。
◆ 割り込み処理のレジスタ待避・復元が大幅改善
◆ バンク指定が1命令化
◆ 間接CALL/JUMPが簡素化
◆ FSRのアドレッシングが全メモリに拡張
◆ INDレジスタ関連の命令セット追加
◆ シフト命令が追加
その他、スタックがさわれるようになったり、プログラムエリアからデータを拾うこと(この機能は結構使えます)が可能となったりと、プログラム作成の上ではかなり便利になったんでした。すっかり忘れてらぁ・・・。
今回のDDS実験用プログラムでは、SPIモドキ(AD9834制御)とロータリーエンコーダの処理(これは、分岐テーブルで小さく作ろう)がメインで、後は表示ルーチンをLCメータのプログラムから拾ってきて組み上げればOK。最後に使った際の周波数記憶(EPROM)辺りも実装すればQRP用のVFOになりそうですが、まずは欲張らずに「信号発生器」として完成させようと思っています。
さぁ、そろそろ「復活の呪文」でも唱えましょうかね・・・

PICは非常によく考えられたプロセッサである反面、小さな身体にゴマンと機能を担いでいることやハード・アーキテクチャの制約から、メモリアクセス関連が非常に弱い印象がありましたが、確か上記拡張版ではかなり改善されたんじゃなかったっけ・・・と命令セットと暫し睨めっこ。で、段々思い出してきたものの、旧来品との「差」(どこがどう改良されたんだっけか)が判らず、これまたネットで情報集め。すると、きちんとまとめられているサイトを発見しました。
自分用の備忘録として、ちょいと抜き書きしてみます。
◆ 割り込み処理のレジスタ待避・復元が大幅改善
◆ バンク指定が1命令化
◆ 間接CALL/JUMPが簡素化
◆ FSRのアドレッシングが全メモリに拡張
◆ INDレジスタ関連の命令セット追加
◆ シフト命令が追加
その他、スタックがさわれるようになったり、プログラムエリアからデータを拾うこと(この機能は結構使えます)が可能となったりと、プログラム作成の上ではかなり便利になったんでした。すっかり忘れてらぁ・・・。
今回のDDS実験用プログラムでは、SPIモドキ(AD9834制御)とロータリーエンコーダの処理(これは、分岐テーブルで小さく作ろう)がメインで、後は表示ルーチンをLCメータのプログラムから拾ってきて組み上げればOK。最後に使った際の周波数記憶(EPROM)辺りも実装すればQRP用のVFOになりそうですが、まずは欲張らずに「信号発生器」として完成させようと思っています。
さぁ、そろそろ「復活の呪文」でも唱えましょうかね・・・

- 関連記事
-
- PIC用Cコンパイラ無償版の「char型の扱い」
- 寄る年波には勝てぬ・・・でもC言語は便利(^^;
- PIC16F拡張版の思い出し
- PIC内蔵タイマについて
- PICの演算ライブラリ