豊四季タイニーBASIC Arduino機能拡張版の修正中(5) タイマー割り込み機能の追加
豊四季タイニーBASIC for Arduino機能拡張版(+ VFD MW25616L対応)の修正、
タイマー割り込み機能を追加しました。
・Tamakichi/ttbasic_MW25616L
ブランチ(随時更新) https://github.com/Tamakichi/ttbasic_MW25616L/tree/update_to_v007
2019/10/22 追記
ブランチ版をメインストリーム(V007) にマージして正式版として公開しました。※ブランチは削除しました。
メインストリーム(仕様確定版) https://github.com/Tamakichi/ttbasic_MW25616L
追加コマンド
■ タイマー割り込みの定義
ON TIMER 周期 GOTO | GOSUB 行番号|ラベル
周期はミリ秒単位 1 ~ 32767
■ タイマー割り込みのオン・オフ指定
TIMER ON | OFF
サンプルプログラム
|
10 ON TIMER 500 GOSUB "BLINK" |
サンプルプログラムでは、
10行で500ミリ秒毎に、"BLINK"ラベルのある40行のサブルーチンを呼び出すように定義しています。
20行は、LED用の13ピンを出力設定にし、TIMER ONでタイマー割り込みを開始しています。
30行は、"LOOP"ラベルの行、すなわち30行にジャンプです。ここ30行で無限ループを繰り返します。
40行~70行は、タイマー割り込みで呼び出される処理です。LEDを点滅させて、画面に"Blink!"を出力します。
実行時の出力
う~ん、
タイマー割り込みが出来れば、
「何か面白いことが出来るのでは?」と思い、組み込んだのですが
使い道が浮かびません。
まあ、イベント処理の実装はちょっと勉強になったので良しとします。
タイマー割り込みは、Timer1ライブラリを利用しました。
コンパイルにも別途、Timer1ライブラリが必要です。 (2019/07/16 本体に組み込みました)
タイマーイベントキューは最大1個としています。
呼び出される処理が、追いつかない場合はイベントは破棄されます。
ですので、呼び出される処理内でカウントして時刻を刻むような処理において、
イベントが破棄された場合は、カウント数がずれます。
回避策として、Windowsみたいに、多重のコマンドイベントが重なる場合は、
1つのイベントにまとめて回数情報を付加する等の処理等が考えられるのですが、
まあ、これで良しとします。
ピン変化イベントも追加する予定でしたが、どうしよう ...
« 4連8x8ドットLEDマトリックスを試してみる 続編(2) | トップページ | GitHub Gist掲載プログラムソースをココログに埋め込む »
「日記・コラム・つぶやき」カテゴリの記事
- 明けましておめでとうございます(2026.01.01)
- 2025年も本日で最後となりました(2025.12.31)
- ブラザー製 レザープリンター HL-L3240CDWを購入しました(2025.09.20)
- たまちゃん16歳になりました(2025.08.03)
- たまちゃんへの暑さ対策(2025.07.22)
「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)
「TinyBASIC」カテゴリの記事
- 豊四季Tiny Basic for micro:bit のマニュアルを更新しました(2020.11.21)
- 豊四季タイニーBASIC for Arduino 機能拡張版 V0.08の更新(2020.07.27)
- 豊四季タイニーBASIC for Arduino 機能拡張版 フルスクリーンエディタ対応(2020.02.20)
- IchigoJamのファームウェア 1.4.1が正式に公開されました(2019.12.10)
- TextsでWord文書をMarkdown形式に変換してみる(2019.11.16)
« 4連8x8ドットLEDマトリックスを試してみる 続編(2) | トップページ | GitHub Gist掲載プログラムソースをココログに埋め込む »

コメント