Ich suche mir schon einen Wolf:
// PROGMEM 1490/ SRAM 188 ohne alles
#include <SPI.h> // macht nichts
#include <Wire.h> // 2680/301
void setup() {
Serial.begin(115200);
Serial.println(F("test"));
}
void loop() {
}
Wenn man die Wire.h included werden etwa 1200 Byte verbraucht bevor man überhaupt das erste Wire.begin() setzt.
Auf was ist das zurückzuführen?
Und dann habe ich noch eine Anschlussfrage:
Ich habe eine größere Library für I2C LCDs. Jetzt will eine Unterstützung für SPI Portexpander ergänzen.
Wenn ich nun von meiner (I2C) Basisklasse in eine "SPI" Klasse runtervererbe, nehme ich offenbar den ganzen Wire.h Overhead mit.
Wie schafft man den eine Aufteilung der Library in I2C und SPI, sodass wirklich nur entweder i2c oder SPI included wird? Nur mit zwei separaten #includes im Usersketch?
Und dann als Ausgangsbasis eine Basisklasse, die weder I2C noch SPI benötigt (im Anwendungsfall also eine LCD Klasse für direkten Pin-Anschluss oder noch besser eine dummy Klasse ohne Pins, I2C Adressen oder CS Pin?)