豊四季タイニーBASICにSLEEPコマンドを追加する試作
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
2019/10/22 追記
ブランチ版をメインストリーム(V007) にマージして正式版として公開しました。※ブランチは削除しました。
メインストリーム(仕様確定版) https://github.com/Tamakichi/ttbasic_MW25616L
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
豊四季タイニーBASIC for Arduino機能拡張版(+ VFD MW25616L対応)に
SLEEPコマンド(スリープ機能)を追加しているのですが、意味不明の挙動でハマってしまい、
10日間も停滞して悩んでいました。
本日やっと、解決しました。
Arduino・パソコン間のシリアル通信を確立したまま、スリープ状態に入り、再度起き上がると
シリアル通信が不安定になり、コンソール画面での対話が利用不能になっていました。
対策として、スリープに入る前にシリアル通信を終了し、起き上がるときに再接続をするようにしました。
Serial.end();
[スリープ処理]
Serial.begin(SERIALBAUD);
これで、スリープから起き上がった後に問題無く、通信が出来るようになりました。
試作段階ですが、次のリストは外部割込み処理を行うBASIC言語での記述例です。
サンプルプログラム
|
1 '外部割込みによるスリープ抜け |
サンプルプログラムでは、60行のSleepコマンドでスリープ状態(パワーセーブ)となります。
ピン番号2にボタンを付け、外部割込みを発生させます(30行で定義、40行で有効化)。
実行した画面
プログラムを実行すると60行でスリープ状態となり停止します。
その状態でボタンを押すと、130行の割り込み処理(実際は何もしていない)を実行後、
70行からプログラム実行を再開します。
前回実装したタイマー割り込み機能でもスリープから抜けて欲しいところですが、
利用したTimer1ではスリープから抜けることは出来ません。
Timer2なら可能なので、変更して対応したいと思います。
2019/08/14 追記
タイマー割り込みの実装をTimer1からTimer2に変更するため、
ArduinoではメジャーなMsTimer2ライブラリを利用に修正しました。
確かにTimer2では、SLEEPから抜けることが出来るのですが
1ミリ秒でSLEEPから抜けてしまいました。
原因を調べるためMsTimer2ライブラリのソースを見てみると、
内部的には1ミリ秒毎に割り込みを行い、カウントして
指定した時間(ミリ秒)毎に登録した関数を呼び出すようになっていました。
MsTimer2は使えないことが判明しました。
タイマー割り込みで、SLEEP抜けをするのは諦め、
ウオッチドックタイマを使った、SLEEP抜けを検討します。
« Maker Fare Tokyo 2019に行ってきました | トップページ | たまちゃんを保護して10年になりました »
「日記・コラム・つぶやき」カテゴリの記事
- 明けましておめでとうございます(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)
« Maker Fare Tokyo 2019に行ってきました | トップページ | たまちゃんを保護して10年になりました »

コメント