не получается сконнектить две Uno по rs485

acckyiboxxx
Offline
Зарегистрирован: 14.03.2016

Моя конечная задача запихнуть MODBUS в ардуинку, он работает поверх rs485, поскольку плат управления устройствами по MODBUS у меня пока нет, я решил вместо них повесить вторую ардуинку что-бы на ней сэмулировать управление оборудованием (фальшивые отклики и все такое)

 

Оборудование такое, два компа, к каждому подключена arduino Uno, к каждой ардуинке подключены микросхемы MAX3485 https://datasheets.maximintegrated.com/en/ds/MAX3483-MAX3491.pdf  у этих микрух выводы включающие приемник и передатчик подсоединены к седьмой лапе ардуино, таким образом пишем туда 1 = работает передача, пишем ноль = работаем на прием, между платами соединена земля , а на MAX3485 выводы А и В подсоединены к соответствующим выводам второй MAX3485. На плате расширения, на котророй стоит MAX3485 есть возможность подключать ее к штатным rx/tx, что позволяет использовать модуль Serial, или к выводам 2 и 8, для работы через SoftwareSerial.

вот так выглядит сборка  http://img.radiokot.ru/files/55520/25kzs2nafs.jpg

а вот так скетч на мастере, и его выхлоп (тут все вполне норм) http://img.radiokot.ru/files/55520/25l03uz9up.png

теперь по слейву, я пишу в Serial то-же самое что и прочел так как по rs485 это не улетит ибо на слейве MAX3485 в режиме чтения, а увидеть что прилетело мне надо, и вот тут какая-то бяка, смотрите скриншот http://img.radiokot.ru/files/55520/25l07zi2yg.png

ну думаю, ладно наверно дело в том что Я пишу туда-же откуда читаю, переключил слейва на SoftwareSerial , пробую и он мне то-же самое дерьмо давай показывать , скрин прилагается http://img.radiokot.ru/files/55520/25l0b5vxa6.png

как побеждать это дерьмо ума не приложу.

 

b707
Offline
Зарегистрирован: 26.05.2017

и что, неужели нет никаких мыслей, что за последовательность 49 - 50 - 51 - 52 ? :)))  и это на пятый год занятий ардуиной? :)

Эх ты, горе-программист :)

acckyiboxxx
Offline
Зарегистрирован: 14.03.2016

b707, ну во-первых, я попросил-бы без троллинга!

Во-вторых, с ардуиной я работаю впервые, до этого всегда сам пилил свою плату и работал с AVR-ками напрямую, если мне не изменяет память то прошлый раз я не мог запустить один дисплей, как выяснилось позже, слишком быстро в него писал, и на этом форуме оказался исключительно потому-что гугл кинул на него. Сейчас-же связался с ардуино так как нет времени на разработку платы, готовый проект нужен вчера!

В-третьих, нет никаких предположений, точнее было одно, по-идее в сях unsigned int - 32 бита, есть-ли под ардуино типы uint8_t и им подобные - мне не известно, и сколько бит в случае ардуино занимает unsigned int мне тоже не известно. Но в любом случае если эта догадка была-бы верна то в выхлопе я должен был увидеть приблизительно такую последовательность : Х, 0, 0, 0, Y, 0, 0, 0 , где x и у - какие-то числа, а нули это незанятые байты (так как читаем по одному байту, а тут предполагается 32 бита или 4 байта). Так как картина была иной, данное предполохение я отвергнул. 

b707, если вам известно откуда такая последовательность, буду рад если вы скажете в чем дело, вместо издевательств.

Ну и дополнительный вопрос, возможно-ли испльзуя ардуино прогать как под чистый камень, тоесть писать все в регистры, использовать обычные авр-ные прерывания итд? 

nik182
Offline
Зарегистрирован: 04.05.2015

Не верю! ((С)Станиславский) На все вопросы можно найти ответы час потратив почитав форум. Даже на то, что ардуино использует С,С++ . MODBUS разжёван до самых косточек. Прямое управление регистрами МК и ассемблерные вставки.
На Счёт издевательств - это Ваши вопросы звучат как тролинг. Учитывая, что ардуино это надстройка над AVR версией компилятора gcc.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

acckyiboxxx пишет:
по-идее в сях unsigned int - 32 бита
По какой такой идее? Чучхе - что-ли?

acckyiboxxx пишет:
есть-ли под ардуино типы uint8_t и им подобные - мне не известно
А попробовать?

acckyiboxxx пишет:
сколько бит в случае ардуино занимает unsigned int мне тоже не известно.
А напечатать значение sizeof(unsigned int) и посмотреть? Камасутра запрещает?

acckyiboxxx пишет:
возможно-ли испльзуя ардуино прогать как под чистый камень, тоесть писать все в регистры, использовать обычные авр-ные прерывания итд?
Возможно, если знаете, что делаете.

