i2c между ардуино
-
- Рядовой
- Сообщения: 34
- Зарегистрирован: 10 сен 2015, 12:13
- Откуда: Москва
- Контактная информация:
i2c между ардуино
Всем привет!На днях попытался создать 2 пользовательских блока,один Master,другой Slave.Slave блок передаёт переменную integer в Master,но только до значения 255.Затем сбрасывается в 0.Может кто подскажет как исправить код?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- support
- Супермодератор
- Сообщения: 1917
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 23 раза
- Контактная информация:
i2c между ардуино
Функция Wire.write(data) умеет отправлять только один байт (байт - число от 0 до 255). ДЛя отправки Integer необходимо его разбить на два байта
и отправлять их по очереди. На принимающей стороне собрать обратно
ну и естественно надо подумать как всё это синхронизировать. Вообще я думаю есть смысл попробывать перенести логику модбас на I2C, он так неплохо вроде вписывается, но это попозже
Код: Выделить всё
byte hB = highByte(data );
byte lb = lowByte( data );
Код: Выделить всё
int data = word( lb,hb);
Автор программы FLProg.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя