GoにいればGoに従え(5) micro:bitのA, Bキーを割り込み受けね。

IntHandlerEC
Joseph Halfmoon

前回はTinyGoでも使えるgoroutineを使ってmicro:bit(v1.5)のLED点灯ルーチンを並行処理化。メインループでは点灯処理のことを「忘れておける」ようになりました。今回はmicro:bitの表面にある2つのキーを割り込みで処理してみます。Aキーを押されたらバッテン、Bキーを押されたらマルを表示っと。 “GoにいればGoに従え(5) micro:bitのA, Bキーを割り込み受けね。” の続きを読む

MicroPython的午睡(91) STM32F401RE、UART(USART)の続き

UART6_EC
Joseph Halfmoon

前回、Nucleo-F401REボード用のMicroPythonでUARTを使ってみたのですが、釈然としない部分がありました。今回はその落穂ひろいです。前回疑問だったUART1が使えない理由は、MicroPythonのソースレベルで原因部分は判明。ソースを改変して再ビルドしたらば動くのかなあ?どうなんだろう。

“MicroPython的午睡(91) STM32F401RE、UART(USART)の続き” の続きを読む

IoT何をいまさら(113) SAMD21版XiaoにmicroSDカード接続

Joseph Halfmoon

秋月電子殿から部品を仕入れたので、その「消化」に取り組み中。今回はmicroSDカード・スロットをDIP化する基板にピンをハンダしたので動作確認。テストに使用するのは前回から大分間が空きましたがSeeduino Xiao (SAMD21版)です。Arduino使えるのでお楽。テストするのにソフト書く必要もないのだから。
“IoT何をいまさら(113) SAMD21版XiaoにmicroSDカード接続” の続きを読む

GoにいればGoに従え(4) micro:bitのLED、goroutineで動的駆動じゃ

GoRoutineDUT
Joseph Halfmoon

前回TinyGoを使って mico:bit(v1.5)のLEDに所望のパターンを光らせることができました。しかしダイナミック駆動のためにプログラムが回り続けています。光らせるだけ。これでは何もできませぬ。しかしTinyGoの御本を読んだので知っています。goroutineを使えばLED駆動関数を並行処理できるっと。
“GoにいればGoに従え(4) micro:bitのLED、goroutineで動的駆動じゃ” の続きを読む

GoにいればGoに従え(3) micro:bitのLED、ダイナミック駆動じゃね

DispX
Joseph Halfmoon

前回TinyGoを使って BBC micro:bit(v1.5)のボード表面のLEDの所望の場所を点灯できるようになりました。今回は5x5の配列を使ってXというかバッテンというかを表示させようと思います。その前に表示関数の行数が長くてうるさいので別ファイルに追い出したいのだけれど、どうする?(Goする?)

“GoにいればGoに従え(3) micro:bitのLED、ダイナミック駆動じゃね” の続きを読む

MicroPython的午睡(89) STM32版、I2C接続EEPROM読み書きテスト

NucleoF401RE_24LC64_DUT
Joseph Halfmoon

前回SPI接続のSRAMの読み書きテストをしてみたので、今回はI2C接続のEEPROMの読み書きテストです。こちらも以前Raspberry Pi Picoボードで実験済のコードをSTM32版MicroPython上にもってきています。やっぱりボード毎の違いはあるので、小幅な修正は必要。ほぼほぼ前回と以下同文ぞなもし。 “MicroPython的午睡(89) STM32版、I2C接続EEPROM読み書きテスト” の続きを読む

GoにいればGoに従え(2) 再びmicro:bit v1.5のLED配列に謀られる

CoverSheet
Joseph Halfmoon

昨晩、アイキャッチ画像の御本「基礎から学ぶ TinyGoの組込み開発」を購入させていただきました(AmazonのKindle形式電子書籍版ですけど。)これを読めば立派にTinyGo書ける人になること必定?しかし、すみません、まだ読んでません。今回はダメダメなまま前回心に引っかかっていた問題に再突入。

“GoにいればGoに従え(2) 再びmicro:bit v1.5のLED配列に謀られる” の続きを読む

MicroPython的午睡(88) STM32版、SPI接続のSRAM読み書きテスト

