Как работает shiftOut
- Войдите на сайт для отправки комментариев
Сб, 08/10/2016 - 22:57
Доброго времени суток всем. У меня возник вопрос: как работает функция shiftOut. То есть, меня интересует алгоритм отправки данных (т.е. что происходит на контактах синхронизации и данных, во время совершения данного действа, в какой последовательности и т.п.), а не всякая х. про параметры и тп. . Кто знает - пожалуйста, напишите.
P.S Меня интересует инфа со всеми подробгностями, из расчёта написания данной функции и функции приёма.
У меня возник вопрос: как работает функция shiftOut. То есть, меня интересует алгоритм отправки данных (т.е. что происходит на контактах синхронизации и данных, во время совершения данного действа, в какой последовательности и т.п.), а не всякая х. про параметры и тп. . Кто знает - пожалуйста, напишите.
Вы какую религию исповедуете, что она не позволила Вам самому посмотреть?
Давайте, я посмотрю вместо Вас. Итак, лезем в директорию
<корень Ардуино>\hardware\arduino\avr\cores\arduino
и открываем там файл wiring_shift.c. Внимательно смотрим на него, и ... о чудо, вот же она!
Надеюсь, больше Вам ничего не нужно? То, что там написано Вы понимаете?
Ксатти, то, что Вы называете "функция приёма", там тоже есть, в том же самом файле. shiftIn называется.
Здравствуйте! Подскажите пжл .... !- это инверсия на сколько я знаю. А что означает !! в выражении !!(val & (1 << i)) ?
А !! это два раза !.
Двойная инверсия. Приведение результата любого вычисления к 1 или 0.
!!(9-3) => !!6 => !0 => 1
!!0 => !1 => 0
Привет!
Не совсем понял.... Есть ссылка на материал об этом чтоб получше ознакомиться?
Привет!
Не совсем понял.... Есть ссылка на материал об этом чтоб получше ознакомиться?
О чем? Как двойная инверсия работает?
Зачем два раза инвертировать?
Допустим некое выражение true, после одной инверсии false, а после двойного- cнова true?
Для чего?
Ну или я чего то не понимаю..... Поэтому и ознакомиться хочу
Зачем два раза инвертировать?
сообщение #4 читай и перечитывай, пока не дойдет смысл
Такой вывод приводит к тому что длина посылки одного бита разная !
Для shiftOut это не важно конечно (вывод синхронизируется), но для так информации надо это понимать ...
Зачем два раза инвертировать?
Допустим некое выражение true, после одной инверсии false, а после двойного- cнова true?
Для чего?
Ну или я чего то не понимаю..... Поэтому и ознакомиться хочу
Для того, чтобы превратить любое значение больше нуля в 1. (Что в данной ситуации совершенно ни к чему. (И когда нужно, делается не так)).
Зачем два раза инвертировать?
Допустим некое выражение true, после одной инверсии false, а после двойного- cнова true?
Для чего?
Ну или я чего то не понимаю..... Поэтому и ознакомиться хочу
Для того, чтобы превратить любое значение больше нуля в 1. (Что в данной ситуации совершенно ни к чему. (И когда нужно, делается не так)).
А !! это два раза !.
...ты отказала мне два раза вот такая вот зараза... )))
Означает ли "Да" два раза подряд "Нет"?
ДА - не является логической операцией, а НЕТ - является
Верно. "Да" - это результат логической операции. Потому вопрос #13 в силе )))