
前回、TinyGoのオブジェクトをラズパイPicoに書き込むのに「まどろっこしい」方法を書いてしまいました。そしたらば「takasago様」からツイッターで「もっといい方法」お教えいただきました。ありがとうございます。やってみました。良い感じです。今回はついでにVSCodeも使えるように。細かい躓きはいつもあり。
デバイス作る人>>デバイス使う人>>デバイスおたく
別シリーズでGo言語を勉強したりしているのですが、インタプリットもでき、バイナリにビルドもできでなかなか良いものです。マイクロコントローラでもGoのオブジェクトを走らせられるということで今回やってみましたです。ターゲットはラズパイPico。その母艦は例によってラズパイ4です。C/C++SDKと同様で実行可能。
前回PWMで生成したクロックで十分かな~と思ってしまったので、もう一度似たようなことをやるのはカッタるいです。でも自分でPIO(プログラマブルIO)でもクロック作ってみると書いてしまったのでやらないと。大分ラズパイPicoのPIOにも慣れたんですが、PIOアセンブラでたった2行。けれどヘッダ部分書くのがメンドイのよね。
今回は前々回のBlendモード再びです。その上、Datasheetのサンプルプログラムほぼほぼそのままです。何といっても中の人の書いたサンプルプログラム流石すぎます。Blendモードで補間をするついでにデータ配列を舐めるためのポインタアドレスまで作ってました。私のような凡人には考えつかないテクであります。
ラズパイPicoのinterpユニットを使ってみる4回目は、Clampモードです。前回Blendモードを使ってみましたが、これは各コアに2個づつあるinterpのうち「0」のみの機能でした。じゃ「1」の方は何かないの?というとClampモードを持っているのです。上下の境界を超える値を「クランプ」してくれる機能です。
前回は3線式シリアルE2PROM S93C46をソフトウエア制御で読み書きしてみました。今回は、ラズパイPicoの特長であるPIO(Programmable IO)を使って同じことを行ってみます。PIOステートマシンのアセンブラを書くのも大分慣れた気もしますが、最後は波形を見ないと安心できないんだ,、これが。
以前にもシリアルEEPROMをラズパイPicoに接続したことがありましたがI2C接続でMicroPython利用でした。今回は「3線式」EEPROM、結構昔からあるタイプ、をC/C++SDKで接続してみます。「その1」はソフトウエア制御であります。簡単だろ~と思っていたら、お約束の落とし穴にハマりました。新年そうそう。
前回、ラズパイPicoのプログラマブルIO制御で、74HC595の2個並列と2個直列、同じ回で両方やってみようとしたら、まさかの半田不良で手間取りました。結局「並列」の方のみ実施。今回は、残りの直列接続の方をやってみます。形は出来ているので、今度こそ簡単に出来る筈。
前回はラズパイPicoのPIO(プログラマブルIO)ステートマシンを使って単体の74HC595を制御しました。今回は2個同時制御、直列接続と並列接続を1回で済ませようとしてツボにハマりました。2個目が動かないデス。なんで?並列接続にて問題追及、動作OKとなりました。ソフトバグの裏に半田付け不良が隠れていた。何ってこったい!
前回は、定番の74HC595シフトレジスタをフルソフト制御で扱ってみました。今回はラズパイPicoの特徴であるPIO(プログラマブルIO)を使って制御してみます。既にMicroPythonからPIOによる74HC595の制御はやってみているので、PIOアセンブラはPythonコードからの移植、という感じ。 “Pico三昧(2) Pico C/C++ SDKで74HC595接続、PIO制御編単品” の続きを読む