STM32SPISRAM_BB_DUT
Joseph Halfmoon

前回までにTimerは何とか制御できそうな気がしてきたので、今回からインタフェース回路に進みます。最初はSPIです。シリアルだけれどもそこそこ高速な転送速度を使えるインタフェースです。STM32版のMicroPythonの場合、ソフトウエア的には2系統のモジュールでSPIにアクセスできます。別に同じハードなんだけれども。 “MicroPython的午睡(88) STM32版、SPI接続のSRAM読み書きテスト” の続きを読む

GoにいればGoに従え(1) TinyGoの復活というか再インストール

MicroBitTinyGoAgainB
Joseph Halfmoon

昨年の前半、年に一つくらいは「新言語習得」ということでGo言語を練習してました。その回数30回以上とな。しかし老人の忘却力には抗えませぬ。現在は元の木阿弥状態。記憶を復活させるべくGoの処理系、とくにマイコン用にオブジェクトコードを生成できるTinyGoの復活というか再インストールに取り組みましたです。 “GoにいればGoに従え(1) TinyGoの復活というか再インストール” の続きを読む

MicroPython的午睡(87) STM32版、入力キャプチャ割り込み受けで出力コンペア

ICOCintDiff1000
Joseph Halfmoon

前回Timer1の入力キャプチャを割り込み受け。速度的な制約のあるMicroPythonでも割り込みを使えば、ハードの制御はかなりできるじゃないかと思います。今回は、前々回やった出力コンペアの設定を入力キャプチャ割り込みで制御してみたいと思います。割り込みハンドラでハードを制御できるのでメインは別な仕事をできると。
“MicroPython的午睡(87) STM32版、入力キャプチャ割り込み受けで出力コンペア” の続きを読む

MicroPython的午睡(86) STM32版、タイマ・チャネル、割り込み受け TIPS

IntrErrorEC
Joseph Halfmoon

前々回前回とTimer1のチャネル機能、入力キャプチャと出力コンペアを使ってみました。しかし、入力キャプチャのタイミングを割り込み受けしておらずポーリング。そこで今回はチャネルからの割り込みをハンドリングしてみたいと思います。ま、ね、MicroPythonの割り込みハンドラの書き方を調べとけ、ということだったですが。
“MicroPython的午睡(86) STM32版、タイマ・チャネル、割り込み受け TIPS” の続きを読む

MicroPython的午睡(85) STM32版、入力キャプチャから出力コンペア

OutputCompare
Joseph Halfmoon

前回はインプットキャプチャ機能を使用してみました。インプットキャプチャ機能と対にして使われるのがアウトプットコンペア機能です。STM32版のMicroPythonでは両機能が併用可能です。外部で発生するイベントを検出し、イベントから一定時間後に何かの制御を行うということをハードウエアの正確なタイミングで行えます。 “MicroPython的午睡(85) STM32版、入力キャプチャから出力コンペア” の続きを読む

モダンOSのお砂場(61) Keil Studio Cloudへの自動変換、赤でもビルドでき

Nucleo_rtos_training00_EC
Joseph Halfmoon

年末で閉鎖のArm Online Compilerの移行方法の1番手はKeil Studio Cloudへの自動COPYです。COPY成功しても古いAPIを使っていると新しいAPIで動作しているKeil Studio CloudのIDE上はエラーが出る件(けれどビルド可能)、一番ボロボロだったケース、ご参考まで。
“モダンOSのお砂場(61) Keil Studio Cloudへの自動変換、赤でもビルドでき” の続きを読む

MicroPython的午睡(84) STM32版、Timer1入力キャプチャで周波数測定

Timer1IC_DUT
Joseph Halfmoon

MicroPythonの場合、タイマのPWM出力機能をサポートしている処理系は多いですが、タイマの外部入力機能をサポートしている処理系は少ないように思います。しかしSTM32用の処理系の場合、入力機能もいくらかサポートされています。今回は入力キャプチャ機能を使って外部から与える信号の周波数を測ってみたいと思います。 “MicroPython的午睡(84) STM32版、Timer1入力キャプチャで周波数測定” の続きを読む