А заодно обсудим и необходимость точного нуля на выходе в соответствии с разрешением ADC. Не вижу причин для спора. Для построения минималистичной реальной схемы не хватает данных. Подход "полностью условия неизвестны, поэтому на всякий случай предусмотрим всё" имеет право на существование, но может увести в совершенно дикие дали.
Хм. В задании не вижу не требований по линейности, ни по термокомпенсации или компенсации сопротивления проводов. Посему всё решается одним недорогим операционником с Rail-to-Rail выходом и тремя резисторами. Если кто-то на тестовое задание по проектированию бумажного самолётика делает чертежи космического корабля, то это, конечно, здорово, но совершенно не нужно. PS. И да, а вы уверены, применяя двуполярное питание, что ADC переживёт появление отрицательного напряжения на входе?
Ну если учитывать off-by-one, вы встретите 13 электричек. Но да, на конечный ответ это не повлияет. У AI можно спросить, сколько весит 1 кубометр воды на глубине 10м воды. Ответ вас порадует. Хотя, с последними версиями не тестил.
Так от архитектуры зависит, не вижу причин для спора. BTW я еще ни разу не встревал архитектуры, в которой есть команда add, которая не аффектит флаги и одновременно нет команды add, которая аффектит флаги.
Не всегда и не везде. К тому-же бывает такая штука, как условное выполнение опкода, которое конвеер не сбрасывает. Хотя всё эти фичи зависят от архитектуры. Вся прелесть C в том, что он хоть и близок к железу, но всё таки от конкретной архитектуры не зависит.
В целом, я не говорю, что сама идея дурацкая. В целом, здравая, но непонятно как реализуемая. Проводить проверку на переполнение после каждой операции - затратно и сломает много кода. Вводить дополнительные операторы, какие, как? Вот операторов циклических сдвигов до сих пор не завезли, а уж сколько лет прошло. Прагмами? Ада и багов будет еще больше. Функциями? Ну вот так и поступают, если надо.
Причем тут "нужна" и "не нужна"? Она есть, и это реальность. Хотите другую - делайте своё ядро и компилятор к нему. Получите, возможно, прекрасную вещь, но нафиг никому не нужную. PS. BTW, на кольцах построено довольно много быстрых хэш-функций. Вот это то, что первым пришло в голову.
Конечно справятся. Вы готовы к тому, чтобы любимые многими Python и Java работали раза этак в 3 медленнее? Ну камон, целочисленная арифметика в кольце - это основа компьютерных вычислений. Если для кого-то это новость, то это говорит только о серьёзных пробелах в фундаментальных знаниях, не более.
AVR вообще значительно проще устроен. Я не только про ядро, я про вообще. Такие штуки зависят от реализации конкретной периферии в конкретном микроконтроллере, ну или в серии.
Это называется Bit-Banding. Грамотно внедрить его можете сами, достаточно немного почитать документацию. А еще есть такие полезные регистры в GPIO как BSRR и BRR, которые позволяют менять состояния пинов без RMW.
А заодно обсудим и необходимость точного нуля на выходе в соответствии с разрешением ADC. Не вижу причин для спора. Для построения минималистичной реальной схемы не хватает данных. Подход "полностью условия неизвестны, поэтому на всякий случай предусмотрим всё" имеет право на существование, но может увести в совершенно дикие дали.
Хм. В задании не вижу не требований по линейности, ни по термокомпенсации или компенсации сопротивления проводов. Посему всё решается одним недорогим операционником с Rail-to-Rail выходом и тремя резисторами. Если кто-то на тестовое задание по проектированию бумажного самолётика делает чертежи космического корабля, то это, конечно, здорово, но совершенно не нужно. PS. И да, а вы уверены, применяя двуполярное питание, что ADC переживёт появление отрицательного напряжения на входе?
Ну если учитывать off-by-one, вы встретите 13 электричек. Но да, на конечный ответ это не повлияет.
У AI можно спросить, сколько весит 1 кубометр воды на глубине 10м воды. Ответ вас порадует. Хотя, с последними версиями не тестил.
Так от архитектуры зависит, не вижу причин для спора. BTW я еще ни разу не встревал архитектуры, в которой есть команда add, которая не аффектит флаги и одновременно нет команды add, которая аффектит флаги.
Не всегда и не везде. К тому-же бывает такая штука, как условное выполнение опкода, которое конвеер не сбрасывает. Хотя всё эти фичи зависят от архитектуры. Вся прелесть C в том, что он хоть и близок к железу, но всё таки от конкретной архитектуры не зависит.
В целом, я не говорю, что сама идея дурацкая. В целом, здравая, но непонятно как реализуемая. Проводить проверку на переполнение после каждой операции - затратно и сломает много кода. Вводить дополнительные операторы, какие, как? Вот операторов циклических сдвигов до сих пор не завезли, а уж сколько лет прошло. Прагмами? Ада и багов будет еще больше. Функциями? Ну вот так и поступают, если надо.
Причем тут "нужна" и "не нужна"? Она есть, и это реальность. Хотите другую - делайте своё ядро и компилятор к нему. Получите, возможно, прекрасную вещь, но нафиг никому не нужную.
PS. BTW, на кольцах построено довольно много быстрых хэш-функций. Вот это то, что первым пришло в голову.
Конечно справятся. Вы готовы к тому, чтобы любимые многими Python и Java работали раза этак в 3 медленнее? Ну камон, целочисленная арифметика в кольце - это основа компьютерных вычислений. Если для кого-то это новость, то это говорит только о серьёзных пробелах в фундаментальных знаниях, не более.
Потому что
add rax, rbx
(для остальных архитектур найдёте сами) не выбрасывает исключений. Максимум, устанавливает флаг переноса.AVR вообще значительно проще устроен. Я не только про ядро, я про вообще. Такие штуки зависят от реализации конкретной периферии в конкретном микроконтроллере, ну или в серии.
Да всё равно где он находится. До main() его уже потрогал тот код, который в main() передаёт управление. И там будет мусор.
Какие виртуальные адреса? В примере память выделяется на стеке.
Это называется Bit-Banding. Грамотно внедрить его можете сами, достаточно немного почитать документацию. А еще есть такие полезные регистры в GPIO как BSRR и BRR, которые позволяют менять состояния пинов без RMW.
Ответил в пм
А если код уже входит в проект? Просто интересно посмотреть на девайс вживую, ну и просто пообщаться.