Отправка данных по i2c

Всем привет))) суть такая, в ардуино отправка по шине в стандартном виде идет по очереди, по крайней мере мне так обьясняли)))
пример

Wire.beginTransmission(ES90381);
  Wire.write(Mad_InSelect);
  Wire.write(InSelect);
  Wire.endTransmission();

А как быть если мне надо отправить например 10 значений, по одному это оч много писать, да и думаю есть способ отправить сразу все


вот например

Почитайте про циклы и массивы

1 лайк

Я советую забить на программирование, если 10 строк это очень много.

1 лайк

Что дает основания так думать? Вы изучили библиотеку Wire.h и увидели соответствующие методы? Или просто выдаете желаемое за действительное?

Напрасно думаете. Нет такого способа. Это последовательный интерфейс.

Если хотите меньше писать, пользуйтесь функциями.

В реальности отправляться по I2c они будут все одно по очереди, как уже сказали, интерфейс последовательный. А вот сделать так, чтобы не писать в коде 10 строк - можно, и очень многими способами.
Ключевой момент - правильно описать эти 10 значений в программе. Это должно быть не 10 отдельных переменных, а массив.

1 лайк

приколись

Я-то смотрел код. И соответствующий метод видел. Вопрос был к ТС :wink:

Ну 10 значений это было сказано для примера, в реале на фото их 5120!!! и если по одиночке их прописывать, то пару лет пройдет

Я так понял что решением является только использование массивов, Wire.write(имя массива, длина)

Не только.
Но массивы в данном случае - самый прямой метод.

1 лайк

А у wire.h буффер 32 байта всего. Так что всё равно пролет.
Так что второй урок программирования - говори про реал, а не про выдуманные примеры.

А кто что то выдумывает, это реальный пример с реальной программы!!! и оно работает без нареканий, у этого процессора это единственная шина для управления. Это пример инициализации аудиопроцессора, раз у них это работает, значит и тут что то должно быть чтото чтоб это работало не хуже, наверное должно быть. Я же не утверждаю))) а спрашиваю, как это можно реализовать, в оригинале используется фирменный программатор USBi, чип и дип сделали модули управления которые эмулируют этот программатор и подключаются к процу для управления им, и все хорошо кроме одного, из индикации только светодиоды, а хотелось бы дисплей какой то)))

Это ограничение именно у wire? или же это вообще ограничение по шине распрастраняющееся на всех и вся?

Находишь специалиста и платишь ему деньги. Никто тебе тут сто часов лекций расписывать не будет.

Так говори только за себя!!! :joy: :joy: :joy:

Простите СЭР если напрягаю!!! Я никого не заставляю читать лекции и что то расказывать, нет желания так и не надо отвечать!!! Это раздел для новичков, если я правильно понимаю создан как раз для того чтоб направить таких как я, кто только начал осваивать программирование, и тут такое заявление

Зачем тогда вообще форум нужен??? Я не спрашиваю готовое решение, а спрашиваю совет как это реализовать, что почитать на понятном языке можно на эту тему и тд и тп, блин из за вот таких заявлений вообще пропадает желание что то спрашивать!!!

Сказано было неоднократно - в любом случае придется отправлять по одному байту. Сам по себе за вас код не напишется

С I2C можно сказать - по одному биту …

Это если уж совсем в низы залезать ))

Вы решили поспорить? Мило!

А вот с таким вопросами поосторожнее, здесь за них посылают далеко и без возврата. Не Вам, зарегистрировавшемуся два дня назад, учить людей, которые здесь по 10 лет, зачем нужен их форум.

По тем вопросам, что Вы задаёте – любой (для особо непонятливых – “л ю б о й”, для совсем альтернативно-одарённых – “Л Ю Б О Й) учебник программирования на С/С++. Даже никак не связанный с Ардуино.

По сути Вам уже всё сказали, если бы Вы работали, а не спорили, уже бы сделали всё, что нужно.