GoにいればGoに従え(44) ラズパイPico、USB HIDデバイスその1

GreatingFromHIDa
Joseph Halfmoon

ラズパイPicoのTinyGoはUSBのデバイス側に対応。いつもUSBシリアルにはお世話になっておるので、別なクラスということでHIDキーボード・クラスを使ってみることにいたしました。キーボードそのものを作ろうというのではなく、別途データ転送にちょろまし使用の目論見。今回はPCへ文字を送信できるところを確認。
“GoにいればGoに従え(44) ラズパイPico、USB HIDデバイスその1” の続きを読む

GoにいればGoに従え(43) ラズパイPico、TIMERアラーム、一部は使われている?

ALARM0runs
Joseph Halfmoon

ラズパイPicoにTinyGoのオブジェクトを書き込んでラズパイPicoハードウエアをどう制御したものか手探りしてます。今回はTIMERにやってまいりました。TinyGoのmachineパッケージから直接TIMER使えないのだけれど、調べてみるとTIMERはしっかり使われている形跡があります。使っているのは誰ぞ?

“GoにいればGoに従え(43) ラズパイPico、TIMERアラーム、一部は使われている?” の続きを読む

GoにいればGoに従え(42) ラズパイPico、SSD1315接続、OLEDで表示

TinyGo_OLED_DUT
Joseph Halfmoon

別シリーズ記事で、Arduino Uno R4にOLEDを接続し表示ができました。小さくても自発光のディスプレイは見やすいです。そこでTinyGoの練習に使っているラズパイPicoでもOLED接続を試みてみることにいたしました。TinyGoで、ビルドした、書き込んだ、動いた、という感じっす。ホントか?

“GoにいればGoに従え(42) ラズパイPico、SSD1315接続、OLEDで表示” の続きを読む

GoにいればGoに従え(41) ラズパイPico、ArmのSystick使えるの?

Systick100kHz
Joseph Halfmoon

前回は周辺装置の割り込みの「元締め」NVICの動作状況を見てみました。しかしNVICを経由しないArmコア固有の例外、システム割り込みの中にSysTickというものも含まれているのです。プロセッサクロックで動作している高速なタイマです。今回はこいつが使えるのか否かを確かめてみます。 “GoにいればGoに従え(41) ラズパイPico、ArmのSystick使えるの?” の続きを読む

GoにいればGoに従え(40) ラズパイPicoの割り込み、その1、イネーブルなのは誰?

RPICO_INT_ENABLE
Joseph Halfmoon

前回はラズパイPicoのハードウエアの「もそっと下」のところをTinyGoから制御するためにハード固有のレジスタに直接アクセスしてみました。クロックとか電源とか最初に見ておきたい部分はいろいろあるのですが、今回は割り込みをみてみます。TinyGoのランタイムがデフォルトで割り込みイネーブルにしている周辺はあるのかしら。
“GoにいればGoに従え(40) ラズパイPicoの割り込み、その1、イネーブルなのは誰?” の続きを読む

GoにいればGoに従え(39) ラズパイPicoでもレジスタ直接アクセス。最初はCPUID

Rpico_Reg0
Joseph Halfmoon

TinyGo言語は、ハード依存性のあるMachineパッケージを使っていてもピン名を変更するくらいで別なマイコンへ移植可能なことが多くお楽。しかしディープに機種依存なハードを使うためにはハードウエアを直接操作しないとなりません。そんなときでもunsafeなポインタは「隠蔽」可能であります。今回はCPUID読み出し。

“GoにいればGoに従え(39) ラズパイPicoでもレジスタ直接アクセス。最初はCPUID” の続きを読む

GoにいればGoに従え(38) ラズパイPicoでソフトウエアタイミング制御の限界?

RpicoITVLEC
Joseph Halfmoon

ラズパイPicoでTinyGoをするのに「あたり前」そうなことを実地に確かめてます。前回はPWM出力でした。今回はソフトウエアによるタイミングの制御のレゾリューションというか、ジッタというかについて調べてみます。ハードウエアタイマを使って割り込みで制御するのが一番だけれども、ソフトでやれるならソフトでやるのがお楽。
“GoにいればGoに従え(38) ラズパイPicoでソフトウエアタイミング制御の限界?” の続きを読む

