Инструкция rlcf с pic 18F4550 в компиляторе C - PullRequest
3 голосов
/ 20 мая 2011

Я новичок в аппаратном программировании с компилятором c для PIC 18F4550 от Microchip.

У меня вопрос, может ли кто-нибудь дать мне пример «как вращать биты и получить добавленный перенос, с помощью этой инструкции« rlcf »(компилятор c)

Эта инструкция сдвигает биты влево и помещает крайний левый бит в Carry, и вы должны прочитать это значение из переноса.

Я знаю, как это работает. Но не могу найти пример кода, чтобы запустить его на моем пути к коду.

Это ввод данных, которые я получаю. Он должен быть преобразован в двоичные значения, а затем повернуть его. без знака int красный = 1206420333240;

Заранее спасибо!

1 Ответ

4 голосов
/ 20 мая 2011

У вас нет доступа для переноса битов в компиляторе C, вам придется использовать ассемблер, чтобы добраться до них.

Кроме того, ваше значение слишком велико для целого числа без знака на PIC18, чтоэто 16-битное число с максимальным значением 65535 десятичных, 0xFFFF шестнадцатеричное.

Способ записи сборки в файле C зависит от компилятора.В Hitech C следующий синтаксис действителен

asm("RLCF REG,0,0");//replace REG with your register and consider the d and a flags.
asm("BC 5"); //branch if carry

Но обратите внимание, что это вращение одного байта, а не двухбайтового числа.Вам нужно связать воедино два поворота двух регистров, чтобы повернуть 16-битное число.

...