MMBasicで定番のLチカをやってみます。
プログラムメモリのクリア
以前のプログラムがプログラムメモリに残っている場合はコマンドプロンプトでNEW
コマンドでクリアしておきます。削除できたかはMEMORY
コマンドで確認できます。
> NEW
> MEMORY
Program:
0K ( 0%) Program (0 lines) <- プログラムメモリが空になっている。
128K (100%) Free
...
以下略
ボード上のLEDの点滅
まずは内蔵LEDを光らせてみましょう。WEBMITEのファームウェアで実行できません。
内蔵LEDはGP25
ピンに割り当てられています。
500ミリ秒間隔でボード上のLEDを点滅するコードは次の通りです。
SETPIN GP25, DOUT ' GP25をディジタル出力に設定
DO
PIN(GP25) = 1 ' GP25を1(LEDを点灯)
PAUSE 500 ' 500ミリ秒停止
PIN(GP25) = 0 ' GP25を0(LEDを消灯)
PAUSE 500 ' 500ミリ秒停止
LOOP
-
SETPIN
コマンドでピンの動作を指定します。DOUTはディジタル出力です。 -
PIN
コマンドでピンの状態を設定します。 -
PAUSE
コマンドはミリ秒単位でプログラムの実行を停止します。 -
DO
〜LOOP
は無限ループです。CTRL+C
で実行を停止します。 -
'
はコメントの始まりで、行末までがコメントとなります。MMBasicはコメントで日本語を扱えないです。
エディタを起動してコードを入力し、F2
キーで実行します。
外付けLEDの点滅
次に、外付けしたLEDを点灯させてみましょう。
接続は図の通りです。470Ωの抵抗器をRaspberry Pi Picoの27番ピン(GP21)に接続し、もう一端をLEDのアノードに接続しています。LEDのカソードは23番ピン(GND)に接続しています。実際に配線する場合にはLEDの極性に注意しましょう。
プログラムはボード上のLED点滅プログラムのピン指定をGP25からGP21に変更するだけです。
SETPIN GP21, DOUT ' GP21をディジタル出力に設定
DO
PIN(GP21) = 1 ' GP21を1(LEDを点灯)
PAUSE 500 ' 500ミリ秒停止
PIN(GP21) = 0 ' GP21を0(LEDを消灯)
PAUSE 500 ' 500ミリ秒停止
LOOP
編集できたらF2キーを押して実行します。接続等に誤りがなければ接続したLEDが点滅するはずです。
プログラムのセーブ
入力したプログラムはプログラムメモリにあるのでこれをフラッシュファイルシステムにSAVE
コマンドで保存しておきます。
> SAVE "LED.BAS"
> FILES
A:/
<DIR> .
<DIR> ..
00:00 01-01-2024 4 bootcount
00:54 01-01-2024 88 LED.BAS
02:40 01-01-2024 56 test.bas
2 directories, 3 files, 724992 bytes free
>
フラッシュファイルシステムのファイルの表示
フラッシュファイルシステムに保存されているファイルの内容を表示するにはLIST
コマンドを使います。コマンドに続けてファイル名を指定します。ファイル名を指定しない場合はプログラムメモリ内のプログラムを表示します。
先ほど保存したLED.BASの内容を表示してみます。
> LIST "A:/LED.BAS"
SETPIN GP21, DOUT
DO
PIN(GP21) = 1
PAUSE 100
PIN(GP21) = 0
PAUSE100
LOOP
>
参考:ハートビートのオン・オフ
なお、PicoMiteはシステムが動作していることを示すハートビートとしてボード上のLEDを1秒間隔で点滅させています。これを無効化または有効化するにはコマンドプロンプトでOPTION
コマンドを使って指定します。
ハートビートを無効化
> OPTION HEARTBEAT OFF
ハートビートを有効化
> OPTION HEARTBEAT ON