Имя устройства, как массив

Narum
Offline
Зарегистрирован: 03.06.2019

Доброго времени. Нужен ваш совет.

Делаю проект с внешней еепром. По проекту еепром должно быть 2 штуки.
Использую библиотеку 
I2C_eeprom

В чем суть проблемы: 
Есть большой блок в цикле loop, который одинаковый для еепром №1 и №2
Цикл for так и напрашивается сам собой, но столкнулся со следующей проблемой - как корректно задать имя устройства?

Если копипастить (код упрощен): 

#include <Wire.h> 
#include <I2C_eeprom.h>
I2C_eeprom myEEPROM_1 (0x50, 0x256);  // имя устройства (адрес, количество байт в плате)
I2C_eeprom myEEPROM_2 (0x50, 0x256);

setup()
{
// настраиваем пины и прочее
pinMode(A1, INPUT);
}

loop()
{
// кусок кода
myEEPROM_1.writeByte(1, analogRead(A1));
myEEPROM_2.writeByte(1, analogRead(A1));
}

Подскажите, пожалуйста, как можно выразить имя устройств (myEEPROM_1, myEEPROM_2) через массив, чтобы в будущем можно было использовать цикл for? 

Спасибо

З.Ы. Уже какой день пытаюсь решить проблему

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Ну твой код вообще нормально работать не должен, поскольку адреса для обоих EEPROM одинаковые.

А через массив можно так:

 

I2C_eeprom *myEEPRarray[2];

void setup()
{
    myEEPRarray[0] = new I2C_eeprom(0x50, 0x256);
    myEEPRarray[1] = new I2C_eeprom(0x51, 0x256);
    
    pinMode(A1, INPUT);
}

void loop()
{

   myEEPRarray[0]->writeByte(1, analogRead(A1));
   myEEPRarray[1]->writeByte(1, analogRead(A1));
}

 

Кстати не уверен, что 0x256 это правильно. Перепроверь размер.

Narum
Offline
Зарегистрирован: 03.06.2019

asam пишет:

Ну твой код вообще нормально работать не должен, поскольку адреса для обоих EEPROM одинаковые.

Спасибо большое. Опробую. 
Да, я увидел ошибку в адресе, но слишком поздно. А кнопку "редактировать" не нашел ((

Подскажите, а стрелка (->) что означает? 
Хотелось бы более детально об этом погуглить-почитать. 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Narum пишет:

Подскажите, а стрелка (->) что означает?
Хотелось бы более детально об этом погуглить-почитать. 

https://www.google.com/search?q=си+оператор+стрелка