「STM32/e-BASiC」の編集履歴(バックアップ)一覧はこちら
「STM32/e-BASiC」(2010/05/02 (日) 21:42:22) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*e-BASiC
(準備中)
汎用入出力やタイマー、COM ポート、アナログ入力にラベルを付けて、ラベルの組合せで簡単にハードを制御しちゃおうといった意図のインタプリタ言語です。
Design Wave Magazine 2008年5月号の付録基板(CQ-STARM)で動作します。
**文法
----
***入出力ポート [PORT]
- ポートは A ~ E まであり、次のように指定します。
#html2(){<pre><strong><tt>GPIOA ~ GPIOE</tt></strong></pre>}
- 数字でも指定できます。
#html2(){<pre><strong><tt>PORT0 ~ PORT4</tt></strong></pre>}
----
***ピン番号 [PIN_NO]
- ピン番号は 0 ~ 15 まであり、次のように指定します。
#html2(){<pre><strong><tt>PIN0 ~ PIN15</tt></strong></pre>}
- ポートの後であれば数字のみでも指定できます。
#html2(){<pre><strong><tt>ポートAの5番ピン ⇒ GPIOA 5</tt></strong></pre>}
----
***ポート+ピン番号 [PIN_NAME]
- 次のように同時に指定もできます。
#html2(){<pre><strong><tt>ポート0の0番ピン ⇒ P0.0
ポートBの15番ピン ⇒ PB.15</tt></strong></pre>}
----
***入出力の指定 [IN|OUT]
----
***プルアップ/プルダウンの指定 [PULLUP|PULLDOWN]
----
***汎用入出力(GPIO)
#html2(){<pre><strong><tt>LABEL: [PORT] [PIN_NO] [IN|OUT] ([PULLUP|PULLDOWN])
LABEL: [PIN_NAME] [IN|OUT] ([PULLUP|PULLDOWN])</tt></strong></pre>}
- 例:デジタル出力ピンの定義
#html2(){<pre><strong><tt>LED1: GPIOC 6 OUT</tt></strong></pre>}
- 例:デジタル入力ピンの定義
#html2(){<pre><strong><tt>BTN1: PD.08 IN PULLUP</tt></strong></pre>}
----
***バス入出力(DATA)
#html2(){<pre><strong><tt>LABEL: DATA [PORT] [PIN_NO]...[PIN_NO] [IN|OUT] ([PULLUP/PULLDOWN])</tt></strong></pre>}
- 例: データ出力の定義
#html2(){<pre><strong><tt>SEG7: DATA GPIOD 0 1 2 3 4 5 6 7 OUT
SEG7: DATA GPIOD 0..7 OUT</tt></strong></pre>}
- 例: データ入力の定義
#html2(){<pre><strong><tt>DBUS: DATA GPIOD 0 1 2 3 IN PULLDOWN</tt></strong></pre>}
----
***アナログ入力(ANALOG)
----
***タイマー(TIMER)
----
***外部割り込み(EXTI)
----
***PWM(PWM)
----
***UART ポート入出力(UART)
#html2(){<pre><strong><tt>LABEL: UART [UART_NO] [UART_SPEED] (NUMBER)</tt></strong></pre>}
- &b(){UART_NO} ... UART ポート番号、0 の場合 PC との通信ポート
- &b(){UART_SPEED} ... 9600/19200/38400/57600/112000 等の数値を指定
- &b(){NUMBER} ... オプション
- 参照: 入力がない場合、-1 を返す
- 代入: UART ポートへ数値を出力 (下位 8bit が有効)
- 例:UART ポート 1 を 19200bps でオープン
#html2(){<pre><strong><tt>COM1: UART 1 19200</tt></strong></pre>}
**ピン配置
#image(stm32_pins.png)
*e-BASiC
(準備中)
汎用入出力やタイマー、COM ポート、アナログ入力にラベルを付けて、ラベルの組合せで簡単にハードを制御しちゃおうといった意図のインタプリタ言語です。
Design Wave Magazine 2008年5月号の付録基板(CQ-STARM)で動作します。
**文法
----
***入出力ポートの指定 [PORT]
- ポートは A ~ E まであり、次のように指定します。
#html2(){<pre><strong><tt>GPIOA ~ GPIOE</tt></strong></pre>}
***ピン番号の指定 [PIN_NO]
- ピン番号は 0 ~ 15 まであり、次のように指定します。
#html2(){<pre><strong><tt>PIN0 ~ PIN15</tt></strong></pre>}
- ポートの後であれば数字のみでも指定できます。
#html2(){<pre><strong><tt>ポートAの5番ピン ⇒ GPIOA 5</tt></strong></pre>}
***入力/出力の指定 [IN|OUT]
- ラベルで定義するピンが入力か出力かを指定します。
***プルアップ/プルダウンの指定 (PULLUP|PULLDOWN)
- ラベルを入力で定義したとき、プルアップさせるかプルダウンさせるかを指定します。
- どちらでもない場合、何も指定しません。
----
***汎用入出力(GPIO)
#html2(){<pre><strong><tt>LABEL: [PORT] [PIN_NO] [IN|OUT] (PULLUP|PULLDOWN)</tt></strong></pre>}
- 参照: そのピンの状態が Low なら 0 を返し、High なら 1 を返します。
- 代入: そのピンの状態に 0(Low) か 1(High) を設定します。 (出力ピンのみ有効)
- 例:デジタル出力ピンの定義
#html2(){<pre><strong><tt>LED1: GPIOC PIN6 OUT</tt></strong></pre>}
- 例:デジタル入力ピン(プルアップ)の定義
#html2(){<pre><strong><tt>BTN1: GPIOD 8 IN PULLUP</tt></strong></pre>}
***バス入出力(DATA)
#html2(){<pre><strong><tt>LABEL: DATA [PORT] [PIN_NO]...[PIN_NO] [IN|OUT] (PULLUP/PULLDOWN)</tt></strong></pre>}
- ピン番号は下位から指定します。
- 参照: そのバスの状態を返します。
- 代入: そのバスの状態を設定します。
- 例: データ出力の定義
#html2(){<pre><strong><tt>SEG7: DATA GPIOD 0 1 2 3 4 5 6 7 OUT
SEG7: DATA GPIOD 0..7 OUT</tt></strong></pre>}
- 例: データ入力の定義
#html2(){<pre><strong><tt>DBUS: DATA GPIOD 0 1 2 3 IN PULLDOWN</tt></strong></pre>}
***アナログ入力(ANALOG)
***タイマー(TIMER)
***外部割り込み(EXTI)
***PWM(PWM)
***UART ポート入出力(UART)
#html2(){<pre><strong><tt>LABEL: UART [UART_NO] [UART_SPEED] (NUMBER)</tt></strong></pre>}
- &b(){UART_NO} ... UART ポート番号、0 の場合 PC との通信ポート
- &b(){UART_SPEED} ... 9600/19200/38400/57600/112000 等の数値を指定
- &b(){NUMBER} ... オプション
- 参照: 入力がない場合、-1 を返す
- 代入: UART ポートへ数値を出力 (下位 8bit が有効)
- 例:UART ポート 1 を 19200bps でオープン
#html2(){<pre><strong><tt>COM1: UART 1 19200</tt></strong></pre>}
----
***ループの定義(LOOP)
----
**コマンド
***ラベルの参照(PRINT)
#html2(){<pre><strong><tt>PRINT [LABEL]</tt></strong></pre>}
- LABEL で定義されているラベルの参照値を表示します。
***ループの実行(RUN)
#html2(){<pre><strong><tt>RUN [LABEL]
[LABEL] (ARG)</tt></strong></pre>}
- LABEL で定義されているループを実行します。
- RUN は省略できます。
- 引数を指定できます。
- 例:
#html2(){<pre><strong><tt>HEX 30</tt></strong></pre>}
----
**ピン配置
#image(stm32_pins.png)
表示オプション
横に並べて表示:
変化行の前後のみ表示: