Donanım I / O noktaları veya pimleri için C ++ soyutlama arıyorum. İn_pin, out_pin, inout_pin, belki open_collector_pin vb.
Kesinlikle böyle bir soyutlama kümesi ortaya çıkarabilirim, bu yüzden 'hey, bu şekilde yapabilirsin' tür cevaplar aramıyorum, daha ziyade 'bu ve bu kitapta kullanılan bu kütüphaneye bakın ve bu proje'.
Google, başkalarının bunu nasıl arayacağını bilmediğim için bir şey açmadı.
Amacım bu noktalara dayanan ancak aynı zamanda bu noktaları sağlayan G / Ç kitaplıkları oluşturmaktır, bu nedenle örneğin bir HD44780 LCd'yi çipin IO pinlerine veya bir I2C'ye (veya SPI) bağlamak kolay olacaktır. LCD sınıfında herhangi bir değişiklik yapmadan G / Ç genişletici veya bir şekilde kontrol edilebilen başka herhangi bir nokta.
Bunun elektronik / yazılım kenarında olduğunu biliyorum, eğer buraya ait değilse üzgünüm.
@leon: kablolama Bu büyük bir yazılım çantası, daha yakından bakmam gerekecek. Ama öyle görünüyor ki benim istediğim gibi bir pin soyutlaması kullanmıyorlar. Örneğin tuş takımı uygulamasında görüyorum
digitalWrite(columnPins[c], LOW); // Activate the current column.
Bu, bir G / Ç pinine nasıl yazılacağını bilen bir işlev (digitalWrite) olduğunu gösterir. Bu, digitalWrite işlevini yeniden yazmadan yeni bir tür G / Ç pini (örneğin, MCP23017'de bulunan bir tane eklemeyi imkansız hale getirir).
@Oli: Bir Arduino IO örneğini araştırdım, ancak Wiring kütüphanesi ile aynı yaklaşımı kullanıyor gibi görünüyor:
int ledPin = 13; // LED connected to digital pin 13
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}