楽天市場
[無料でホームページを作成] [通報・削除依頼]

電大版TINYBASIC for PIC ミニマムお試し版2

<電大版TINYBASIC for PIC ミニマムお試し版2 flashに書いたBASICプログラムを実行できるようにする>

前ページの追記で記述したように、flash領域に書き込んだBASICプログラムを実行できるようお試し版を改良しました。

2018.08.26 バグがありましたので差し替えました。(改訂1)
追記     メモリマップを変更しました。
       最新の版のflashにはスタートレックが書き込まれています。
2018.08.27 BASIC起動時に変数領域とプログラム/配列領域をゼロクリアするように変更しました。(改訂2)
追記     (スタートレックのプログラムを正しく実行させるために必要。)
2018.06.29  このページのダウンロードを停止します。お試し版3に統合しました。

追記             機能を強化したミニマムお試し版3をご使用ください。

○使用方法
1.BASICのプログラムをPIC16F1705の$0900以降に書きこみPICを焼く
2.BASICインタープリタを起動 (この状態ではflash領域に書き込まれたプログラムを認識しない)
3.#50=1とダイレクトコマンドで入力 (これはPOKE文を示す、または #($32)=1 でも良い)
4.EXITコマンドでBASICインタープリタを抜け、GコマンドでBASICインタープリタを再起動する
5.BASICインタープリタ再起動後はflash領域のプログラムを認識する。この状態では
ダイレクトコマンド(PRINT $など)、LISTコマンド、RUNコマンドが使用できます。NEWコマンドは無効
6.#50=0としてBASICインタープリタを再起動するか、リセットSW押下で元の状態に戻ります
7.flashに書き込んでいても、上記手順でflashのプログラムを認識させなければ、従来のお試し版と同様に使用できます。

*50($32)は変数LDFLGのアドレス、LDFLGをモード切り替えのためのフラグとして使用

○flash領域のプログラムを認識させる方法
img_20180623-111734.jpg

○素数を求めるプログラムで比較
前ページでは100までの素数しか求めることができなかったが、BASICプログラムをflash領域
に書きこむことで配列に使用できる領域が増大し、400までの素数を求めることができる。
img_20180623-111831.jpg

追記、flash領域のBASICプログラムの消去/書き込みにはTinyMultiBootloader+を少し改造すれば容易な気配

2018.08.26、追記

○メモリマップ BASICランチャーを分割して配置しています。flash最後尾のBASICランチャーでは
        クロック(16MHz)、PPS、シリアルポートの設定を行っています。
        BASICプログラムは0x0900~0x1FDFの範囲に収める必要がある。
img_20180628-110050.jpg

○スタートレックのプログラムがギリギリ収まりました。
実行する前にE=4000:F=10と入力してください。(エネルギーと光子魚雷の初期値)
<command>
R:状況報告、W:ワープ(北が0°、東が90°)、S:近距離センサー、L:長距離センサー、G:銀河系マップ
P:フェイザー砲、T:光子魚雷
img_20180628-172211.jpg

○BASICサンプル PICのレジスタを操作
BASIC上でPIC16F1705の動作クロックを変更するプログラム
"NOW...."の印字が正常ならクロックの切り替えに成功している。
img_20180626-111756.jpg

○BASICサンプル 円周率:モンテカルロ法
 実行に先立ちPICのクロックを32MHzに変更している。
img_20180627-004345.jpgimg_20180627-004359.jpg

追記ここまで

ダウンロードはこちらから

https://box.yahoo.co.jp/guest/viewer?sid=box-l-ynvbblq5wtn3l5nx64zrgryqbm-1001&uniqid=f858bb73-32f3-4a8f-908c-fb269bc9730b&viewtype=detail

https://box.yahoo.co.jp/guest/viewer?sid=box-l-ynvbblq5wtn3l5nx64zrgryqbm-1001&uniqid=e39bf7ce-4ac6-4158-8faf-10eb46f6098f&viewtype=detail

https://box.yahoo.co.jp/guest/viewer?sid=box-l-ynvbblq5wtn3l5nx64zrgryqbm-1001&uniqid=4c73c90b-f8ad-4b0e-bbbd-d43cf5cb3492&viewtype=detail