Je recherche des abstractions C ++ pour les points d'E / S matérielles ou les broches. Des choses comme in_pin, out_pin, inout_pin, peut-être open_collector_pin, etc.
Je peux sûrement trouver un tel ensemble d'abstractions moi-même, donc je ne cherche pas des réponses de type `` hé, vous pourriez le faire de cette façon '', mais plutôt le `` regardez cette bibliothèque qui a été utilisée dans ceci et cela et ce projet'.
Google n'a rien révélé, peut-être parce que je ne sais pas comment les autres appellent cela.
Mon objectif est de créer des bibliothèques d'E / S basées sur de tels points, mais également de fournir de tels points, il serait donc facile, par exemple, de connecter un LCd HD44780 aux broches IO de la puce ou à un I2C (ou SPI) Extenseur d'E / S, ou tout autre point qui peut être contrôlé d'une manière ou d'une autre, sans aucune modification de la classe LCD.
Je sais que c'est à la pointe de l'électronique / du logiciel, désolé s'il n'appartient pas ici.
@leon: câblage C'est un gros sac de logiciels, je vais devoir regarder de plus près. Mais il semble qu'ils n'utilisent pas une abstraction de broches comme je le souhaite. Par exemple, dans la mise en œuvre du clavier, je vois
digitalWrite(columnPins[c], LOW); // Activate the current column.
Cela implique qu'il existe une fonction (digitalWrite) qui sait écrire sur une broche d'E / S. Cela rend impossible l'ajout d'un nouveau type de broche d'E / S (par exemple, qui se trouve sur un MCP23017, il doit donc être écrit via I2C) sans réécrire la fonction digitalWrite.
@Oli: J'ai googlé un exemple Arduino IO, mais il semble utiliser à peu près la même approche que la bibliothèque de câblage:
int ledPin = 13; // LED connected to digital pin 13
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}