Sto cercando astrazioni C ++ per punti o pin I / O hardware. Cose come in_pin, out_pin, inout_pin, forse open_collector_pin, ecc.
Sicuramente posso inventare un tale insieme di astrazioni me stesso, quindi non sto cercando risposte tipo "hey, potresti farlo in questo modo", ma piuttosto "guarda questa libreria che è stata usata in questo e questo e questo progetto'.
Google non ha mostrato nulla, forse perché non so come gli altri lo chiamerebbero.
Il mio obiettivo è quello di costruire librerie I / O che si basano su tali punti, ma che forniscano anche tali punti, quindi sarebbe facile per esempio collegare un LCd HD44780 ai pin IO del chip, o un I2C (o SPI) Extender I / O o qualsiasi altro punto che può in qualche modo essere controllato, senza alcuna modifica alla classe LCD.
So che questo è ai margini dell'elettronica / del software, scusate se non appartiene qui.
@leon: cablaggio Questa è una grande borsa di software, dovrò guardare più da vicino. Ma sembra che non usino un'astrazione di spilli come voglio. Per esempio nell'implementazione della tastiera vedo
digitalWrite(columnPins[c], LOW); // Activate the current column.
Ciò implica che esiste una funzione (digitalWrite) che sa come scrivere su un pin I / O. Ciò rende impossibile aggiungere un nuovo tipo di pin I / O (ad esempio uno che si trova su un MCP23017, quindi deve essere scritto tramite I2C) senza riscrivere la funzione digitalWrite.
@Oli: ho cercato su Google un esempio di Arduino IO, ma sembra che utilizzi lo stesso approccio della libreria Wiring:
int ledPin = 13; // LED connected to digital pin 13
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}