Ревич, Ю.В. Программирование микроконтроллеров AVR: от Arduino к ассемблеру
Ликбез 431 ют типу long (О до 4 294 967 295, т. е . от О до 2 32 -1 ) . Максимальное число в шестна дцатеричной форме для двухбайтового числа будет выглядеть как FFFF 1 6, а для четырехбайтового - как FFFFFFFF 1 6 • Для практических расчетов емкости двух байтового числа часто недостаточно, а четырехбайтовое излишне велико, потому мы в этой книге еще употребляем нестандартный трехбайтовый формат, где мак симальное число равно FFFFFF 1 6 = 1 6 777 2 1 5 = 2 2 4 -1 . ПОДРОБНОСТИ Важная вещь, на которую стоит обратить внимание: конечная величина 8-битного диапазона в 256 градаций равна числу 255, 1 0-битного диапазона в 1 024 градации - числу 1 023 и т. д. Даже опытные электронщики часто теряются : например, если у вас есть 1 0-битный аналого-цифровой преобразователь (АЦП) , у которого вся шкала соответствует одному вольту, то для определения цены одной градации всю шкалу надо делить на 1 024 или 1 023? Как минимум, на половине интернет-ресурсов , посвя щенных тем или иным аспектам применения АЦП в АVR-контроллерах, этот момент отражен неправильно. Запомните наизусть, чтобы не плавать в таких случаях: всю шкалу надо делить на полные величины диапазона (256 и 1 024 для этих примеров) . В главе 1 1 этот вопрос рассматривается подробнее. З ап ись ч исел в разл и чных форматах Если система не указана, то имеется в виду обычно десятичная, но не всегда - час то, когда из контекста понятно, что идет речь об электронных устройствах, не ука зывают не только основание два, но и под словом «разрядность» имеют в виду количество именно · двоичных, а не десятичных разрядов (таков, скажем, смысл терминов «24-разрядный цвет» или «8-разрядный контроллер»). Шестнадцатеричный формат записи часто еще обозначают как НЕХ (hexadecimal), двоичный - как BIN (binary), а десятичный - как DEC (decimal). Кроме этого, в ходу еще так называемый двоично-десятичный формат - BCD (binary-coded decimal), о котором далее. С помощью матричных шрифтов на компьютерах с тек стовыми дисrmеями воспроизводить индексы было невозможно, и вместо того, чтобы обозначать основания системы цифрой справа внизу, их стали обозначать буквами : «В» (или «Ь») - означает двоичную систему, «Н» (или «h») - шестна дцатеричную, отсутствие буквы означает десятичную систему: 1 3 = 0000 1 1 0 1 Ь = ODh. Такая запись принята в языке ассемблера для процессоров Intel и одно время была общепринятой. Популярность языка С внесла в это дело некоторый разнобой: там десятичная система не обозначается никак, двоичная - буквой «Ь» (см. далее), а вот шестнадцатеричная - буквой «Х», причем запись во всех случаях предваря ется нулем (чтобы не путать запись числа с идентификаторами переменных, кото рые всегда начинаются с буквы): 1 3 = ObOOOO l 1 0 1 = OxOD. Такая запись также работает и в ассемблере для АVR. Шестнадцатеричные числа в ассемблере АVR можно обозначать также в «паскалевско-мотороловском» стиле, предваряя их знаком $ ($00), а вот «интеловский» способ (OOh), напоминаем, в АVR
Made with FlippingBook
RkJQdWJsaXNoZXIy MTExODQxMg==