ฉันกำลังมองหา abstractions C ++ สำหรับจุดหรือพิน I / O ของฮาร์ดแวร์ สิ่งต่างๆเช่น in_pin, out_pin, inout_pin, open_collector_pin เป็นต้น
แน่นอนว่าฉันสามารถสร้างชุด abstractions ของตัวเองขึ้นมาได้ดังนั้นฉันจึงไม่ได้มองหาคำตอบประเภท 'เฮ้คุณอาจทำแบบนี้' แต่ตอบว่า 'ดูที่ห้องสมุดนี้ซึ่งถูกใช้ในสิ่งนี้และสิ่งนี้และ โครงการนี้'.
Google ไม่ได้ทำอะไรเลยอาจเป็นเพราะฉันไม่รู้ว่าคนอื่นจะเรียกสิ่งนี้อย่างไร
จุดประสงค์ของฉันคือการสร้างไลบรารี I / O ที่ยึดตามจุดดังกล่าว แต่ยังให้คะแนนเช่นนั้นดังนั้นจึงง่ายต่อการเชื่อมต่อ HD44780 LCd กับทั้ง IO IO ของชิปหรือ I2C (หรือ SPI) ตัวขยาย I / O หรือจุดอื่นใดที่สามารถควบคุมได้โดยไม่ต้องเปลี่ยนคลาส LCD
ฉันรู้ว่านี่อยู่บนขอบของอิเล็กทรอนิกส์ / ซอฟต์แวร์ขออภัยถ้ามันไม่ได้อยู่ที่นี่
@ leon: การเดินสายนั่นเป็นซอฟต์แวร์ถุงใหญ่ฉันจะต้องดูให้ดี แต่ดูเหมือนว่าพวกเขาไม่ได้ใช้สิ่งที่เป็นนามธรรมเช่นฉันต้องการ เช่นในการใช้แผงปุ่มกดฉันเห็น
digitalWrite(columnPins[c], LOW); // Activate the current column.
นี่หมายความว่ามีหนึ่งฟังก์ชั่น (digitalWrite) ที่รู้วิธีเขียนไปยังพิน I / O สิ่งนี้ทำให้เป็นไปไม่ได้ที่จะเพิ่มพิน I / O ชนิดใหม่ (ตัวอย่างเช่นอันที่อยู่ใน MCP23017 ดังนั้นจึงต้องเขียนผ่าน I2C) โดยไม่ต้องเขียนฟังก์ชั่น digitalWrite ใหม่
@Oli: ฉันได้ทดลองใช้ Arduino IO แต่ดูเหมือนว่าจะใช้วิธีการเดียวกันกับห้องสมุด Wiring:
int ledPin = 13; // LED connected to digital pin 13
void setup(){
pinMode(ledPin, OUTPUT); // sets the digital pin as output
}