МИКРОКОНТРОЛЛЕР AVR - Страница 93

МИКРОКОНТРОЛЛЕР AVR - МИКРОКОНТРОЛЛЕР AVR

Когда вы впервые посмотрите на эту группу команд, вы, вероятно, удивитесь, почему фирма Atmel дала им такое название. Здесь есть несколько «настоящих» битовых операций, но в целом эта группа выглядит, как попытка собрать в одну кучу все оставшиеся команды, особенно, если принять во внимание наличие в ней команд сдвигов и циклических сдвигов.

Команды сброса (очистки) и установки битов (команды 36.57, 36.58, 36.59 и 36.60) предназначены для модифицирования содержимого регистров ввода-вывода. Когда вы рассмотрите выполнение команд «bclr», «bset». «cbi» и «sbi» , то увидите, что они могут работать только с частью пространства ввода-вывода: «bclr» и «bset» модифицируют бит в регистре состояния, a «cbi» и «sbi» имеют доступ только к 32-м первым адресам регистров ввода-вывода. Это значит, что для большинства регистров ввода-вывода вы должны сначала переписать их содержимое в РОН, модифицировать, а затем снова сохранить в регистре ввода-вывода. Для выполнения этой процедуры можно написать специальную макрокоманду:

Эту макрокоманду можно также использовать для сброса в 0 битов, находящихся в РОН. Обратите внимание, что регистр общего назначения Temp должен иметь адрес от 16 до 31.

Команды «bset» и «bclr» имеют также ряд «псевдокоманд», которые служат для изменения значений отдельных битов в регистре SREG. Мнемокоды, используемые для «псевдокоманд», позволяют лучше запомнить выполняемую операцию. Эти «псевдокоманды» приведены ниже в описаниях соответствующих команд.

Go to Top