Lispと一緒(36) ラズパイPico2でもuLisp、TRNG、真性乱数の生成

read_trng
Joseph Halfmoon

Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はregister関数を練習。メモリマップされた周辺回路のレジスタども(メモリでも)を読み書きできる関数でした。これがあれば何でもできそ~。今回はラズパイPico2(RP2350)特有の周辺、TRNGを使って真性乱数をゲットだぜ。

“Lispと一緒(36) ラズパイPico2でもuLisp、TRNG、真性乱数の生成” の続きを読む

Lispと一緒(35) ラズパイPico2でもuLisp、core識別情報、読み取り

register_example
Joseph Halfmoon

Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。ここ数回でSPIやらI2Cやらの先に接続された「メモリ」を読み書き。しかしuLispは恐ろしいことにCPUコアから見えるメモリ空間を直接読み書きする方法も提供してくれてます。関数名からするとペリフェラルの制御レジスタへのアクセス用です。 “Lispと一緒(35) ラズパイPico2でもuLisp、core識別情報、読み取り” の続きを読む

Lispと一緒(34) ラズパイPico2でもuLisp、I2Cメモリ読み書き

I2CmemRW_BB
Joseph Halfmoon

Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はI2CバスにSCANをかけ、接続したメモリが接続したつもりのアドレスに「居る」ことを確認できました。今回は実際にメモリにライトしてリードしてみます。リードのところの手順にちょっとテク?いるけれども、どおってことない。ホントか? “Lispと一緒(34) ラズパイPico2でもuLisp、I2Cメモリ読み書き” の続きを読む

Lispと一緒(33) ラズパイPico2でもuLisp、I2Cポートスキャン

I2CscanSchematic
Joseph Halfmoon

Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はSPIにメモリを接続しました。今回はI2Cバスにメモリを接続です。しかし読み書きの前にI2Cポート・スキャンからです。まあ、uLispの例題そのまま走らせるだけなんだけれども。一応、実機波形を確認。I2Cバス動いてますなあ。 “Lispと一緒(33) ラズパイPico2でもuLisp、I2Cポートスキャン” の続きを読む

Lispと一緒(32) ラズパイPico2でもuLisp、SPIメモリ読み書き

Pico2_23LC512_BB
Joseph Halfmoon

Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はSPIの出力波形を堪能。しかし波形を眺めているだけではSPIしたことになりませぬ。今回はSPI接続のSRAM、23LC512をターゲットにSPI経由での書き込みと読み出しを実験。uLispのコードもCのコードも変わらんぜよ。

“Lispと一緒(32) ラズパイPico2でもuLisp、SPIメモリ読み書き” の続きを読む

Lispと一緒(31) ラズパイPico2でもuLisp、SPI出力

DefaultSPI0waveformMODE2
Joseph Halfmoon

Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。先ごろからハードウエア制御に入いっとります。前回はPWM出力(関数名的にはanalogwrite)、今回はSPI出力を練習してみます。端子的にはキメウチだけれども、それなりに制御できるのでないかと。実機で波形を味わってみるの回です。
“Lispと一緒(31) ラズパイPico2でもuLisp、SPI出力” の続きを読む

Lispと一緒(30) ラズパイPico2でもuLisp、PWM出力

analogWrite_pin12_res12_2048
Joseph Halfmoon

Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はADコンバータ使って電圧を読み取るアナログ入力。今回は analogwrite。しかしPico2にはDAコンバータ不在。Arduino世界の通例によりPWM出力です。使えるAPIは2つだけ。それ以上やりたければ自分で制御せよと?

“Lispと一緒(30) ラズパイPico2でもuLisp、PWM出力” の続きを読む

Lispと一緒(29) ラズパイPico2でもuLisp、アナログ入力

analogRead_DUT_BB
Joseph Halfmoon

Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回からuLisp独特な領域、ハードウエア制御へ入りました。前回がデジタル入出力であったので、今回はアナログ入力です。ADコンバータ使って電圧の読み取りね。まあ全部が全部使えるわけでもないみたいだけれども。読み取りは出来るっと。

“Lispと一緒(29) ラズパイPico2でもuLisp、アナログ入力” の続きを読む

Lispと一緒(28) ラズパイPico2でもuLisp、GPIOの入出力確認

gpioTestDUT
Joseph Halfmoon

Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。ここまでCommon LispとuLispの重複部分でした。今回からはuLisp独特な領域、ハードウエア制御へ入ります。その1回目はGPIOとな。既に「吉例Lチカ」を過去回でやっているので復習か。でもほじくると出てくるのよ。なんだかな~。

“Lispと一緒(28) ラズパイPico2でもuLisp、GPIOの入出力確認” の続きを読む

Lispと一緒(27) ラズパイPico2でもuLisp、汎関数、funcall、apply

uLisp_funcallEC
Joseph Halfmoon

Common Lispの系譜を継ぐマイコン上のuLispをラズパイPico2上で練習中。ここまでCommon LispとuLispの重複部分を練習。同一挙動が大多数ですが、一部差異もあり。そろそろ本題のPico2ハードの制御、uLisp独特な部分に行きたいデス。でも今回は重複部分の「とりあえずの〆」ね。汎関数とな。

“Lispと一緒(27) ラズパイPico2でもuLisp、汎関数、funcall、apply” の続きを読む

Lispと一緒(26) ラズパイPico2でもuLisp、関数、変数の定義

defvarEC
Joseph Halfmoon

Common Lispの系譜を継ぐマイコン上のuLispをラズパイPico2上で練習中。これまでの練習中に既に何度となく使ってしまった関数の定義 defun と大域変数の定義 defvar です。しかし、改めて見てみると Common Lisp と uLisp の挙動にコマケー違いがあることに気づきました。知らないとツボる?

“Lispと一緒(26) ラズパイPico2でもuLisp、関数、変数の定義” の続きを読む

Lispと一緒(25) ラズパイPico2でもuLisp、map一族、健在

mapcar_maplistEC
Joseph Halfmoon

Common Lispの系譜を継ぐマイコン上のuLispをラズパイPico2上で練習中。前回はprog一族がprognのみを残してuLisp上では不在と判明。それではということで同じく大族map一族について見てみました。map一族はuLisp上でも健在。Common Lispでの動作と相違なく、バリバリ使えますぞ。

“Lispと一緒(25) ラズパイPico2でもuLisp、map一族、健在” の続きを読む

Lispと一緒(24) ラズパイPico2でもuLisp、「副作用」あっての者共

progEC
Joseph Halfmoon

Common Lispの系譜を継ぐマイコン上のuLispをラズパイPico2上で練習中。「副作用」、ピュアなLispじゃ「はしたない」操作にも思えます。しかしマイコンのハードウエアの操作は副作用の連続?胸を張って副作用を前提とした者共を練習しておきたいと思います。でもuLisp上に実装されているの意外と少ない?
“Lispと一緒(24) ラズパイPico2でもuLisp、「副作用」あっての者共” の続きを読む

Lispと一緒(23) ラズパイPico2でもuLisp、局所変数、letとdo一族

uLisp_let
Joseph Halfmoon

Common Lispの系譜を継ぐマイコン上のuLispをラズパイPico2上で練習中。このところCommon Lisp上とuLispで実装が違うものどもを調べてます。今回はローカル変数を利用するためのものども、let(Special Form)やdo(Macro)などの一族です。この辺は実装は違えど挙動は同じじゃ。
“Lispと一緒(23) ラズパイPico2でもuLisp、局所変数、letとdo一族” の続きを読む