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

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

1. Если условие не выполняется, то происходит переход на следующую команду, что занимает один такт.

2. Если условие выполняется и следующая команда не «jmp» или «call», то команда пропускается, а на выполнение команды пропуска требуется два такта.

3. Если условие выполняется, и следующей командой является «jmp» или «call», то пропускаются оба слова этой команды, а команда пропуска выполняется три такта.

Теперь, надо поговорить о командах «sbic» и «sbis» (команды 36.52 и 36.53), которые пропускают следующую команду при определенном значении бита в регистре ввода-вывода. Здесь надо быть аккуратным, так как они работают только с 32-мя первыми адресами в пространстве ввода-вывода. Вы, наверное, думаете, что это не проблема, но, взглянув на регистр SREG, можно увидеть, что его адрес в пространстве ввода-вывода равен $3F.

Данную проблему можно решить при помощи команд условного ветвления «brbc» и «brbs». Использовать их можно следующим образом:

brbs Bit, $ + 2 ; Пропустить следующую команду, если Bit = 1

Instruction

Go to Top