У меня есть пять идентичных чипов с уникальным идентификатором DS2401, подключенных к Arduino, и я w sh для последовательного считывания серийного номера каждого из них в ОЗУ, чтобы я мог отправлять данные через последовательный порт.
У меня есть каждый из них инициализируется отдельно, так что я могу вызвать код для получения серийного номера с помощью ds24_0.getSerialNumber (), ds24_1.getSerialNumber () et c.
Если бы мне нужно было встроить их в для oop, как мне получить код для вызова ds24_i, где i - это номер итерации l oop? Я поступаю неправильно?
OneWire oneWire_0(10);
DS2401 ds24_0(&oneWire_0);
OneWire oneWire_1(A0);
DS2401 ds24_1(&oneWire_1);
OneWire oneWire_2(A1);
DS2401 ds24_2(&oneWire_2);
OneWire oneWire_3(A2);
DS2401 ds24_3(&oneWire_3);
OneWire oneWire_4(A3);
DS2401 ds24_4(&oneWire_4);
//snip
void idRequest()
{
uint8_t serialNumber[5][6];
uint8_t result[5];
result[0] = ds24_0.init(); //how do I loop this
result[1] = ds24_1.init();
result[2] = ds24_2.init();
result[3] = ds24_3.init();
result[4] = ds24_4.init();
if(result[0] == DS2401_SUCCESS)
{
ds24_0.getSerialNumber(serialNumber[0]); //how do I loop this also?
}
else if(result[0] == DS2401_CRC_FAIL || DS2401_NOT_DS2401 || DS2401_NO_WIRE)
{
for (uint8_t i = 0; i < 6; i++)
{
serialNumber[0][i] = 0;
}
}
//assemble packet here
}
Спасибо!