Получится.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено BLACKEAGLE 17 июня 2003 г. 00:13
В ответ на: в вопросе-то двухбайтное число, а каждый байт по отдельности не получится отправлено mse 16 июня 2003 г. 14:20

На примере X=0FFFFh:

1. Преобразовываем старший байт в BCD: FF=255=0255h

2. Умножаем на 256 десятично - путем восьмикратного сложения с самим собой И ДЕСЯТИЧНОЙ КОРРЕКЦИИ КАЖДОГО СЛОЖЕНИЯ: 0255h*256=065280h

3. Преобразовываем младший байт в BCD: FF=255=0255h

4. Складываем в BCD (опять с десятичной коррекцией) старшую и младшую BCD-части: 065280h+000255h=065535h, что и надо.

Для АВР это будет некузяво, т.к. там нет команды десятичной коррекции. По времени (для х51) сопоставимо с вычитанием степеней десятки.

Этот же прием годится и для многобайтных чисел, но время может быть сопоставимо с алгоритмом "сдвиг-сложение-коррекция".

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru