Суббота, 23 июля 2011 21:54

Преобразование однобайтного двоичного числа в трёхзначное десятичное число в «пиках» 18 серии Featured

Written by
Rate this item
(0 votes)

  Была необходимость применить подпрограмму «Преобразование однобайтного двоичного числа в трёхзначное десятичное число» в «пиках» 18 серии. Для этого пришлось подправить код. Дело в том , что команда «incf» в пиках 16 серии увеличивает значение регистра f на 1 и изменяет только “Z” флаг, а в 18 серии дополнительно изменяет флаги C, DC, Z, OV, N . По ходу программы после команды «incf» идет проверка флага «С» ( btfsc   Status,C ) ,но в результате исполнения команды «incf» в пиках 18 серии флаг «С» сбрасывается и программа работает не корректно...

 

Что бы флаг не сбрасывался , необходимо применить команду INCFSZ или INFSNZ , которые не воздействуют на флаги. А для того что бы не было пропуска следующей команды нужно добавить «nop». В результате получилась вот такая подпрограмма.

 

 

 

 

Read 2733 times Last modified on Среда, 03 сентября 2014 14:48

Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru