Docs/Intro
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
&size(20){''Propeller イントロダクション''};
「Propellerをいじってみたいんだけど、どう始めればいいの?...
必要なものはこれだけです:
-Propeller搭載ボード(クイックスタートボードがおすすめ)
-PC(OSはWindows か MacOSX か Linux)
-USBケーブル(MiniUSB)
-開発環境(無料です)
Propeller搭載ボードは何種類か入手可能ですが、ここでは''Qu...
何でかというとですね、クイックスタートボードが一番用意す...
では、以下で解説をしていきます。
#contents
*1.プロペラを体験するためのハードウェアを入手しましょう [...
日本マイクロボット教育社さんで、''クイックスタートボード'...
コチラで購入できます→http://www.microbot-ed.com/j_quickst...
安くて手早くプロペラを体験できる、オイシイボードです:-)
ちなみに、日本マイクロボット教育社さんは、PARALLAX社さん...
http://www.microbot-ed.com/
各種キット・ボードなどを購入できます。
*2.開発環境を手に入れましょう [#p6b616d0]
開発環境は無償で入手できます。
2種類ありまして、一つはPARALLAX社公式開発環境、もう一つは...
**PARALLAX社公式ツール群 [#cf16e596]
PARALLAX社公式Spin言語開発環境「Propeller Tool」
→http://www.parallaxsemiconductor.com/support/software
PropellarTool以外にも、いくつかのツールがダウンロードでき...
最低限必要なのは、「Propeller Tool v.1.3」です。
クイックスタートボードにはUSBシリアル変換チップが搭載され...
PropellerToolには、Spin言語(後で解説します)のサンプルソー...
**Bradさん謹製ナイスツール群「Brad's Spin Tool」 [#sf2db8...
「BST - The multi-platform Propeller Tool Suite」
→http://www.fnarfbargle.com/bst.html
Windows/Linux/Macで動作する開発環境です(バイナリはそれぞ...
公式のツールとの違いは
-Windows以外にも、LinuxとMac用のバイナリが用意されてる
-日本語環境でのソース表示に関するバグがありません(=日本語...
-GUIがチョット違う
-サンプルソースは付いてません
BSTを使うときには、Windows環境ではUSBシリアルデバイスドラ...
USBシリアルドライバはPARALLAX公式ページの「Off-site softw...
*3.その他必要なものを用意しましょう [#k2ae2af1]
あと必要なのは、PCとMini-USBのケーブルです。
**PC [#n7993e31]
開発環境でプロペラのプログラムを書いてプログラムをプロペ...
PARALLAX公式開発環境を使う場合ですと、Windowsが動作してい...
Brad's Spin Toolを使うなら、Windows、MacOSX、Linux(x86)の...
Linuxをお使いの場合、ディストリビューションは何でもいいで...
**Mini-USBケーブル [#g36510d4]
プロペラクイックスタートボードとPCは、USB A〜Mini-USBのケ...
このケーブルは付属してません。なので、適当なのを用意して...
長さとか適当でいいですが、通信できることが確認されたもの...
*4.開発環境を準備しましょう [#r0bbcbff]
上記のものが用意できましたら、開発環境をインストールしま...
インストールは、公式開発環境とBrad's Spin Toolとでだいぶ...
どちらがおすすめ、とは言えません、が!Windowsを使う方はど...
サンプルソースがすごく役に立ちますので。
LinuxかMacをお使いの方でも、アーカイブ内のサンプルをなん...
**公式開発環境 Propeller Tool [#b4f1ed4f]
まずアーカイブをダウンロードします。
&ref(DL_here.PNG,,50%);(画像をクリックすると拡大)
Setup-Propeller-Tool-v1.3.zipがダウンロードされます。
次に、これを展開します。
Setup-Propeller-Tool-v1.3.exeが出てきます。
そのSetup-Propeller-Tool-v1.3.exeを実行します。
ウィンドウに表示されている内容をお好みかつ適切に設定し、...
&ref(1_start.png,,50%);(画像をクリックすると拡大)
&ref(2_user_reg.PNG,,50%);(画像をクリックすると拡大)
特にカスタマイズすることはないと思いますので、Completeで...
&ref(3_sel_type.png,,50%);(画像をクリックすると拡大)
インストールフォルダも特に変更しなくてOKです。してもかま...
&ref(4_dest_dir.png,,50%);(画像をクリックすると拡大)
途中でUSBドライバのインストールをするかどうかのチェックボ...
すでにFTDI USBシリアル変換デバイスのドライバをインストー...
インストールしてないなら、チェックボックスはオンにしてお...
&ref(5_usb_drv.png,,50%);(画像をクリックすると拡大)
Installというボタンが出てきたら、それを押すとインストール...
&ref(6_install.png,,50%);(画像をクリックすると拡大)
&ref(7_progress.png,,50%);(画像をクリックすると拡大)
USBドライバのインストールのところで、チェック印をつけた場...
&ref(8_usb_progress.png,,50%);(画像をクリックすると拡大)
Finishボタンが出てきたら、それを押して終了。
&ref(9_complete.PNG,,50%);(画像をクリックすると拡大)
**Brad's Spin Tool [#fc6a5cac]
こちらは簡単です。
BradさんのWebページからアーカイブをダウンロードします。
そのアーカイブを展開します。
展開して出てくる実行ファイルがBST本体です。それを実行する...
一つ注意しないといけないのは、実行するOSの環境によっては...
***Windows版のインストール [#zb8bb82b]
+BSTのアーカイブを取得します。
http://www.fnarfbargle.com/bst/Latest/ にアクセスし、bst-...
&ref(bst_dl_win.PNG,,70%);(画像をクリックすると拡大)
+アーカイブを展開します。
bst.exeというファイルが出てきます。これが本体。
+FTDI VCPドライバを別途入手してインストールします。
ドライバはPARALLAX公式ページの「Off-site software」の欄に...
***Linux版のインストール [#m013c84f]
+BSTのアーカイブを取得します。
http://www.fnarfbargle.com/bst/Latest/ にアクセスし、bst-...
&ref(bst_dl_linux.PNG,,70%);(画像をクリックすると拡大)
+アーカイブを展開します。
bst.linuxという実行ファイルが出てきます。これが本体です。
+USBシリアルドライバについて。
大抵のディストリビューションでFTDI USBシリアルドライバは...
もしクイックスタートボードを認識しなかった場合は、お使い...
***MacOSX版のインストール((titoi2さん、宮崎さん、ご協力あ...
+BSTのアーカイブを取得します。
http://www.fnarfbargle.com/bst/Latest/ にアクセスし、bst-...
&ref(bst_dl_mac.PNG,,70%);(画像をクリックすると拡大)
+アーカイブをダブルクリックして展開します。
+すると、「bst」という名前のファイルが出てきます。これが...
インストールはbstをアプリケーションフォルダにドロップ。
+FTDI VCPドライバを別途入手してインストールします。
プロペラブMLにて参加者の方がドライバのインストールレポー...
ちなみに、OSは Mac OS X 10.6.8 snow Lepard です。
FTDI USB-シリアル変換ドライバを入れてみまたらプログラム...
入手元
http://www.ftdichip.com/Drivers/VCP.htm
以下、私が試した手順です。
1.MacOSX (32bit) 2.2.16 を選択。
→ダウンロードされるファイル:FTDIUSBSerialDriver_v2_2_16...
2.ダウンロードされたFTDIUSBSerialDriver_v2_2_16.dmgをダ...
→イメージがマウント?されるのでFTDIUSBSerialDriver_10_4_...
をダブルクリック。
※ディレクトリ内にはFTDIUSBSerialDriver_10_3というファイ...
3.インストーラの指示に従ってインストール
4.再起動の必要無し。
→bsからプログラムがロードできました。(ひゃっは〜)
*5.簡単なプログラムを作成してみましょう [#p56bbe6b]
さて、ここまでで開発環境が起動できて、クイックスタートボ...
では、実際にプログラムを作れてボードにプログラムをロード...
**プロペラ用プログラミング言語「Spin」 [#ee6c2a51]
プロペラに標準で用意されているプログラミング言語として、...
コンパイラ型の言語なので、入力→コンパイル→ボードにロード...
**Spin言語で書いたプログラムを入力してみましょう [#i48a6a...
サンプルとして、LEDがナイトライダーのアレ(ネタ古くてごめ...
'LED Demo
'
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
VAR
byte LED
PUB LedDemo
dira[16..23] := %1111_1111
repeat
repeat LED from 16 to 23
outa[LED] := 1
waitcnt(clkfreq/4 + cnt)
outa[LED] := 0
repeat LED from 23 to 16
outa[LED] := 1
waitcnt(clkfreq/4 + cnt)
outa[LED] := 0
段下げ(インデント)は大事です。
Pythonを使ったことがある人は、Pythonと同じくインデントで...
とにかく、''スペースの1つもそっくり同じく''、開発ツールの...
各開発環境の起動直後はこのようになってます:
-公式開発環境 Propellar Toolの場合
&ref(proptool_start.JPG,,50%);(画像クリックで拡大)
-Brad's Spin Tool(BST)の場合
&ref(bst_start.JPG,,50%);(画像クリックで拡大)
見かけが割と違いますが、今の段階では無視してて問題ないで...
特に、左側に表示されているファイル一覧やディレクトリツリ...
これの、右側の一番広いとこにさっきのプログラムを入力して...
単に動作を体験するだけですし、コピペでオッケーです。
**クイックスタートボードにロードして実行してみましょう [#...
サンプルプログラムができましたので、いよいよクイックスタ...
使ってる開発環境が公式Propellar ToolかBSTかで、GUIが少々...
以下、それぞれの場合について解説をしていきます。
***公式開発環境 Propellar Toolの場合 [#le2665fa]
まず、プログラムが以下のように入力されています・・・よね?
&ref(make_prog_.JPG,,50%);(画像クリックで拡大)
これをコンパイルして、クイックスタートボードへ突っ込みま...
メニューバーから、[Run]-[Compile Current]-[Load RAM]、と...
&ref(exe1_menu1.JPG,,50%);(画像クリックで拡大)
&ref(exe2_menu2.JPG,,50%);(画像クリックで拡大)
&ref(exe3_menu3.JPG,,50%);(画像クリックで拡大)
コンパイルが行われ、チェック・ロード・ベリファイが続けて...
&ref(exe4_chk.JPG,,50%);(画像クリックで拡大)
&ref(exe5_verify.JPG,,50%);(画像クリックで拡大)
何事もなく「Verifying RAM」のウィンドウが消えたら、何事も...
&ref(exe6_compiled.JPG,,50%);(画像クリックで拡大)
そしてクイックスタートボードを見ると!
LEDが左右にピコピコ光ったり消えたりしてますよね?ね?
&ref(LEDexec.jpg,,50%);(画像クリックで拡大)
***Brad's Spin Tool(BST)の場合 [#sd60d411]
BSTでは、GUIが公式環境と違うので、少々戸惑うかもしれませ...
さて、プログラムを入力して、このような状態になってると思...
・・・なってますよね?
&ref(bst1_make_prog.JPG,,50%);(画像クリックで拡大)
メニューバーから[Compile]-[Compile and Load Ram]、と辿っ...
&ref(bst2_menu1.JPG,,50%);(画像クリックで拡大)
&ref(bst3_menu2.JPG,,50%);(画像クリックで拡大)
すると、コンパイル進行表示がでて、そのあとRAMに書き込んだ...
&ref(bst4_trans.JPG,,50%);(画像クリックで拡大)
&ref(bst5_verify.JPG,,50%);(画像クリックで拡大)
そして進行表示が消えたらボードを見てみましょう。
どうでしょうか?LEDがピコピコしてますか?
&ref(LEDexec.jpg,,50%);(画像クリックで拡大)
**うまくできましたでしょうか? [#p0ad85ca]
さて、LEDを光らせることができました?
うまく光ったようでしたら、おめでとうございます。Spinプロ...
ではこのあとは、Spinプログラミングにちょっと踏み込んでみ...
*6. Spin言語入門 [#l7a756cf]
さっきのLEDチカチカプログラムは、まあそんなに長いプログラ...
簡単で短いですが、さっきのプログラムに含まれていた命令だ...
ということで、ここでは、ちょっと踏み込んだプログラムを見...
**POVを作ろう [#eaeaa07c]
POVってご存知でしょうか?
POVとは、残像を利用して一列のLEDで文字が見えるようにする...
・・・と、これだけではよく分からないと思いますので、http:...
どんなものかすぐに分かると思います。
**POVのコード [#n80b2c19]
以下のプログラムを入力し、QuickStartボードにロードします。
そして手でボードを持って左右に振ると、PropellerのROMにあ...
&ref(pa0_0002.jpg);
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
{{
OBJ
debug : "FullDuplexSerial"
}}
VAR
byte LED_data[48]
long Stack[10]
PUB main | t, dT, char, next_char, odd, col, col_data, t...
waitcnt(clkfreq*3 + cnt)
' debug.start(31,30,0,57600)
' debug.tx(0)
cognew(Drive_LED(@LED_data), @Stack)
t := cnt
dT := clkfreq/10
char := $7f94
repeat
char += $80
if char > $c000
char := $8014
next_char := char
repeat odd from 0 to 1 ...
' debug.hex(char,4)
' debug.tx(13)
repeat row from 0 to 10 ...
if row < 8
' debug.str(string("column data"))
' debug.tx(13)
repeat col from 0 to 7 ...
tmp_char := col * 12 + char ...
col_data := long[tmp_char] ...
' debug.hex(col_data,8)
' debug.tx(13)
row_data <<= 1
row_data += getRow(col_data,odd,row)
' debug.tx(13) ...
else
row_data := $0
waitcnt(t += dT)
' debug.bin(row_data,8)
' debug.tx(13)
repeat n from 0 to 46
LED_data[n] := LED_data[n+1]
LED_data[47] := row_data
' debug.bin(LED_data[47],8)
' debug.tx(13)
char := next_char
PRI getRow(col_data,odd,row): bit | x
if odd == 1
x := lookupz(row:$20, $200, $800, $8000, $80000, $8...
else
x := lookupz(row:$10, $100, $400, $4000, $40000, $4...
if x & col_data
bit := 1
else
bit := 0
PRI Drive_LED(addr) | index
dira[16..23]~~
repeat
repeat index from 0 to 47
outa[16..23] := byte[addr][index]
waitcnt(clkfreq/1000 + cnt)
では解説。
***コメント [#k3e5b893]
コードの中で{{ }}で囲まれた複数行、' に続く文字列はコメ...
***サブルーチン [#o392d770]
Spin言語でも他の大抵の言語と同じく、サブルーチンが定義で...
Spin言語では、ソースファイルを1つのオブジェクトとして、他...
PRI getRowでは横16bitの中の任意のbitの8bitを取り出すよう...
PRI Drive_LEDはLED_dataというデータバッファをただLEDに出...
PRI getRow(col_data,odd,row): bit | x のcol_data,odd,row...
CONで設定する定数はこのコード内で使うグローバル変数です。
***サブルーチンのスコープ指定 [#l69d0114]
サブルーチンですが、そのファイル内でのみ呼び出せるサブル...
サブルーチン定義のとき、名前の前にPUBをつけると、他のファ...
PRIをつけると、他のコードがこれをオブジェクトとして使う場...
***そのほか [#x2f47ab1]
ここではコメントにしていますがOBJブロックで通信プログラム...
フォントは$8000から$BFFFまでにあり、1文字横16bit縦32bitで...
mainで奇数キャラクタの横1ライン(1LONG)をロードして奇数bit...
終了行:
&size(20){''Propeller イントロダクション''};
「Propellerをいじってみたいんだけど、どう始めればいいの?...
必要なものはこれだけです:
-Propeller搭載ボード(クイックスタートボードがおすすめ)
-PC(OSはWindows か MacOSX か Linux)
-USBケーブル(MiniUSB)
-開発環境(無料です)
Propeller搭載ボードは何種類か入手可能ですが、ここでは''Qu...
何でかというとですね、クイックスタートボードが一番用意す...
では、以下で解説をしていきます。
#contents
*1.プロペラを体験するためのハードウェアを入手しましょう [...
日本マイクロボット教育社さんで、''クイックスタートボード'...
コチラで購入できます→http://www.microbot-ed.com/j_quickst...
安くて手早くプロペラを体験できる、オイシイボードです:-)
ちなみに、日本マイクロボット教育社さんは、PARALLAX社さん...
http://www.microbot-ed.com/
各種キット・ボードなどを購入できます。
*2.開発環境を手に入れましょう [#p6b616d0]
開発環境は無償で入手できます。
2種類ありまして、一つはPARALLAX社公式開発環境、もう一つは...
**PARALLAX社公式ツール群 [#cf16e596]
PARALLAX社公式Spin言語開発環境「Propeller Tool」
→http://www.parallaxsemiconductor.com/support/software
PropellarTool以外にも、いくつかのツールがダウンロードでき...
最低限必要なのは、「Propeller Tool v.1.3」です。
クイックスタートボードにはUSBシリアル変換チップが搭載され...
PropellerToolには、Spin言語(後で解説します)のサンプルソー...
**Bradさん謹製ナイスツール群「Brad's Spin Tool」 [#sf2db8...
「BST - The multi-platform Propeller Tool Suite」
→http://www.fnarfbargle.com/bst.html
Windows/Linux/Macで動作する開発環境です(バイナリはそれぞ...
公式のツールとの違いは
-Windows以外にも、LinuxとMac用のバイナリが用意されてる
-日本語環境でのソース表示に関するバグがありません(=日本語...
-GUIがチョット違う
-サンプルソースは付いてません
BSTを使うときには、Windows環境ではUSBシリアルデバイスドラ...
USBシリアルドライバはPARALLAX公式ページの「Off-site softw...
*3.その他必要なものを用意しましょう [#k2ae2af1]
あと必要なのは、PCとMini-USBのケーブルです。
**PC [#n7993e31]
開発環境でプロペラのプログラムを書いてプログラムをプロペ...
PARALLAX公式開発環境を使う場合ですと、Windowsが動作してい...
Brad's Spin Toolを使うなら、Windows、MacOSX、Linux(x86)の...
Linuxをお使いの場合、ディストリビューションは何でもいいで...
**Mini-USBケーブル [#g36510d4]
プロペラクイックスタートボードとPCは、USB A〜Mini-USBのケ...
このケーブルは付属してません。なので、適当なのを用意して...
長さとか適当でいいですが、通信できることが確認されたもの...
*4.開発環境を準備しましょう [#r0bbcbff]
上記のものが用意できましたら、開発環境をインストールしま...
インストールは、公式開発環境とBrad's Spin Toolとでだいぶ...
どちらがおすすめ、とは言えません、が!Windowsを使う方はど...
サンプルソースがすごく役に立ちますので。
LinuxかMacをお使いの方でも、アーカイブ内のサンプルをなん...
**公式開発環境 Propeller Tool [#b4f1ed4f]
まずアーカイブをダウンロードします。
&ref(DL_here.PNG,,50%);(画像をクリックすると拡大)
Setup-Propeller-Tool-v1.3.zipがダウンロードされます。
次に、これを展開します。
Setup-Propeller-Tool-v1.3.exeが出てきます。
そのSetup-Propeller-Tool-v1.3.exeを実行します。
ウィンドウに表示されている内容をお好みかつ適切に設定し、...
&ref(1_start.png,,50%);(画像をクリックすると拡大)
&ref(2_user_reg.PNG,,50%);(画像をクリックすると拡大)
特にカスタマイズすることはないと思いますので、Completeで...
&ref(3_sel_type.png,,50%);(画像をクリックすると拡大)
インストールフォルダも特に変更しなくてOKです。してもかま...
&ref(4_dest_dir.png,,50%);(画像をクリックすると拡大)
途中でUSBドライバのインストールをするかどうかのチェックボ...
すでにFTDI USBシリアル変換デバイスのドライバをインストー...
インストールしてないなら、チェックボックスはオンにしてお...
&ref(5_usb_drv.png,,50%);(画像をクリックすると拡大)
Installというボタンが出てきたら、それを押すとインストール...
&ref(6_install.png,,50%);(画像をクリックすると拡大)
&ref(7_progress.png,,50%);(画像をクリックすると拡大)
USBドライバのインストールのところで、チェック印をつけた場...
&ref(8_usb_progress.png,,50%);(画像をクリックすると拡大)
Finishボタンが出てきたら、それを押して終了。
&ref(9_complete.PNG,,50%);(画像をクリックすると拡大)
**Brad's Spin Tool [#fc6a5cac]
こちらは簡単です。
BradさんのWebページからアーカイブをダウンロードします。
そのアーカイブを展開します。
展開して出てくる実行ファイルがBST本体です。それを実行する...
一つ注意しないといけないのは、実行するOSの環境によっては...
***Windows版のインストール [#zb8bb82b]
+BSTのアーカイブを取得します。
http://www.fnarfbargle.com/bst/Latest/ にアクセスし、bst-...
&ref(bst_dl_win.PNG,,70%);(画像をクリックすると拡大)
+アーカイブを展開します。
bst.exeというファイルが出てきます。これが本体。
+FTDI VCPドライバを別途入手してインストールします。
ドライバはPARALLAX公式ページの「Off-site software」の欄に...
***Linux版のインストール [#m013c84f]
+BSTのアーカイブを取得します。
http://www.fnarfbargle.com/bst/Latest/ にアクセスし、bst-...
&ref(bst_dl_linux.PNG,,70%);(画像をクリックすると拡大)
+アーカイブを展開します。
bst.linuxという実行ファイルが出てきます。これが本体です。
+USBシリアルドライバについて。
大抵のディストリビューションでFTDI USBシリアルドライバは...
もしクイックスタートボードを認識しなかった場合は、お使い...
***MacOSX版のインストール((titoi2さん、宮崎さん、ご協力あ...
+BSTのアーカイブを取得します。
http://www.fnarfbargle.com/bst/Latest/ にアクセスし、bst-...
&ref(bst_dl_mac.PNG,,70%);(画像をクリックすると拡大)
+アーカイブをダブルクリックして展開します。
+すると、「bst」という名前のファイルが出てきます。これが...
インストールはbstをアプリケーションフォルダにドロップ。
+FTDI VCPドライバを別途入手してインストールします。
プロペラブMLにて参加者の方がドライバのインストールレポー...
ちなみに、OSは Mac OS X 10.6.8 snow Lepard です。
FTDI USB-シリアル変換ドライバを入れてみまたらプログラム...
入手元
http://www.ftdichip.com/Drivers/VCP.htm
以下、私が試した手順です。
1.MacOSX (32bit) 2.2.16 を選択。
→ダウンロードされるファイル:FTDIUSBSerialDriver_v2_2_16...
2.ダウンロードされたFTDIUSBSerialDriver_v2_2_16.dmgをダ...
→イメージがマウント?されるのでFTDIUSBSerialDriver_10_4_...
をダブルクリック。
※ディレクトリ内にはFTDIUSBSerialDriver_10_3というファイ...
3.インストーラの指示に従ってインストール
4.再起動の必要無し。
→bsからプログラムがロードできました。(ひゃっは〜)
*5.簡単なプログラムを作成してみましょう [#p56bbe6b]
さて、ここまでで開発環境が起動できて、クイックスタートボ...
では、実際にプログラムを作れてボードにプログラムをロード...
**プロペラ用プログラミング言語「Spin」 [#ee6c2a51]
プロペラに標準で用意されているプログラミング言語として、...
コンパイラ型の言語なので、入力→コンパイル→ボードにロード...
**Spin言語で書いたプログラムを入力してみましょう [#i48a6a...
サンプルとして、LEDがナイトライダーのアレ(ネタ古くてごめ...
'LED Demo
'
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
VAR
byte LED
PUB LedDemo
dira[16..23] := %1111_1111
repeat
repeat LED from 16 to 23
outa[LED] := 1
waitcnt(clkfreq/4 + cnt)
outa[LED] := 0
repeat LED from 23 to 16
outa[LED] := 1
waitcnt(clkfreq/4 + cnt)
outa[LED] := 0
段下げ(インデント)は大事です。
Pythonを使ったことがある人は、Pythonと同じくインデントで...
とにかく、''スペースの1つもそっくり同じく''、開発ツールの...
各開発環境の起動直後はこのようになってます:
-公式開発環境 Propellar Toolの場合
&ref(proptool_start.JPG,,50%);(画像クリックで拡大)
-Brad's Spin Tool(BST)の場合
&ref(bst_start.JPG,,50%);(画像クリックで拡大)
見かけが割と違いますが、今の段階では無視してて問題ないで...
特に、左側に表示されているファイル一覧やディレクトリツリ...
これの、右側の一番広いとこにさっきのプログラムを入力して...
単に動作を体験するだけですし、コピペでオッケーです。
**クイックスタートボードにロードして実行してみましょう [#...
サンプルプログラムができましたので、いよいよクイックスタ...
使ってる開発環境が公式Propellar ToolかBSTかで、GUIが少々...
以下、それぞれの場合について解説をしていきます。
***公式開発環境 Propellar Toolの場合 [#le2665fa]
まず、プログラムが以下のように入力されています・・・よね?
&ref(make_prog_.JPG,,50%);(画像クリックで拡大)
これをコンパイルして、クイックスタートボードへ突っ込みま...
メニューバーから、[Run]-[Compile Current]-[Load RAM]、と...
&ref(exe1_menu1.JPG,,50%);(画像クリックで拡大)
&ref(exe2_menu2.JPG,,50%);(画像クリックで拡大)
&ref(exe3_menu3.JPG,,50%);(画像クリックで拡大)
コンパイルが行われ、チェック・ロード・ベリファイが続けて...
&ref(exe4_chk.JPG,,50%);(画像クリックで拡大)
&ref(exe5_verify.JPG,,50%);(画像クリックで拡大)
何事もなく「Verifying RAM」のウィンドウが消えたら、何事も...
&ref(exe6_compiled.JPG,,50%);(画像クリックで拡大)
そしてクイックスタートボードを見ると!
LEDが左右にピコピコ光ったり消えたりしてますよね?ね?
&ref(LEDexec.jpg,,50%);(画像クリックで拡大)
***Brad's Spin Tool(BST)の場合 [#sd60d411]
BSTでは、GUIが公式環境と違うので、少々戸惑うかもしれませ...
さて、プログラムを入力して、このような状態になってると思...
・・・なってますよね?
&ref(bst1_make_prog.JPG,,50%);(画像クリックで拡大)
メニューバーから[Compile]-[Compile and Load Ram]、と辿っ...
&ref(bst2_menu1.JPG,,50%);(画像クリックで拡大)
&ref(bst3_menu2.JPG,,50%);(画像クリックで拡大)
すると、コンパイル進行表示がでて、そのあとRAMに書き込んだ...
&ref(bst4_trans.JPG,,50%);(画像クリックで拡大)
&ref(bst5_verify.JPG,,50%);(画像クリックで拡大)
そして進行表示が消えたらボードを見てみましょう。
どうでしょうか?LEDがピコピコしてますか?
&ref(LEDexec.jpg,,50%);(画像クリックで拡大)
**うまくできましたでしょうか? [#p0ad85ca]
さて、LEDを光らせることができました?
うまく光ったようでしたら、おめでとうございます。Spinプロ...
ではこのあとは、Spinプログラミングにちょっと踏み込んでみ...
*6. Spin言語入門 [#l7a756cf]
さっきのLEDチカチカプログラムは、まあそんなに長いプログラ...
簡単で短いですが、さっきのプログラムに含まれていた命令だ...
ということで、ここでは、ちょっと踏み込んだプログラムを見...
**POVを作ろう [#eaeaa07c]
POVってご存知でしょうか?
POVとは、残像を利用して一列のLEDで文字が見えるようにする...
・・・と、これだけではよく分からないと思いますので、http:...
どんなものかすぐに分かると思います。
**POVのコード [#n80b2c19]
以下のプログラムを入力し、QuickStartボードにロードします。
そして手でボードを持って左右に振ると、PropellerのROMにあ...
&ref(pa0_0002.jpg);
CON
_clkmode = xtal1 + pll16x
_xinfreq = 5_000_000
{{
OBJ
debug : "FullDuplexSerial"
}}
VAR
byte LED_data[48]
long Stack[10]
PUB main | t, dT, char, next_char, odd, col, col_data, t...
waitcnt(clkfreq*3 + cnt)
' debug.start(31,30,0,57600)
' debug.tx(0)
cognew(Drive_LED(@LED_data), @Stack)
t := cnt
dT := clkfreq/10
char := $7f94
repeat
char += $80
if char > $c000
char := $8014
next_char := char
repeat odd from 0 to 1 ...
' debug.hex(char,4)
' debug.tx(13)
repeat row from 0 to 10 ...
if row < 8
' debug.str(string("column data"))
' debug.tx(13)
repeat col from 0 to 7 ...
tmp_char := col * 12 + char ...
col_data := long[tmp_char] ...
' debug.hex(col_data,8)
' debug.tx(13)
row_data <<= 1
row_data += getRow(col_data,odd,row)
' debug.tx(13) ...
else
row_data := $0
waitcnt(t += dT)
' debug.bin(row_data,8)
' debug.tx(13)
repeat n from 0 to 46
LED_data[n] := LED_data[n+1]
LED_data[47] := row_data
' debug.bin(LED_data[47],8)
' debug.tx(13)
char := next_char
PRI getRow(col_data,odd,row): bit | x
if odd == 1
x := lookupz(row:$20, $200, $800, $8000, $80000, $8...
else
x := lookupz(row:$10, $100, $400, $4000, $40000, $4...
if x & col_data
bit := 1
else
bit := 0
PRI Drive_LED(addr) | index
dira[16..23]~~
repeat
repeat index from 0 to 47
outa[16..23] := byte[addr][index]
waitcnt(clkfreq/1000 + cnt)
では解説。
***コメント [#k3e5b893]
コードの中で{{ }}で囲まれた複数行、' に続く文字列はコメ...
***サブルーチン [#o392d770]
Spin言語でも他の大抵の言語と同じく、サブルーチンが定義で...
Spin言語では、ソースファイルを1つのオブジェクトとして、他...
PRI getRowでは横16bitの中の任意のbitの8bitを取り出すよう...
PRI Drive_LEDはLED_dataというデータバッファをただLEDに出...
PRI getRow(col_data,odd,row): bit | x のcol_data,odd,row...
CONで設定する定数はこのコード内で使うグローバル変数です。
***サブルーチンのスコープ指定 [#l69d0114]
サブルーチンですが、そのファイル内でのみ呼び出せるサブル...
サブルーチン定義のとき、名前の前にPUBをつけると、他のファ...
PRIをつけると、他のコードがこれをオブジェクトとして使う場...
***そのほか [#x2f47ab1]
ここではコメントにしていますがOBJブロックで通信プログラム...
フォントは$8000から$BFFFまでにあり、1文字横16bit縦32bitで...
mainで奇数キャラクタの横1ライン(1LONG)をロードして奇数bit...
ページ名: