技術メモ#C/C++
背景と目的 Arduinoで、JSONを扱いたかったため、parsonというC言語ライブラリを使用した。使い方を自分用にメモする。 ランキング参加中DIY 使いそうなものを列挙 空の状態"{}"に、データを追加していき、シリアライズするまで、おおむね使いそうなものを列…
概要 Windows PC上で、libusbを使ったC言語プログラムをビルドして、動かした。 ランキング参加中DIY 背景と目的 Windows PC上で、libusbを使いたいので、方法をメモる。 詳細 参考 https://www.javadrive.jp/cstart/install/index6.html https://sites.goog…
Arudinoで、RAMの残りを求める関数として、以下のサイトにavailableMemoryというものが紹介されている。 https://playground.arduino.cc/Code/AvailableMemory/ これは、mallocの戻り値がNULLでなくなる=確保できるまで1バイトずつサイズを小さくして試すと…
概要 ESP32用micropythonで、micropython-ulabを組み込んだファームウェアを作成し、無事FFTを実行することができた。また、動作速度も、前回の自前実装FFTより数倍高速化できた。 背景と目的 前回、FFTを実行するためC実装の自作モジュールを組み込んだファ…
変数 定義、代入 変数名 = 〇〇〇 参照 $(変数名) 環境変数を使う Makefile内のマクロと同じ書き方でよい。ただし、Makefile内の同名変数が優先されるらしい。 表示 $(info $(変数名)) sudoつける/つけないの違いでハマらないように注意 sudoをつけると参照…
概要 ESP32用のMicroPythonで、FFTをする自作モジュールを作る。 背景と目的 前回、ESP32用のMicroPythonで、C実装の自作モジュールを作る環境が整った。今回は、この環境を使ってFFTをする自作モジュールを作る。なお、PythonでそのままFFTの計算をコーディ…
概要 ESP32向けのmicropythonで、Cで実装した自作モジュールを作成した。 背景と目的 かつて、micropythonをESP32で動かして遊んでみたのだが、それ以来ほとんど触っていなかった。しかし、最近とある事情でESP32向けのmicropythonで、Cで実装した自作モジュ…
まずやるべきこと config.logを見る(configureと同じディレクトリに出力されている) たいていは、何が起きているか理解はできると思われる。 解決方法 ライブラリの参照がうまくいっていない場合 /usr/bin/ld: cannot find -lxxx という感じのエラーがかかれ…
概要 pigpioのCライブラリを使ったC/C++プログラムをPythonから利用する方法をまとめた。 背景と目的 Raspberry Pi用のGPIO制御ライブラリであるpigpioは、C言語用とPython用のライブラリが用意されているが、都合によりC言語用のpigpioライブラリを使って作…
概要 C/C++のsleep系の関数のひとつnanosleepで、時間精度を上げる方法を検討し、改善できた。(だいたい10マイクロ秒以下) 背景と目的 Raspberry Piで、10マイクロ秒オーダーのsleepをしたかったのだが、C/C++のsleep系の関数のひとつnanosleepを使用したと…
概要 C/C++で、タイムアウトが設定できないブロッキング処理に、タイムアウトを追加した。 背景と目的 C/C++のあるライブラリで、タイムアウトが設定できないブロッキング処理があり、処理をキャンセルできずに困ったので、後付けでタイムアウトを実装する方…