私はarduinoプロジェクトに取り組んでおり、多くの入出力が必要です。現在の設定では、それぞれが3ビットの16ビットを有する5つのマルチプレクサを有する。問題は、デフォルトライブラリが1つのマルチプレクサのみをサポートしていることです。これは、ライブラリーで使用される変数_shiftReg
が、1つだけに適用されるのではなく、5つのマルチプレクサすべてで共有されるためです。複数のマルチプレクサを使用する場合のArduinoメモリの問題
ライブラリーのヘッダーファイルに_shiftReg
変数を追加して複数のマルチプレクサをサポートするようにライブラリを変更しようとしました。これは問題を解決しましたが、新しい問題が発生する場所でもあります。
ほぼすべての入力と出力を制御するトグルがあります。私はそれぞれの入出力のマルチプレクサをトグルして制御しなければなりません。しかし、これは私が追加するトグルごとに大量にメモリ使用量を増加させます。私はマルチプレクサオブジェクトが単に参照として渡されるのではなくコピーされているからだと思います。私はJavaの作成に慣れており、C++がこれらの処理方法を知らない。あまりメモリを使わないように変数を渡す方法を変更する必要がありますか?それとも、これらの問題の原因となっているのでしょうか?
私はここにすべてのコードを貼り付けるとあまり読みにくくないので、私はGitHub repoを見やすくするようにしました。
こんにちは、応答ありがとうございます。あなたのソリューションは素晴らしいですが、shiftReg配列はまだmuxshieldオブジェクト間で共有されていると思います。これが可能だと思いますか? – Jochim
MuxShieldの各インスタンスが独自のセットを取得するように、それらが静的でない場合にのみ、それはそうではありません。午前中に何が起きているのかさらに見ていきます。 –