Код: Выделить всё
digitalWrite(dataPin, data & 1 ? HIGH : LOW);Код: Выделить всё
digitalWrite(dataPin, data & 1 ? HIGH : LOW);Код: Выделить всё
void t_send(byte data)
{
for (int i = 0; i < 8; i++) {
digitalWrite(clockPin, LOW);
digitalWrite(dataPin, data & 1 ? HIGH : LOW);
data >>= 1;
digitalWrite(clockPin, HIGH);
}Понял, спасибо.shindax писал(а):Все там вяжется, Вам arkhnchul правильную ссылку дал
Разве есть язык ардуино? Еще скажите что разработчики ардуины написали свой компилятор?Голимый писал(а):В описании языка ардуины как бы и нет такого вообще.
Я пишу на ассемблере для MCS-51, и знаю что такое логические операции. Мне непонятно вот что: как логическая операция может становится условием.shindax писал(а):Электроникой, хотя-бы поверхностно, занимались когда-нибудь?
Код: Выделить всё
#define STAGE ONE 0b00000001
#define STAGE TWO 0b00000010
#define STAGE THREE 0b00000100
...
unsigned char state;
...
if( state & STAGE_ONE )
{
... // действия на уровне ONE
state = 0b00000010;
...
}
if( state & STAGE_TWO )
{
... // действия на уровне TWO
state = 0b00000100;
}
if( state & STAGE_THREE )
{
... // действия на уровне THREE
state = 0;
}
если "А" лог.И "B" не равно нулю.Голимый писал(а):если "А" лог.И "B"
Так "А" после лог.И с единицей никогда не будет равна нулю.Мурик писал(а):если "А" лог.И "B" не равно нулю.
Кстати, вот тут ( https://www.arduino.cc/reference/en/lan ... reference/shindax писал(а): что есть логическое сравнение ( &&, || ) и алгебраическое ( &, | )
Благодаря чему, "определенности" становится больше.&
[Pointer Access Operators]
Description
Referencing is one of the features specifically for use with pointers. The ampersand operator & is used for this purpose. If x is a variable, then &x represents the address of the variable x.
ну да, в С/С++ местами есть зависимость от контекста.Голимый писал(а):Благодаря чему, "определенности" становится больше.
Почему?Голимый писал(а):Так "А" после лог.И с единицей никогда не будет равна нулю.
условие будет ложно (равно 0) если 0 в нулевом бите переменной data. Не путайте И и ИЛИ.Голимый писал(а):digitalWrite(dataPin, data & 1 ? HIGH : LOW);
Виноват, бес попутал.Мурик писал(а):Не путайте И и ИЛИ