使える変数
PICAXEで用意されているのは、CPU毎に異なります。変数名はw0やb0とシステムで決められた値を使用します。アセンブラに近いですね。
・PICAXE-28X2 使える変数:56byte
word変数 w0〜w27
byte変数 b0〜b55
・PICAXE-14M2,PICAXE-18M2,PICAXE-20M2 使える変数:28byte
word変数 w0〜w13
byte変数 b0〜b27
小数点は使えない
整数しか使えない。 byte変数(8bit)で0~255、word変数(16bit)で0~65535。
負は扱えない
c言語の変数の型で例えると、unsigned char(b0〜b27) と unsigned int(w0〜w13) のみ扱えます。
byte変数は、word変数から1byteづつ使用される。(共有)
例 w0 b0:b1
b0 使用時は w0 が使えないので注意
変数はsymboleコマンドで変更できる
w0 を、symbol gAccCont = w0 と宣言すると、以降 gAccCont と使える。
b0 を、symbol gAdcDat = b0 と宣言すると、以降 gAdcDat と使える。
c.1 を、symbol CH1ADCPORT = c.1 と宣言すると、以降 CH1ADCPORT と扱える。
symbol ADCHth = 200 と宣言すると、ADCHth が 200 と使える。
C言語の定義命令で表すと #define ADCHth 200 です。
PICAXE と PICの対応
・PICAXE-08M2+ PIC12F1840
・PICAXE-14M2 PIC16F1825
・PICAXE-18M2+ PIC16F1847
・PICAXE-20M2 PIC16F1829
通常 IC PKG に PICAXE の刻印がありますが、PIC刻印があるタイプもある
https://picaxe.com/what-is-picaxe/picaxe-chip-labels/
参考サイト 電気の迷宮 PICAXEについて
http://eleclabyrinth.blog.fc2.com/blog-entry-2.html
PICAXE のシリアルデバック
4800bpsであれば、Terminal を使用したデバック文字の送信ができた。
AXE027 PICAXE USB経由で文字を送信できるのでかなり便利です。
※なおボーレートの変更ができるようですが、わからなかった。
参考 hello, world
main:
SerTxd( "hello, world", cr, lf )
pause 1000
goto main
PICAXE のADC取り込み
A/Dコンバートした結果を8bitで取り込んで、値をシリアル値で確認したい。
adcconfig %000 ; b2 = 0 VRef- is 0V , b1-0 = 00 VRef+ is V+ (power supply)
main:
readadc c.1,b1 ; port c.1 から A/Dコンバータした結果を b1 に格納
sertxd("b1:", #b1, cr, lf) ; b1の内容を B1:dd に文字変換して、シリアル出力
pause 1000 ; 1秒ウエイト
goto main
PICAXEのdebugコマンド
PICAXEのdebugコマンドを使用すると右側の窓部分で変数がリアルタイムで見られてよいですね。
ただしプログラムがかなり遅くなります。
仕組み的には、w0〜w13 をシリアルで送り続けていまして、その受信した結果を表示しています。
参考 剣菱Pさん PICAXEを使ってみる。【第6回】 debugコマンド
https://www.nicovideo.jp/watch/sm20899746
システム変数 time
timeというワード変数に、カウントアップされます。
time = 0 と強制的に初期化しても良いらしい。
main:
time = 0
do
while time < 10
high b.0
pause 1000
low b.0
goto main
time のオーバーフロー
以下のように time に 0xfff9 を代入して debug で レジスターを眺めると。
最大65535なので約18時間でオーバーフローですね。
main:
time = 0xfff9
g:
w0 = time
debug
pause 100
goto g
Error: Can't open port COM1.
ソース内の日本語コメント(2バイト文字)の文字化け対応
PICAXE関連の投稿
PICAXE(ピカクス)でLチカ
https://qiita.com/masashi_214/items/5495503bf6bd82c1980b
PICAXE 最初に調べた事
https://qiita.com/masashi_214/items/d1acb1ecdc32de5a1698
PICAXEで鉄道模型の在線検出と信号機の制御
https://qiita.com/masashi_214/items/c728814df4f7a2453112
PICAXE(ピカクス)のポート設定
https://qiita.com/masashi_214/items/e5d5e1b9817aed754f52
PICAXE(ピカクス) リンク集
https://qiita.com/masashi_214/items/8b630b2c60ddb466b1ac
PICAXE(ピカクス)のpwm設定
https://qiita.com/masashi_214/items/f92e52837a9fa902879f
PICAXEでPWMを使用した調光機能を使って蛍を作る
https://qiita.com/masashi_214/items/0231a75ae0c77c2be206