Например TDA7294

Форум РадиоКот • Просмотр темы - AVR Assembler Преобразование типов
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт июл 08, 2025 11:38:37

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 11 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: AVR Assembler Преобразование типов
СообщениеДобавлено: Вт июл 03, 2012 17:07:50 
Потрогал лапой паяльник
Аватар пользователя

Карма: 10
Рейтинг сообщений: 29
Зарегистрирован: Сб апр 28, 2012 16:04:14
Сообщений: 394
Рейтинг сообщения: 0
AVR
Assembler
Есть переменная типа BYTE
Как её преобразовать в STRING

Например:
Код:
  VarIn:        .byte 1
  VarOut:      .byte 3

Есть
VarIn = 156 (0x9c)

Нужно
VarOut [1 баит] = 1 (или ASCII код этого символа)
VarOut [2 баит] = 5 (или ASCII код этого символа)
VarOut [3 баит] = 6 (или ASCII код этого символа)

_________________
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Вт июл 03, 2012 17:38:30 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
sx386 писал(а):
...Как её преобразовать в STRING
это что то новое :). В ассемблере все зависит от вашей фантазии - если нужно записать символ - пишите 'a','b' и т.д. Нужно организовать С-строку - поставьте в конце 0.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Вт июл 03, 2012 17:54:01 
Потрогал лапой паяльник
Аватар пользователя

Карма: 10
Рейтинг сообщений: 29
Зарегистрирован: Сб апр 28, 2012 16:04:14
Сообщений: 394
Рейтинг сообщения: 0
Перефразирую:
Есть переменная типа BYTE
Необходимо значение этой переменой записать в 3 переменные типа BYTE таким образом, чтобы получилось
1 переменная BYTE будет содержать сотни
1 переменная BYTE будет содержать десятки
1 переменная BYTE будет содержать еденицы

_________________
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Вт июл 03, 2012 18:02:51 
Сверлит текстолит когтями
Аватар пользователя

Карма: 4
Рейтинг сообщений: 30
Зарегистрирован: Ср янв 05, 2011 16:25:15
Сообщений: 1163
Рейтинг сообщения: 0
Цитата:
Перефразирую:.....
и причем тут STRING, когда это называется отображение числа в кодировке ASCII - похоже Вам нужно преобразование. Для этого к сотням, десяткам и единицам прибавьте код 0x30 (ASCII код '0')


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Вт июл 03, 2012 18:03:30 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3732
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Разделите переменную на 100 нацело - будут сотни. Например 756 / 100 = 7. Остаток разделите на 10 - будут десятки. В примере выше остаток равен 56, и 56 / 10 = 5. Остаток от последнего деления будет единицы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Вт июл 03, 2012 19:35:01 
Потрогал лапой паяльник
Аватар пользователя

Карма: 10
Рейтинг сообщений: 29
Зарегистрирован: Сб апр 28, 2012 16:04:14
Сообщений: 394
Рейтинг сообщения: 0
А как разделить ?
Микроконтроллеры, на сколько я понял из прочитанного в книге, не поддерживают операцию деления

Собственно нужно число, находящиеся в переменной вывести в LCD

_________________
Критикуешь - предлагай. Предлагаешь - делай. Делаешь - отвечай.


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Вт июл 03, 2012 19:45:27 
Друг Кота
Аватар пользователя

Карма: 75
Рейтинг сообщений: 611
Зарегистрирован: Ср дек 24, 2008 09:58:58
Сообщений: 3732
Рейтинг сообщения: 0
Медали: 3
Мявтор 1-й степени (1) Мявтор 2-й степени (1) Мявтор 3-й степени (1)
Для деления на 100, вычитайте из числа 100 пока результат не станет отрицательным. Число вычетов будет равно целой части частного при делении. Вообще, почитайте книги про программированию на AVR. Это стандартная задача, изложенная практически в любой книге.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Вт июл 03, 2012 19:45:31 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 905
Откуда: ВО
Рейтинг сообщения: 0
Цитата:
..не поддерживают операцию деления
Опреция деления - это последовательное вычитание одного числа из другого , источник - математика начальной школы. А любой проц это умеет.


Вложения:
AVR204.zip [84.24 KiB]
Скачиваний: 502
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Ср июл 04, 2012 09:43:35 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 2
Рейтинг сообщений: 11
Зарегистрирован: Пт май 23, 2008 19:32:22
Сообщений: 2401
Откуда: Россия, Волгоград
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ILYAUL
+1
тоже пользуюсь AVR204 и не парюсь :)))

_________________
Чем дальше, тем больше становлюсь занудой...
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Ср июл 04, 2012 13:40:07 
Друг Кота

Карма: 28
Рейтинг сообщений: 568
Зарегистрирован: Чт май 05, 2011 21:26:34
Сообщений: 4550
Откуда: Украина, Славутич
Рейтинг сообщения: 0
Где-то эта тема уже обсуждалась.
Это называется BIN-2-BCD преобразованием. В результате которого из двоичного числа получается двоично-десятичное, у которого каждая половина байта - это одна цифра. Такое число несложно разобрать на строку.

Самый простой способ такого преобразования "влоб" это крутить два счетчика - один это исходное число, а второй - это двоично-десятичный счетчик результата. Исходное число декрементируется до нуля, а в это время результат инкрементируется с учетом десятичной коррекции разрядов.

Но метод этот жутко неэффективный, для одного байта в худшем случае надо проделать 255 итераций, для 16-битного числа - более 65000.

Поэтому сначала прокручивают счетчики тысячами, потом сотнями, десятками и единицами. Причем не прокручивают, а используют операции суммирования-вычитания. основная проблема это учет десятичной коррекции, но если на "байтах" не экономить, то можно выделить под каждый разряд результата(5 разрядов для 16 бит) один байт и сильно упростить себе задачу.

для PIC-контроллеров видел эффективные алгоритмы с применением математических трюков, которые преобразуют 32-бит число за максимум 200 машинных циклов. Для других контроллеров таких алгоритмов не встречал...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler Преобразование типов
СообщениеДобавлено: Ср июл 04, 2012 16:03:36 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 905
Откуда: ВО
Рейтинг сообщения: 0
С появлением команд mul - стало значительно легче


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y