Tôi đang tìm kiếm trừu tượng C ++ cho các điểm I / O phần cứng hoặc chân. Những thứ như in_pin, out_pin, inout_pin, có thể là open_collector_pin, v.v.
Tôi chắc chắn có thể tự mình đưa ra một bộ trừu tượng như vậy, vì vậy tôi không tìm kiếm 'này, bạn có thể làm theo cách này', mà là 'nhìn vào thư viện đã được sử dụng trong này và này dự án này'.
Google không bật lên bất cứ điều gì, có lẽ vì tôi không biết người khác sẽ gọi nó như thế nào.
Mục đích của tôi là xây dựng các thư viện I / O dựa trên các điểm như vậy, nhưng cũng cung cấp các điểm như vậy, vì vậy có thể dễ dàng kết nối HD44780 LCd với các chân IO của chip hoặc I2C (hoặc SPI) Bộ mở rộng I / O hoặc bất kỳ điểm nào khác có thể được kiểm soát bằng cách nào đó mà không có bất kỳ thay đổi nào đối với lớp LCD.
Tôi biết điều này nằm ở cạnh điện tử / phần mềm, xin lỗi nếu nó không thuộc về nơi này.
@leon: hệ thống dây điện Đó là một túi phần mềm lớn, tôi sẽ cần nhìn gần hơn. Nhưng có vẻ như họ không sử dụng trừu tượng pin như tôi muốn. Ví dụ trong việc thực hiện bàn phím tôi thấy
digitalWrite(columnPins[c], LOW); // Activate the current column.
Điều này ngụ ý rằng có một chức năng (digitalWrite) biết cách ghi vào chân I / O. Điều này làm cho không thể thêm một loại pin I / O mới (ví dụ như pin trên MCP23017, do đó nó phải được ghi qua I2C) mà không cần viết lại hàm digitalWrite.
@Oli: Tôi đã lấy một ví dụ về Arduino IO, nhưng dường như sử dụng cách tiếp cận tương tự như thư viện Wires:
int ledPin = 13; // LED connected to digital pin 13
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}