GoにいればGoに従え(37) ラズパイPicoのPWM、全スライス使ってみる

GoPWM_PicoDUT
Joseph Halfmoon

前回は久しぶりにラズパイPico上でTinyGoのオブジェクトを走らせて吉例Lチカ。今回はPWM出力を使ってみます。ラズパイPicoのGPIOの全端子にPWM出力が可能です。ただしPWM周期的には最大8通り、各周期に対して2種類のDutyサイクルを指定可能です。今回は周期を司る8個のスライスを全て使ってみます。 “GoにいればGoに従え(37) ラズパイPicoのPWM、全スライス使ってみる” の続きを読む

GoにいればGoに従え(36) 吉例Lチカ、WindowsからラズパイPicoでTinyGo

RpiPico_TinyGoBlink
Joseph Halfmoon

前回の件がキッカケでたまには練習台を変更するかと思い立ちました。以前にTinyGoのオブジェクトを走らせたことはあったものの、その後ご無沙汰のラズパイPicoに白羽の矢?が立ちました。ぶっちゃけ「遊休」状態だったから。吉例Lチカは簡単に動いたものの、環境を変えてみると気づくこともまたある、と。 “GoにいればGoに従え(36) 吉例Lチカ、WindowsからラズパイPicoでTinyGo” の続きを読む

GoにいればGoに従え(35) P8/P9が動かなかった理由は端子破損? TinyGo

TestInputDUT
Joseph Halfmoon

前回HC-SR04超音波センサを動かしたときに「v2であれば使える筈の P8とP9 を使おうとしましたがダメでした」と書きました。前回はP0とP1を使って動かしたのですが、P8とP9で動かない理由が不明だったので今回はその原因を追究してみます。まさかの端子破損?いつ壊しちまったのか。トホホ。

“GoにいればGoに従え(35) P8/P9が動かなかった理由は端子破損? TinyGo” の続きを読む

GoにいればGoに従え(34) DevicesでHCSR04センサを動かす、TinyGo

HCSR04_DUT
Joseph Halfmoon

このところ御本家Go言語の標準ライブラリを試用してましたが、今回はTinyGoユニークなものに復帰。TinyGoのライブラリ「Devices」は各種の周辺デバイスを接続するときに役立つライブラリです。以前に使ったときは簡単接続、便利便利という感じでした。でもね。ちょっとメンドイことがないわけでもないです。まずは電源ね。

“GoにいればGoに従え(34) DevicesでHCSR04センサを動かす、TinyGo” の続きを読む

GoにいればGoに従え(33) byte型とbytes.Buffer型、TinyGo

Byte_Bytes_EC
Joseph Halfmoon

前回はcomplex128型などを使ってしまいました。マイコンでも使えるということで心強いけど滅多に使わんのではないかと。一方、普段から一番お世話になりそうなのが byte型であります。そして「byte」に似たものに「bytes」という標準パッケージがあり、そこにはbytes.Buffer型が存在。どんなもんだか。

“GoにいればGoに従え(33) byte型とbytes.Buffer型、TinyGo” の続きを読む

GoにいればGoに従え(32) math/cmplxをTinyGoで使う、ムムム早合点?

complexResults
Joseph Halfmoon

前回のキャリーだの、ボローだのの世界はこの老人には慣れ親しんだ世界にて居心地が良かったです。しかし今回使ってみるのは math/cmplxパッケージです。浮動小数点数ですらちょっと敷居が高いのに、そいつらの上に君臨する複素数はできれば避けたいデス。そんなこと考えていたら挙動不審。ムムムこの挙動はどゆこと?早合点よ。

“GoにいればGoに従え(32) math/cmplxをTinyGoで使う、ムムム早合点?” の続きを読む

GoにいればGoに従え(31) math/bitsをTinyGoで使う、その2

bits2EC
Joseph Halfmoon

前回は、Goの標準ライブラリmath/bitsの中で、ビット・カウントとかローテイトとかバイナリ者には人気でも、一般ではあまり使われない操作を練習。今回はmath/bitsの残りを練習してみます。キャリー、ボロー付きの加減算、演算の前と後でビット幅が異なる乗算、除算です。アセンブラ書いていたら毎度お馴染みの者ども。
“GoにいればGoに従え(31) math/bitsをTinyGoで使う、その2” の続きを読む