Ich möchte die Adafruit_FRAM_I2C nicht mit dem eingebauten
Hardware-I2C-Interface am Arduino (A4/A5) verwenden, sondern mit einer
SoftwareI2C "SoftWire".
Die Softwire-Lib funktioniert, weil ein I2C-Scanner damit die
unterschiedlichsten Sensoren an den richtigen Adressen erkennt, das
soweit als Anfangstest.
Nun möchte ich ein FRAM schreiben und lesen und dazu oben genannte Lib
verwenden. Din der Lib selbst ist die begin-Methode so definiert:
1 | /*!
|
2 | * @brief Sets up the hardware and initializes I2C
|
3 | * @param addr
|
4 | * The I2C address to be used.
|
5 | * @param theWire
|
6 | * The Wire object to be used for I2C connections.
|
7 | * @return True if initialization was successful, otherwise false.
|
8 | */
|
9 | bool Adafruit_FRAM_I2C::begin(uint8_t addr, TwoWire *theWire)
|
10 | {
|
11 | Adafruit_EEPROM_I2C::begin(addr, theWire);
|
12 | i2c_dev2 = new Adafruit_I2CDevice(MB85RC_SECONDARY_ADDRESS, theWire);
|
13 | if (!i2c_dev2->begin()) {
|
14 | return false;
|
15 | } ...
|
Nun habe ich die verschiedensten Varianten von diesem hier probiert:
1 | SoftWire sw(fram_sda, fram_scl); //die Pins für Softwire
|
2 | Adafruit_FRAM_I2C fram = Adafruit_FRAM_I2C();
|
3 |
|
4 | void setup(void)
|
5 | {
|
6 | if (fram.begin(0x50, sw)) //<----- diese Zeile
|
7 | if (fram.begin(0x50, *sw)) //<----- diese Zeile
|
8 | {
|
9 | Serial.println("Found I2C FRAM");
|
10 | } else
|
11 | { ...
|
Error: error: no matching function for call to
'Adafruit_FRAM_I2C::begin(int, SoftWire&)'
Wie muss es richtig aussehen? Danke.