ハードウェアI / OポイントまたはピンのC ++抽象化を探しています。in_pin、out_pin、inout_pin、open_collector_pinなどのようなもの。
私はきっとこのような抽象化のセットを自分で思いつくことができるので、私は「ねえ、あなたはこのようにするかもしれない」タイプの答えを探しているのではなく、「これとこれで使用されているこのライブラリを見て、このプロジェクト」。
他の人がこれをどのように呼ぶのかわからないので、Googleは何も表示しませんでした。
私の目的は、そのようなポイントに基づいているが、そのようなポイントも提供するI / Oライブラリを構築することです。そのため、たとえば、HD44780 LCdをチップのIOピンまたはI2C(またはSPI)のいずれかに簡単に接続できますI / Oエクステンダー、またはLCDクラスを変更せずに、何らかの方法で制御できるその他のポイント。
私はこれが電子機器/ソフトウェアの端にあることを知っています、それがここに属さない場合は申し訳ありません。
@leon:配線それはソフトウェアの大きな袋です。詳しく見る必要があります。しかし、彼らは私が望むようにピンの抽象化を使用していないようです。たとえば、キーパッドの実装では
digitalWrite(columnPins[c], LOW); // Activate the current column.
これは、I / Oピンへの書き込み方法を知っている関数(digitalWrite)が1つあることを意味します。これにより、digitalWrite関数を書き換えずに、新しいタイプのI / Oピン(たとえば、MCP23017上にあるため、I2Cを介して書き込む必要がある)を追加できなくなります。
@Oli:Arduino IOの例をグーグルで検索しましたが、Wiringライブラリとほぼ同じアプローチを使用しているようです:
int ledPin = 13; // LED connected to digital pin 13
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}