0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PICAXE 最初に調べた事

Last updated at Posted at 2023-12-31

使える変数

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経由で文字を送信できるのでかなり便利です。
※なおボーレートの変更ができるようですが、わからなかった。
ターミナル.png

ターミナル2.png

参考 hello, world

main:
    SerTxd( "hello, world", cr, lf )
    pause 1000
    goto main

hello_world.jpeg

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?