豊四季タイニー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」カテゴリの記事
- Freenove Mecanum ホイール カー キットを購入しました(2025.05.28)
- Arduino IDE+Arduino STM32環境で指定と異なるgccが使われてしまう(2025.01.23)
- Zorin OSでArduino Uno互換機(CH340)が認識しない(2025.01.19)
- Arduino IDE 2.3.4でArduino STM32を利用する(2025.01.12)
- Arduino用 SKK日本語変換ライブラリの開発 その1(2024.12.28)
「AVR」カテゴリの記事
- NeoPixel(WS2812B)の制御 その5(2024.09.15)
- Arduino用SJIS漢字フォントライブラリ SDカード版を作成しました(2018.10.30)
- ATtiny13AでI2C接続キャラクタLCDを利用する(4)(2018.04.16)
- ATtiny13Aで赤外線リモコン受信センサーを使う(2)(2018.04.15)
- ATtiny13AでHC-SR04を使った距離計測(2018.04.14)
「VFDモジュール」カテゴリの記事
- アクティブマトリクス蛍光表示管の実験用表示モジュールの試用 (3)(2018.08.06)
- アクティブマトリクス蛍光表示管の実験用表示モジュールver.2の動作確認(2018.07.28)
- 豊四季タイニーBASIC for Arduino機能拡張版 作成しました(2018.03.18)
- アクティブマトリクス蛍光表示管の実験用表示モジュールの試用 (2)(2018.02.15)
- アクティブマトリクス蛍光表示管の実験用表示モジュールの試用(2016.07.23)
コメント
« 中華製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分