Martian, Мы такое сделали, правда на СТМ Бейсиковская команда (точнее, функция) LOG(X) реально компилируется в 2 байта - байт команды и байт - номер временного регистра. Но под капотом виртуальной машины честный флоатный логарифм на сях )))
Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.
AQ29, ваш целочисленный логарифм на АБ/ассемблере тоже применим. Что б не изобретать велописеды на асме. Но зочем вы говорите за свой асссемблерный код в теме про язык Си?
Martian писал(а):
или есть где посмотреть?
Да какое там коммерческая.... GoldenAndy для себя задумал сделать мелкую консольку с несколькими аркадными игрульками... Типа тетриса, зоникса, питончика и т.д. А я с ним заобщалась по поводу его тестера аккумуляторов... Слово за слово , в телеге разговорились. И родилась мысль (с моей подачи) - не зашивать игры в МК, а сделать что то типа виртуальной машинки , в которую будут компилиться программы на ЯВУ. Выбор пал на диалект бейсика. Сделали вдвоем. Задачка была интересная. Я там больше алгоритмами участвовала. В частности, работа с кучей и уборка мусора - один из моих алгоритмов там. Питона я под готовое изделие написала... Ссылки не знаю, можно тут на сторонние ресурсы постить или нет, но подпись у Энди ведет в его блог - там можно почитать.
Добрый день. Попалась вот такая запись в операции установки бит.
Код:
UCSR0C=(3<<UCSZ00);
Почему здесь тройка, и что она значит. Сколько ни смотрел разные руководства по битовым операциям, везде тут единица без исключений. Компилируется и работает нормально.
Смотрим документацию (стр. 193, 194): The UCSZn1:0 bits combined with the UCSZn2 bit in UCSRnB sets the number of data bits (Character SiZe) in a frame the Receiver and Transmitter use. (UCSZn2 = 0?), UCSZn1 = 1, UCSZn0 = 1 -> Character Size: 8-bit
Добрый день. Попалась вот такая запись в операции установки бит.
Код:
UCSR0C=(3<<UCSZ00);
Почему здесь тройка, и что она значит. Сколько ни смотрел разные руководства по битовым операциям, везде тут единица без исключений. Компилируется и работает нормально.
нормальные люди делают так:
Код:
UCSR0C=_BV(UСSZ00) | _BV(UCSZ01);
или так (что то же самое, но длиннее):
Код:
UCSR0C=(1<<UСSZ00) | (1<<UCSZ01);
, а ненормальные двигают сразу 2 бита в позицию UCSZ00, как у вас
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
USART_Init: ; Set baud rate out UBRRnH, r17 out UBRRnL, r16 ; Enable receiver and transmitter ldi r16, (1<<RXENn)|(1<<TXENn) out UCSRnB,r16 ; Set frame format: 8data, 2stop bit ldi r16, (1<<USBSn)|(3<<UCSZn0) out UCSRnC,r16 ret
стр. 185, C Code Example:
Код:
Enable receiver and transmitter */ UCSR0B = (1<<RXEN0)|(1<<TXEN0); /* Set frame format: 8data, 2stop bit */ UCSR0C = (1<<USBS0)|(3<<UCSZ00);
Ну, тут субъективно становится. Лично я за удобочитаемость и установку только того, что устанавливается, то есть, либо в твой вариант добавлю |, либо так же оставлю, если цель сбросить остальные поля. Но смещать тройку названием поля размером один бит... это в любом случае как-то странно выглядит.
тоже стараюсь все, но когда не лень, даю им нормальные названия, чтобы в итоге получалось UART = Speed9600 | Bit8 | WithParity. Но в последнее время лень, и тогда вариант ARV
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 37
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения