i2c между ардуино

Ответить
dee-vize
Рядовой
Сообщения: 34
Зарегистрирован: 10 сен 2015, 12:13
Откуда: Москва
Контактная информация:

i2c между ардуино

Сообщение dee-vize »

Всем привет!На днях попытался создать 2 пользовательских блока,один Master,другой Slave.Slave блок передаёт переменную integer в Master,но только до значения 255.Затем сбрасывается в 0.Может кто подскажет как исправить код?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
support
Супермодератор
Сообщения: 1917
Зарегистрирован: 03 янв 2018, 11:45
Откуда: Астрахань
Имя: Сергей
Поблагодарили: 23 раза
Контактная информация:

i2c между ардуино

Сообщение support »

Функция  Wire.write(data)  умеет отправлять только один байт (байт - число от 0 до 255). ДЛя отправки Integer необходимо его разбить на два байта
 
 

Код: Выделить всё

byte hB = highByte(data );
 byte lb = lowByte( data );
и отправлять их по очереди. На принимающей стороне собрать обратно

Код: Выделить всё

int data = word( lb,hb);
ну и естественно надо подумать как всё это синхронизировать. Вообще я думаю есть смысл попробывать перенести логику модбас на I2C, он так неплохо вроде вписывается, но это попозже
Автор программы FLProg.
dee-vize
Рядовой
Сообщения: 34
Зарегистрирован: 10 сен 2015, 12:13
Откуда: Москва
Контактная информация:

i2c между ардуино

Сообщение dee-vize »

Спасибо!Попробую переделать.
Аватара пользователя
Kocтик
Рядовой
Сообщения: 75
Зарегистрирован: 07 сен 2015, 23:51

i2c между ардуино

Сообщение Kocтик »

Я, делал так.
Ответить

Вернуться в «Другие»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя