вопрос по коду

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
schel4ok
Сообщения: 136
Зарегистрирован: Вс сен 02, 2018 8:03 am
Благодарил (а): 2 раза
Поблагодарили: 0

вопрос по коду

Сообщение schel4ok » Вс ноя 01, 2020 10:42 pm

Изучаю уроки по настройке сервера на ардуино и на одном англоязычном уроке на startingelectronics.org нашёл странную строчку кода, смысл которой понять не могу

В начале void setup() там есть 2 строки с комментарием disable Ethernet chip

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

    
    // disable Ethernet chip
    pinMode(10, OUTPUT);
    digitalWrite(10, HIGH);
Либо коммент неправильный либо что-то не так. Не могу понять нафига отключать Ethernet chip, если в уроке наоборот поднимают сервер.
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: вопрос по коду

Сообщение alexsis_76 » Пн ноя 02, 2020 12:46 pm

Добрый день. На интерфейсе SPI который использует Ethernet висит еще и SD карта, сначала отрубаем ss etherneta( он в этот момент еще не активен). Инициализируем SD (SD.begin ), затем Ethernet (Ethernet.begin), после инициализации
pinMode (10, ВЫХОД);
digitalWrite (10, ВЫСОКИЙ);
уже не действительно.
schel4ok
Сообщения: 136
Зарегистрирован: Вс сен 02, 2018 8:03 am
Благодарил (а): 2 раза
Поблагодарили: 0

Re: вопрос по коду

Сообщение schel4ok » Пн ноя 02, 2020 3:36 pm

Что-то не очень понятно.
То есть передача данных между Arduino Uno и Ethernet shield производится по пину 10?
Мы в setup сначала зачем-то на этот пин посылаем высокий сигнал, то есть занимаем канал.
Потом если пин занят как пройдёт инициализация Ethernet (Ethernet.begin)?
Почему после инициализации настройки пина уже не действительны? Они разве сбрасываются?

И у них в коде нет явной инициализации SD. Есть только проверка условия if (!SD.begin(4))
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: вопрос по коду

Сообщение alexsis_76 » Вт ноя 03, 2020 1:41 pm

Добрый день уважаемые друзья.
То есть передача данных между Arduino Uno и Ethernet shield производится по пину 10?
Нет, передача данных происходит по интерфейсу SPI.
Мы в setup сначала зачем-то на этот пин посылаем высокий сигнал, то есть занимаем канал.
Нет, высокий уровень на SS деактивирует интерфейс, активный уровень низкий.
По
чему после инициализации настройки пина уже не действительны? Они разве сбрасываются?
Выводом ss управляет библиотека.
И у них в коде нет явной инициализации SD. Есть только проверка условия if (!SD.begin(4))
SD.begin это и есть инициализация.
этот код скорее всего используется для предотвращения зависания программы.
something
Сообщения: 28
Зарегистрирован: Вт ноя 10, 2020 7:00 pm
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: вопрос по коду

Сообщение something » Вт дек 08, 2020 2:55 am

schel4ok писал(а):
Пн ноя 02, 2020 3:36 pm
Что-то не очень понятно.
То есть передача данных между Arduino Uno и Ethernet shield производится по пину 10?
Мы в setup сначала зачем-то на этот пин посылаем высокий сигнал, то есть занимаем канал.
Потом если пин занят как пройдёт инициализация Ethernet (Ethernet.begin)?
Почему после инициализации настройки пина уже не действительны? Они разве сбрасываются?

И у них в коде нет явной инициализации SD. Есть только проверка условия if (!SD.begin(4))
10 pin это SS в интерфейсе SPI, но используется он только для подчиненных устройств. В ардуине он нужен только если она подключена как slave к другой ардуине. Тогда на ней будет использован 10-й пин SS, и на другой ардуине(мастере) это будет CS. В общем если вы к своей ардуине подключаете периферию, то вам достаточно 10-й пин выставить в OUTPUT, иначе она может подумать, что она подчиненная и будет ждать команд от SD карты, ну или езернет шилда. Ставить высокий уровень не обязательно. И да, этот пин можно использовать для своих целей, но только если мы не подключаем ардуину как подчиненную к другой ардуине.
schel4ok
Сообщения: 136
Зарегистрирован: Вс сен 02, 2018 8:03 am
Благодарил (а): 2 раза
Поблагодарили: 0

Re: вопрос по коду

Сообщение schel4ok » Вт дек 08, 2020 11:05 am

что значит SS?
something
Сообщения: 28
Зарегистрирован: Вт ноя 10, 2020 7:00 pm
Благодарил (а): 4 раза
Поблагодарили: 8 раз

Re: вопрос по коду

Сообщение something » Вт дек 08, 2020 12:42 pm

schel4ok писал(а):
Вт дек 08, 2020 11:05 am
что значит SS?
SS (Slave Select) - the pin on each device that the master can use to enable and disable specific devices.
When a device's Slave Select pin is low, it communicates with the master. When it's high, it ignores the master. This allows you to have multiple SPI devices sharing the same MISO, MOSI, and CLK lines.

Ну в спецификации же написано. Это выбор активного слейва. Когда по шине SPI подключено несколько устройств, то активное то, у которого на шине SS низкий уровень. Например ты подключаешь экран и SD карту, для каждого устройства ты выбрал разные пины, со стороны мастера они назваются CS(Chip Select). Когда ты хочешь работать с экраном, то ты на его пине выставляешь LOW, а на пине SD карты ставишь HIGH. После чего посредством MISO и MOSI обмениваешься данными только с тем устройством у которого SS в состоянии LOW. Устройство у которого на SS установлено HIGH игнорирует шину данных, считай выключено.
lihodeev
Сообщения: 148
Зарегистрирован: Ср июл 25, 2018 10:37 pm
Благодарил (а): 43 раза
Поблагодарили: 8 раз

Re: вопрос по коду

Сообщение lihodeev » Ср июн 23, 2021 10:03 pm

всем привет! Шел четвертый день борьбы. все как бы просто, переставил систему, накатил бекап, скриптик -

exec('ffmpeg -y -i "rtsp://admin:65804@192.168.1.27/play1.sdp" -t 5 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -r 15 /var/www/cms/cached/out.mp4');

проверил, все ок, работает. Дай думаю проверю еще один -

exec('rtl_433 -f 433.88e6 -F "mqtt://192.168.1.5:1883",events=/433/[id]');

и тут началось.. не запустился.. я сразу через ,SSH проверяю, на прямую так сказать.. все ок. Как сказано выше четвертый день уже пошел. Может у вас будет мысль преодоления происходящего? Сразу скажу что на старой системе работали оба.
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
schel4ok
Сообщения: 136
Зарегистрирован: Вс сен 02, 2018 8:03 am
Благодарил (а): 2 раза
Поблагодарили: 0

Re: вопрос по коду

Сообщение schel4ok » Чт июн 24, 2021 7:28 am

По моему тут вообще тема другая
lihodeev
Сообщения: 148
Зарегистрирован: Ср июл 25, 2018 10:37 pm
Благодарил (а): 43 раза
Поблагодарили: 8 раз

Re: вопрос по коду

Сообщение lihodeev » Сб июн 26, 2021 1:55 am

schel4ok писал(а):
Чт июн 24, 2021 7:28 am
По моему тут вообще тема другая
угу, новая тема "у меня тоже не работает Алиса" никого не напрягает, а тут написал может не туда... хотя вопрос как оказалось по решению проблемы очень спорный
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
Ответить