フォト
2019年11月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
無料ブログはココログ

« 食いしん坊たま吉さん(猫)の図 | トップページ | 豊四季タイニーBASIC for Arduino機能拡張版のラインエディタについて »

2019年8月26日 (月)

豊四季タイニーBASIC Arduino機能拡張版 V0.07 ほぼ完成

豊四季タイニーBASIC for Arduino機能拡張版(+ VFD MW25616L対応)の次バージョンV0.07、
ほぼ修正を完了し、以降はテストとマニュアル類の整備作業に入ります。
作業が終わり次第、メインストリームにマージします。

Tamakichi/ttbasic_MW25616L
   ブランチ(随時更新) https://github.com/Tamakichi/ttbasic_MW25616L/tree/update_to_v007

   2019/10/22 追記
   ブランチ版をメインストリーム(V007) にマージして正式版として公開しました。※ブランチは削除しました。
   メインストリーム(仕様確定版)   https://github.com/Tamakichi/ttbasic_MW25616L

主な変更点
1)GPIO入出力の簡略化
  ・OUT、IN()等のコマンド・関数で事前ピンモード設定を不要にしました
  ・LEDコマンド、LED定数の追加

2)イベント処理・SLEEP機能の追加
  ・タイマー割り込み機能の追加
  ・外部ピン割り込み機能の追加
  ・ボードをスリーブ状態(停止状態)にする機能の追加

3)NeoPixel(WS2812B)対応
  ・リボン・テープ形状、リンク形状の直線タイプの制御
  ・8x8ドットマトリックス形状の制御(メッセージ表示、描画処理)

4)8x8ドット 美咲フォント(シフトJIS 全角500字:英数記号・カタカナ・ひらがな・漢字)対応
  ・指定文字フォントデータの取得

5)中間コードの固定
  ・従来は、ttconfig.hの機能利用オプション設定を変更すると中間コードの値が変わってしまい、
     保存していたプログラムが動作しない問題が発生しましたが、それを解消しました。
   
6)キーワードの変更
  ・可読性を考え、英数字は大文字・小文字を混ぜた表記に変更
  ・下記のキーワード名称の変更
     POUT => PWM、INPUT_FL=>FLOAT、INPUT_PU=>PULLUP


とりあず、新機能でLEDをSLEEP機能を使って点滅させるサンプルです。

サンプルプログラム

10 Print "LEDのピン番号は、";LED ;"です。"
20 Print "LEDを5回点滅させます。"
30 For I=1 To 5
40 LED On
50 Sleep 500
60 LED Off
70 Sleep 500
80 Next

40行、60行のLEDコマンドでボード上のLEDをオン・オフしています。
50行、70行はSleep 500ではなく、Wait 500でも同様の点滅を行いますが、
Sleepの場合、ボードが休止するため省電力化を図ることが出来ます(多分)。
ちなみに、SLEEPはウオッチドックタイマを使っています。

実行の様子
01_20190820151201

汎用的なGPIO出力コマンドのOUT命令を使った場合は次のようになります。
旧バージョンでは、OUT命令を使う前に、GPIOコマンドでピンモードの設定が必要でしたが、
指定不要にしました。ちなみにLED定数は13の値を持っています。

OUT命令を使ったサンプルプログラム

10 Print "LEDのピン番号は、";LED ;"です。"
20 Print "LEDを5回点滅させます。"
30 For I=1 To 5
40 OUT LED,On
50 Sleep 500
60 OUT LED,Off
70 Sleep 500
80 Next

とりあえず、今後はドキュメント類を整備していきます。

« 食いしん坊たま吉さん(猫)の図 | トップページ | 豊四季タイニーBASIC for Arduino機能拡張版のラインエディタについて »

日記・コラム・つぶやき」カテゴリの記事

arduino」カテゴリの記事

TinyBASIC」カテゴリの記事

コメント

いつも利用させていただき、有難うございます。DIポートのHレベルでの自動起動ですが、コマンドにて起動できるようには可能でしょうか?

Arduino 1.8.9でnanoに旧ブートローダーで、スケッチはデホルトのままコンパイルしたのですが、下記のエラーが発生します。

★最大2048バイトのRAMのうち、グローバル変数が1818バイト(88%)を使っていて、ローカル変数で230バイト使うことができます。
スケッチが大きすぎます。

こんにちはです。ご利用ありがとうございます。
お問い合わせ内容の回答です。

■ 自動起動について
>DIポートのHレベルでの自動起動ですが、コマンドにて起動できるようには可能でしょうか?

コマンドにて、自動起動を有効・無効化したいとということでしょうか?
Arduino STM32版では出来るのですが、Arduino Uno版では出来ないです。
自動起動については下記のとおりです。

自動起動条件(添付マニュアルより抜粋)
・電源ONまたはリセット時にNo7ピン がHIGH(5V)の場合、プログラム番号No.0を自動起動します。
・No.7ピンはスケッチの修正により、別のピンに変更することが可能です。

■ nanoでのエラーについて
nanoはArduino Unoより古いバージョンのArduino Duemilanoveのベースです。
ブートローダが大きく、2kバイトも占有します。unoでは0.5kバイトです。
利用出来るスケッチサイズ領域は1.5kバイトとほど少ないです。
そのため、「スケッチサイズが大きすぎ」のエラーが発生したと思われます。

対策として、
1)nanoにArduino uno用のブートローダOpibootを書き込む(nonoのArduino uno化)
2)豊四季タイニーBASIC Arduino機能拡張版のttconfig.hの機能利用オプション設定で
利用頻度の少ない機能を無効化してスケッチサイズを小さくする
例: #define USE_CMD_PLAY 1 => #define USE_CMD_PLAY 0 を修正してコンパイル

2)の対策を試して見て下さい。

参考記事
・中華製Arduino NanoのArduino Uno化を行う
http://nuneno.cocolog-nifty.com/blog/2018/03/arduino-nanoard.html

回答をありがとうございます。
1.自動起動不可
了解しました。
2.nanoでのコンパイルエラー
2)の対策を行い書き込みOKです。

コメントを書く

(ウェブ上には掲載しません)

« 食いしん坊たま吉さん(猫)の図 | トップページ | 豊四季タイニーBASIC for Arduino機能拡張版のラインエディタについて »