【Flash PIC 勝手にQ&A】

Flash PICって何ですか? このページの先頭

Flash PICは、マイクロチップ社が開発した命令語長14ビットのPICを搭載したトレーニングボードのシミュレーションをAdobe Flash Playerを使って、インターネットのブラウザ上で実現しようというものです。(FlashタイプのPICのことではありません)

Flash PIC最大の特徴は、画面内の基板上に配置されているボタンやLEDを、実際のトレーニングボードと同じようにプログラムでコントロールできることです。

処理速度は、実際のPICと比較すると著しく遅いですが、プログラムのステップ動作やファイルレジスタの表示が可能ですので、自作プログラムの検証やPICマイコンの勉強に最適です。

プログラムの入力は、実際のPICに使用する命令と同じものをソースウインドウにキーボードで入力します。そして〝Build〟ボタンを押すと、アセンブルされて基板上のPICへ転送されます。

トレーニングボードは、3種類準備しました。ツールボックスの〝ボードの変更ボタン〟を押して選んでください
また、ボードにはサンプルのソースプログラムが付属していますので、PICプログラムの勉強にご利用ください。

詳しい使い方やプログラムを記序するルール、基板の配線図などはツールボックスの〝HELP〟か、取扱説明書をご覧ください。超初心者の方ははじめてのFlashPIC をご覧ください。 

 このページはデジタル降魔録というサイトの一部です。興味のある方はぜひトップページからご覧ください。

PICのプログラムが走りますか? このページの先頭

12ビット・14ビット命令のPICのプログラムをシミュレートできるようにしましたのでそのまま走ります。
ただし、割り込み機能がありませんので〝retfie〟命令はエラーになります。

制約ってありますか? このページの先頭

あります。
フラッシュプレーヤーを使用していますので、CPUの速度は極端に遅いです。実際のPICなら1命令1μS以下で処理することはあたり前ですが、Flash PICではホストマシンの速度によりますが、1命令15mSもかかります。
ツールボックスでCPU速度を20倍速まで上げれますがそれでも1mSほどの速度にしかなりません。
速度重視のプログラムには向いていません。

ハード的な制約もあります。
ウォッチドッグタイマーやタイマー1,2,3などは搭載されてませんので、関係する命令は機能しません。
プログラムエリアは0x00~0x1FFの512アドレスまで。ユーザーメモリは0x0B~0x15までです。
詳しくはこちらをご覧ください。

トレーニングボードってなんですか? このページの先頭

PICプログラムを勉強するために、あらかじめ必要な入出力装置を搭載した汎用型のボードのことです。
ボード上のLEDをプログラムで点滅させたりして勉強していくものです。

Flash PICの利点は? このページの先頭

実際のトレーニングボードでは、それに搭載されているPICにプログラムを書き込まなければいけません。そのためには、まずプログラムをホストコンピュータ上で作ります。次にホストコンピュータからボード上のPICに専用の書き込み器でプログラムを書き込んでから、プログラムを走らせて検証します。

しかし、この方法で正しく動くものを一度に作り上げることは困難で、何度もプログラムの変更をし、書き込み器にかけるという動作を繰り返して作り上げていきます。

クリティカルなバグが発生しても、その前後でメモリーがどのように変化しているのかは直接目に見えるものではありませんのでイメージできません。ICE(インサーキットエミュレーター)を使うと、プログラムの挙動をリアルタイムに見ることもできますが、大変高価で簡単に手に入るものではありません。

このような時、役に立つのが MPLAB IDE に付属のPICシミュレーターです。プログラムを1命令ずつ動かしてバグの瞬間を追うことができます。しかし、このシミュレーターはホストコンピュータの中のプログラムをシミュレートするものですので、ボード上の部品がどう反応しているかは表現してくれません。レジスタの数値一覧を見て自分の頭の中でイメージするしかありません。

そこで、プログラムシミュレーターの中に仮想のトレーニングボードを作り、CPUの内部からボード上の部品の動きまで、丸ごとシミュレートするようにしたのが Flash PIC です。
1命令ずつ動かしてもボード上の部品がそれに合わせてリアルタイムに変化します。高価なICEを使用したときと同じデバッグ環境を可能にしました。

自分で作ったプログラムの保存ってできますか? このページの先頭

できます。
Flash PIC のソースウインドウにキーボードでプログラムを入力しますが、そのままFlash PICを終了させますと入力されたソースプログラムは消えてしまいますので〝保存〟ボタンを押します。
〝保存〟ボタンが押されますと、ソースウインドウ上のテキストがお使いのコンピュータに保存されます。次回Flash PICを起動させますと、保存されたソースプログラムは自動的にソースウィンドウに読み込まれます。

自分の持っているテキストエディッタで作ったプログラムを読み込ませることはできますか? このページの先頭

できます。
お持ちのエディッタ上でテキストを全て選択コピーして、Flash PICのソースウインドウを右クリックして貼り付けを実行しますと、そのまま転送されます。ただし、Flash PICのアセンブラルールに合っていない部分は修正する必要があります。
Flash PICはMPASMフォーマットですが、数値表現や使用できない擬似命令がたくさんありますので詳しくはこちらをご覧ください。

アセンブラルールって何ですか? このページの先頭

ソースプログラムをアセンブルする時の取り決めです。
Flash PICはMPASMフォーマットになっていますが、Rev5.3 では次の制約があります。

●数値表現は10進数はそのまま記序し、16進数は頭に〝0x〟をつけるようになっています。
〝10〟なら10進数の〝10〟と判断されます。
〝0x10〟なら16進数〝H'10'〟(10進数で〝16〟)と判断されます。現時点では〝H'xx'〟の書き方はできません。


●使用できる擬似命令は
〝equ〟と〝org〟命令だけです。 〝include〟命令は使用できませんので、必要なものをソース上に展開する必要があります。


●ビット位置に数値以外は書けません
通常SFRの〝STATUS〟レジスタのZerroフラグを下記のように表記しますが・・・。

Z equ 2
 :
 :
btfss STATUS,Z
これはエラーになります。正しくは・・・。
btfss STATUS,2

このあたりは随時修整していきますので、いましばらくお待ちください。

〝EDIT〟ボックス(編集画面)の消去ボタンを押してもソースプログラムが完全に消えません このページの先頭

〝EDIT〟ボックスの消去ボタンを押すと、ソースのヘッダ部分とトレーニングボード1のポート初期化のプログラムに変わります。
ヘッダ部分はどのプログラムでも同じものになりますので、入力の手間を省くためにそうなっています。
ただし、ポート初期化の部分はトレーニングボード1専用になっていますので、トレーニングボード2を選んだ時はそれにあわせる必要があります。

ポートの入力設定・出力設定は実際のPICプログラムの場合と同じで〝1〟のビットが入力ポートに〝0〟のビットが出力ポートになります。
ポート設定を間違ってプログラムしても実際のPICのように破損することはありませんの安心してください(笑)

〝ちきどん〟ってなんですか? このページの先頭

トレーニングボード1を選択すると出てくるマシンです。
ACモータで歯車を回転させてスティックを動かし、それに付いているマイクロスイッチをON/OFFさせているだけのマシンですが、トレーニングボードの入力端子として使えばおもしろいものができるのでは・・・と思っています。

〝ちきどん〟の電圧計に付いているボタンで回転速度を変えることができます。また、Flash PICでプログラムして回転のON・OFFもできますが、マニュアルボタンを押すことでも回転させることができます。

ボード上のボタンを押すと回転を始めて、〝ちきどん〟のマイクロスイッチが何回か押されたら停止させるとか、イロイロプログラムしてみてください。



このページの先頭