こないだからもやもや考えていた、オレオレG-LCD、OLED
のライブラリを、SRAM消費量を減らすために、グラフィック
描画の領域を狭められるようにしつつ、残りの領域は
文字やビットマップデータだけをダイレクトに書けるって
いう感じにしたいなと。
今途中まで考えてる、USBパワー制御シールドの表示部分
にOLED使いたいんだけど、SRAM消費減らしたりしたいのと、
でも文字とかビットマップだけは普通に表示したいなと。
0×0(SRAMをVRAM領域として消費しない)~128×64(1KB)
の範囲で、好きなサイズ、好きな場所にグラフィック領域
を確保して、そのグラフィック領域だけは文字もドット描画
(pset、preset、line表示)も自由にできつつ、それ以外の
領域は「常に背景(VRAM領域に既に表示されているモノ)
が無地」と仮定して表示が行われるようにしたいなぁと。
そしたら、利便性は今まで通りで、SRAM消費をアプリの内容
に合わせて自由に変えられるよなぁと。
というわけで、なんとなく手書きメモを書き始めて、
既存のオレオレライブラリを、どんなふうにいじったらいい
のかとか、そもそもの仕様をどんなふうにしたらいいのか
とか、その辺をもやもや考えているところ。
グラフィック領域は、基本的には開始位置(左上)終了位置
(右下)ともドット単位で自由に決められるようにしたいな
と思っているとこ。
左上はオフセット位置の調整だけでいいので、あまり難しい
ことは無いんだけど、右下については特にY座標はVRAM自体が
8ドット単位で割り当たっているので、はみ出多分をちゃんと
処理するのか(しないとゴミが表示されることになる)が
悩ましいんだけど、対応したらしたでちょっと処理が遅く
なってしまう。
まぁ、オフセット位置の調整とかもろもろあって、どうしても
多少は遅くなるんだけど、一番遅い(時間がかかる)処理は
G-LCD・OLEDへの転送なので、そんなに気にする必要はない
とは思うんだけどな。
あと、ライブラリの処理ロジックや、すでに使っている変数を
どういう風にいじったらいいのかとか、SPI I/Fモジュール用
のピンアサイン(現在はライブラリ内で固定的に定義してて、
変えるためには一旦#undefしてから改めて#defineする必要)
があるんだけど、そんな風にするのがホントにいいのかが
ちょっと微妙。
そもそも、SPI版のライブラリは、最初digitalWrite関数使って
アクセスしてたんだけど、遅すぎたのでポートを直接叩く
ように変更したんだよな。
で、その際にすべてのピンをPORT Bに集約しちゃったので、
他のポートを使うためには、defineをやり直すだけじゃなく、
ロジック自体も少しいじる必要があったりして、そもそもが
ちょっと面倒なんだよな。
あまりその辺はあまり深堀りしたくない…
あと、現在は、VRAMサイズ固定なので、ライブラリ内で
固定のSRAM確保(配列定義)しているんだけど、プログラム
起動後に好きなサイズでVRAMの多きさを設定できるように
するってなると、malloc使うか、c++みたいにnew演算子で
確保することになるんだけど、現状ロジックがC言語風味
なのに、new演算子で割り当てるのとか、微妙に違和感
あったりするし、でもmalloc使うのもちょっと嫌いだし、
できれば、一通り完成後に公開して、だれかがc++用に
改造してくれることを期待していたりするので、それも
含めてnew演算子で強行したいなぁとか思って居たり
するところ。
さらには、このオレオレライブラリ、mbed用にも移植して
あったりするんだけど、その辺のi/fの共通化とかも考えると、
どこまで手を入れたりするのがいいのかなぁ?なんてこと
をモヤモヤと…
Mega328みたいな、2kBのメモリでなんとかやりくりしないと
いけないマイコンの場合と、それなりにSRAMが大きいmbed
では、制約が全然違うので、同じレベルで考えること自体が
ちょっとアレなんだけど、i/fはそろえておきたいとか思って
いるんだよなぁ…
関数オーバーロード使って、変数の指定の仕方を複数扱える
ようにしておいて、デフォルトでは128×64ドットに。
必要に応じてもっと小さいサイズにも出来る、みたいに
しておおけば、基本的なi/fは一緒にできるのかな。うん。
最初から、C++のライブラリとして作ってしまえば、いくつか
の悩みは消えるんだろうけど、オイラ、宗教的理由でC++で
オブジェクト指向プログラミングするの嫌いなんだよな。
まぁ、なんにしても色々悩ましい。
https://www.youtube.com/watch?v=20GZ9Jad5Po
ニワトリ、やっぱかわいいな。
https://www.youtube.com/watch?v=U5Cr1_jv5-E
明日はペルセウス座流星群のライブやるんだな。20:00
から22:00。
たしかあいりんとあやちのライブなんだよな。
見たいけどあとからだな。
https://eleshop.jp/shop/g/gK87311
おぉ、ALL ABOUT namco、共立エレショップでも出てた。
まぁ、オイラはBEEPで予約しちゃったけど。
ふと、Aliexで2つほど注文。
https://ja.aliexpress.com/item/1908286744.html
一つは、金属プローブの温度計。中には多分熱電対が
入ってて、-50~+300度まで計れるやつ。
プローブが折りたためるヤツが欲しかったんだけど、
ちょっと高いので、こっちをチョイス。
https://ja.aliexpress.com/item/4000077260346.html
もう一つは、5Vから3.3Vに降圧するための絶縁型DC/DC
コンバータを買おうと思って、こないだの5V→5Vのやつの
姉妹品を買ったつもりだったんだけど、間違えて3.3V
→5Vのを買っちゃってた…失敗したな。正しくは、B0503S-1W
だったなぁ。追加で買いなおそうかな…
まぁ、何に使うかといえば、5V電源から7V以上の電圧を一旦
生成してから、5Vレギュレータで安定化させたいってだけ
なんだけどな。なので、当面はこないだ買った5V to 5Vの
やつで十分ではあるんだけど。
あと、この手のDC/DCコンバータって、ちょっとどこかで
見かけたんだけど、やっぱり非安定化電源みたいだな。
単純に、コイルの1次側2次側の巻き数によって、電圧を
変換しているだけっぽいなぁ。
https://twitter.com/ReutersJapan/status/1293030378349801473
モーリシャスの燃料流出事故。想像以上に深刻みたいだな。
クリティカルシンキング。日本の教育に足りていないって
ことなんだろうな。
https://twitter.com/tmaita77/status/1290543640859705344
https://twitter.com/leonassan_edu/status/1286122778022645761
https://twitter.com/tmaita77/status/1290417828122644480
日本語では「批判的思考」なんだけど、小学校から「この時の
主人公の気持ちを以下の4つから選べ」なんて問題解かされて、
空気を読む訓練ばかり積まされてきた日本人にとって、「批判」
って言葉がそもそも「タブー視」されているんじゃないのかな
という気がするんだよな。
クリティカルシンキングを、「批判的思考」以外の言葉には
出来ないのかな?
https://twitter.com/i/events/1293027206944309248
#FreeAgnes
周庭さん、逮捕後に開放されたみたいなんだけど、日本
のメディアはこのあたりの件、あまり大きく扱ってない
みたいなんだよな。また例によって上から圧力がかかって
いるの?
https://twitter.com/i/events/1292829855222861824
解放されたとはいえ、
>「国家分裂罪」と「政権転覆罪」の最高刑罰は無期懲役
ってことだから、今後どうなるかなんて正直こわい近未来
が垣間見えている感じなんだよな。
中国の政治体制に阿っている場合じゃないと思うんだけど、
この件といい、GoToといい、お金最優先(特に自分と
オトモダチのお金)の人たちからみたら、中国と喧嘩する
なんて、選択肢に絶対挙がらないんだろうなぁ。
https://mainichi.jp/articles/20200811/k00/00m/030/215000c
「重大な懸念」って、なによ? 人権がかかってるんだけどな。
|
|
|
|
|
|