Saya mencari abstraksi C ++ untuk perangkat keras I / O poin atau pin. Hal-hal seperti in_pin, out_pin, inout_pin, mungkin open_collector_pin, dll.
Saya pasti bisa membuat serangkaian abstraksi sendiri, jadi saya tidak mencari jenis jawaban 'hei, Anda bisa melakukannya dengan cara ini', tetapi 'lihat perpustakaan ini yang telah digunakan dalam ini dan ini dan proyek ini'.
Google tidak menemukan apa pun, mungkin karena saya tidak tahu bagaimana orang lain menyebutnya.
Tujuan saya adalah untuk membangun perpustakaan I / O yang didasarkan pada titik-titik tersebut, tetapi juga menyediakan titik-titik tersebut, sehingga akan mudah untuk misalnya menghubungkan HD44780 LCd ke pin IO chip, atau I2C (atau SPI) I / O extender, atau titik lain yang entah bagaimana dapat dikontrol, tanpa mengubah kelas LCD.
Saya tahu ini ada di tepi elektronik / perangkat lunak, maaf kalau bukan milik di sini.
@leon: wiring Itu adalah sekumpulan besar perangkat lunak, saya perlu melihat lebih dekat. Tapi sepertinya mereka tidak menggunakan pin abstraksi seperti yang saya inginkan. Misalnya dalam implementasi keypad saya lihat
digitalWrite(columnPins[c], LOW); // Activate the current column.
Ini menyiratkan bahwa ada satu fungsi (digitalWrite) yang tahu bagaimana menulis ke pin I / O. Ini membuatnya tidak mungkin untuk menambahkan tipe baru I / O pin (misalnya yang ada di MCP23017, jadi harus ditulis melalui I2C) tanpa menulis ulang fungsi digitalWrite.
@Oli: Saya mencari contoh Arduino IO di Google, tetapi tampaknya menggunakan pendekatan yang sama dengan pustaka Wiring:
int ledPin = 13; // LED connected to digital pin 13
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}