豊四季タイニーBASIC for Arduino機能拡張版 作成しました
取り組んでした「豊四季タイニーBASIC for MW25616L実験用表示モジュール」の作成を
もう少し汎用化して、Arduino Uno用にしました。
MW25616L実験用表示モジュールの対応はオプション機能としました。
(ttconfig.hの機能選択を修正すること対応)
公開サイト
豊四季タイニーBASIC for Arduino機能拡張版(+ VFD MW25616L対応)
https://github.com/Tamakichi/ttbasic_MW25616L
このプログラムはTetsuya Suzuki氏の 豊四季タイニーBASICをベースにしています。
配布サイト https://github.com/vintagechips/ttbasic_arduino
オリジナル版からの主な機能強化
・プログラム領域を256バイトから1024に拡張
・プログラムのセーブ・ロードに対応(内部EEPROM、I2C EEPROM)
・スクリーン制御(LOCATE、COLOR、ATTR、CLS)
・全角文字対応(シフトJISコード)
・ラインエディタ機能強化(カーソル移動、指定行の内容表示等)
・2進数、16進数表記サポート(`10101111、$ABCD)
・演算子の追加(ビットシフト演算や論理積・和など)
・IF文でELSEが利用出来る
・GOTO、GOSUBでラベルが使える(GOTO "LOOP")
・GPIO対応(デジタル入出力、アナログ入力、PWM、I2C、SHIFTIN、SHIFTOUT、PULSEIN)
・プログラム編集コマンドの追加(RENUM、DELETE)
・リセット時プログラム自動起動対応
・I2C RTC DS3231対応(DATE、DETDATE、GETDATE、SETDATE)
雰囲気的には、次の動画のような感じです。
8チャンネルアナログ入力サンプルプログラム
ターミナル上でもちょっとした、動きのある表示も可能ですね。
性能評価
さて、8ビットマイコン AVRでのTiny BASIC、性能的にはどうなんでしょう?
下記の3万回ループ処理を32ビット ARMマイコン搭載のイチゴジャムと比較してみました。
10 ?TICK()
20 FOR A=1 TO 30000
30 V=V+1
40 NEXT A
50 ?V
60 ?TICK()
2.517秒
イチゴジャム36台分の処理を1台でこなせる性能です。
ラズパイ2版 よりも早い!
追記 2018/03/23
イチゴジャムをビデオ停止(VIDEO 0)した場合も測定してみました。
それでも約20倍の処理能力でした。
よりは劣ると思います。
訂正(上記消し線の部分) 2018/03/20
てっきりイチゴジャムは16MHzで稼働していると思っていたのですが、
48MHzで動作しているようです。
となると、16MHz Atmega328の3倍以上の処理能力があるはずでは..
豊四季タイニーBASIC for Arduinoは、ソース公開、分かり易さ重視です。
最悪100回以上比較処理を行う等、特にパフォーマンス重視の作りではないです。
それでもイチゴジャムの約36倍..
非常に謎です..
追記
PLAY文による演奏デモ
演奏データは、下記のサイトに公開されているのもを流用させて頂きました。
10 '猫ふんじゃった
20 PLAY "L16D+C+R8F+RF+RD+C+R8F+RF+RD+C+L8RF+RF+R"
30 PLAY "L16FRFRD+C+R8FRFRD+C+R8FRFRD+C+"
40 PLAY "L8RFRFRL16F+RF+RD+C+R8F+RF+RD+C+R8F+RF+RD+C+"
50 PLAY "L8RF+RF+RL16FRFRD+C+R8FRFRD+C+R8FR"
60 PLAY "L16FRD+C+L8RFRFRL16F+RF+RD+C+L8RF+RF+RF+RF+RF+RF+R"
70 PLAY "L16FRFRD+C+L8RFRFRFRFRFRFR"
80 PLAY "L16F+RF+RD+C+R8F+RF+RD+C+R8F+RF+RD+C+"
90 PLAY "L8RF+RF+RL16FRFRD+C+R8FRFRD+C+R8FRFRD+C+"
100 PLAY "L8RFRFRL16F+RF+R8.F+RC+C+D8C+8.FRF+"
« 中華製Arduino NanoのArduino Uno化を行う | トップページ | Arduino用スケッチのサブルーチンをサブディレクトリに配置する »
「arduino」カテゴリの記事
- Arduino IDEでATtiny13でのLED点滅アプリの作成(2014.01.26)
- ATtiny13AでI2C接続キャラクタLCDを利用する(4)(2018.04.16)
- ATtiny13Aで赤外線リモコン受信センサーを使う(2)(2018.04.15)
- ATtiny13AでHC-SR04を使った距離計測(2018.04.14)
- Arduino 1.8.5環境でATtiny13Aを利用する(2018.04.14)
「AVR」カテゴリの記事
- Arduino IDEでATtiny13でのLED点滅アプリの作成(2014.01.26)
- ATtiny13AでI2C接続キャラクタLCDを利用する(4)(2018.04.16)
- ATtiny13Aで赤外線リモコン受信センサーを使う(2)(2018.04.15)
- ATtiny13AでHC-SR04を使った距離計測(2018.04.14)
- Arduino 1.8.5環境でATtiny13Aを利用する(2018.04.14)
コメント
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/66509794
この記事へのトラックバック一覧です: 豊四季タイニーBASIC for Arduino機能拡張版 作成しました:
« 中華製Arduino NanoのArduino Uno化を行う | トップページ | Arduino用スケッチのサブルーチンをサブディレクトリに配置する »
こんばんは
Ichigojam が遅いのは、NTSC信号を作るのにパワーを食われている
ということはありませんか?
投稿: nochio | 2018年3月22日 (木) 23時02分
nochioさん
コメントありがとうございます。
イチゴジャムのビデオ出力停止時の処理時間を測定し、追記しました。
ビデオ出力を停止すると、83%パフォーマンスが向上しますね。
確かに、NTSC信号を作るのにパワー食われていますね。
それでも、16MHz 8ビットマイコンの1/20の性能でした。
同一クロック換算では、1/60となります。
LPC1114の本来の性能を全く出せていないのは確かのようです。
投稿: たま吉さん(管理者) | 2018年3月23日 (金) 09時38分
追試ありがとうございます。m(_ _)m
投稿: nochio | 2018年3月23日 (金) 19時32分