acckyiboxxx
Offline
Зарегистрирован: 14.03.2016

nik182 пишет:
Не верю! ((С)Станиславский) На все вопросы можно найти ответы час потратив почитав форум.

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

вот блин, сменил тип отсылаемой переменной на мастере с unsigned int на uint8_t, теперь шлется только 1 байт данных, за один проход цикла, а ситуация на слейве не поменялась, это спрашивается какого х** происходит бл**!!!

acckyiboxxx
Offline
Зарегистрирован: 14.03.2016

всем спасибо за "ПОМОЩЬ" , разобрался, оказывается надо было юзать Serial.write() а не Serial.print(), это пздц, какой идиот додумался в ASCII данные переводить перед отправкой - ума не приложу!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

acckyiboxxx пишет:
uint8_t, теперь шлется только 1 байт данных
Удивительно! И с чего бы это? Наверное, ардуина китайская.
acckyiboxxx пишет:
Serial.print(), это пздц, какой идиот додумался в ASCII данные переводить перед отправкой - ума не приложу!
Действительно, какой дурак преобразовывает данные в текст перед выводом на печать для чтения человеком? Идиоты!

b707
Offline
Зарегистрирован: 26.05.2017

acckyiboxxx пишет:

 полагая что умения кодить напрямую под камень хватит для реализации проекта.

да заканчивай уже врать, никакого умения кодить ни под что у тебя нет и не было. Любой программист хотя бы с полугодовым стажем при виде последовательности 49-50-51-52... сразу понял бы, что это

'1'-'2'-'3'-'4'....

о чем я и писал в первом сообщении.

Если б ты сразу написал, что полный чайник и язык С видишь первый раз в жизни - помогли бы, а раз решил щеки раздувать на тему своево "опыта" - разбирайся сам

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

acckyiboxxx пишет:

всем спасибо за "ПОМОЩЬ" , разобрался, оказывается надо было юзать Serial.write() а не Serial.print(), это пздц, какой идиот додумался в ASCII данные переводить перед отправкой - ума не приложу!

Предполагаю, что тот, который написал в своей программе Serial.print() вместо Serial.write().

acckyiboxxx
Offline
Зарегистрирован: 14.03.2016

ЕвгенийП]</p> <p>[quote=acckyiboxxx пишет:
Действительно, какой дурак преобразовывает данные в текст перед выводом на печать для чтения человеком? Идиоты!

Cогласен, тут затупил я, сейчас доку почитал, удобно, в любом формате выводить можно, жаль только про Serial.write() никто не подсказал, это сэкономило-бы мне уйму времени.

 

b707 пишет:

да заканчивай уже врать, никакого умения кодить ни под что у тебя нет и не было. Любой программист хотя бы с полугодовым стажем при виде последовательности 49-50-51-52... сразу понял бы, что это

'1'-'2'-'3'-'4'....

о чем я и писал в первом сообщении.

Если б ты сразу написал, что полный чайник и язык С видишь первый раз в жизни - помогли бы, а раз решил щеки раздувать на тему своево "опыта" - разбирайся сам

А вам сударь я указываю дорогу туда где жизнь взяла свое начало! Что за бред, все прогеры помнят таблицу ASCII наизусть ? Или мб когда кодишь в студии нужно юзать print() ? Или по вашему мнению я должен знать си вдоль и поперек под все платформы а не только под авр что-бы что-то писать? Короче направление я вам указал!

b707
Offline
Зарегистрирован: 26.05.2017

acckyiboxxx пишет:

Что за бред, все прогеры помнят таблицу ASCII наизусть ? Или мб когда кодишь в студии нужно юзать print() ? Или по вашему мнению я должен знать си вдоль и поперек под все платформы

мужик, ты сам не понимаешь. насколько смешно выглядишь со своими понтами :) Примерно как  "я Волгу умею водить, а Жигули нет!"

Похоже. где-то на заборе прочитал "Ардуино отстой. АВР-студия круто!" - а сам бит от байта не отличает :)

Уже то, что ты не понимаешь, что плату ардуино не обязательно "кодить" в Ардуино ИДЕ. а можно запросто писать программу под якобы "привычной тебе" Студии - полностью разоблачает твое вранье относительно твоего умения работать с АВР-процами :)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

acckyiboxxx пишет:

Что за бред, все прогеры помнят таблицу ASCII наизусть ?

Конечно.

А Вы видели хотя бы одного, который не помнит?

Цитата:

Или мб когда кодишь в студии нужно юзать print() ?

Ну это вообще-то сам программист решает, что ему использовать, а что - нет.

Цитата:

Или по вашему мнению я должен знать си вдоль и поперек под все платформы а не только под авр что-бы что-то писать?

Совершенно необязательно. Я, например, вообще не знаю. Главное - уметь программировать, а на каком языке - дело десятое.