Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » преобразование значения переменной


преобразование значения переменной

Сообщений 1 страница 8 из 8

1

Подскажите как можно эффективно разложить бинарное число на составляющие? К примеру: имеем переменную со значением &b00000100, нужно каждый бит вытащить и приравнять соответствующей переменной:
А1=0
А2=0
А3=0
А4=0
А5=0
А6=1
А7=0
А8=0

Пока ничего проще чем преобразовать в строковую переменную и вытаскивать уже с нее с последующим преобразованием в числовое значение, на ум не приходит. Но это жутко громоздко, может есть варианты попроще?

0

2

думаю, Вам надо изменить алгоритм - не могу понять, зачем каждый бит - в свою переменную

0

3

Сдвиг на одной позицию и с помощью логических операций, определение состояния нулевого бита.
Запись в массив.

Отредактировано Пётр (2011-05-06 00:11:04)

0

4

aaa=25
a0=aaa.0
a1=aaa.1
...

как-то так

0

5

'сдвиг вправо - маскирование - запись по назначению
$asm
     Lds R31,{data}                     'исходные данные
     MOV R30 , R31
     ANdi R30 , 1
     STS {A0} , R30                     '0-й бит
     ROR R31
     MOV R30 , R31
     ANdi R30 , 1
     STS {A1} , R30                     '1-й бит
     ROR R31
     MOV R30 , R31
     ANdi R30 , 1
     STS {A2} , R30                     '1-й бит
'     ...                                и так далее
     ROR R31
     MOV R30 , R31
     ANdi R30 , 1
     STS {A7} , R30                     'до седьмого
$end Asm

0

6

хочу организовать некое подобие I2C, данные с переменной нужно отправлять на одну ногу МК в последовательности от старшего бита к младшему.

Отредактировано Viktor (2011-05-07 00:17:51)

0

7

Viktor написал(а):

хочу организовать некое подобие I2C, данные с переменной нужно отправлять на ногу МК.

SHIFTIN и SHIFTOUT не подходят?

0

8

надо глянуть и разобраться, спасибо

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » преобразование значения переменной