Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы
Непрочитано 30.11.2012, 11:29  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Может так будет работать?

//======= r16:r17:r18 = (R16:r17)
.MACRO daa
subi @0,-3
sbrs @0,3
subi @0,3
subi @0,-0x30
sbrs @0,7
subi @0,0x30
.ENDMACRO
BinDec:
push r19
push r20
push r21
movw r21:r20,r17:r16
clr r16
clr r17
clr r18
ldi r19,16
BinDec_loop:
lsl r20
rol r21
rol r16
rol r17
rol r18
dec r19
breq BinDec_exit
daa r16
daa r17
daa r18
jmp BinDec_loop
BinDec_exit:
pop r21
pop r20
pop r19
ret
Реклама:
Boba_spb вне форума  
Непрочитано 30.11.2012, 13:23  
movel22
Прохожий
 
Регистрация: 21.09.2009
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
movel22 на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

http://www.electroclub.fatal.ru/RusA...BCD/BINBCD.htm - вот здесь посмотри
movel22 вне форума  
Непрочитано 30.11.2012, 14:39  
trassertrasser
Прохожий
 
Регистрация: 24.09.2007
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
trassertrasser на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

в отличие от К580 в AVR нет десятичной коррекции, так что сначала разберитесь с DAA
если очень нужно могу найти свои исходники ..

Последний раз редактировалось trassertrasser; 30.11.2012 в 14:44.
trassertrasser вне форума  
Непрочитано 30.11.2012, 15:49  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Сообщение от trassertrasser Посмотреть сообщение
так что сначала разберитесь с DAA
если очень нужно могу найти свои исходники ..
Это кому совет?
Boba_spb вне форума  
Непрочитано 30.11.2012, 18:34  
alex1_09
Вид на жительство
 
Аватар для alex1_09
 
Регистрация: 14.07.2009
Сообщений: 322
Сказал спасибо: 103
Сказали Спасибо 109 раз(а) в 56 сообщении(ях)
alex1_09 на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Сообщение от ut1wpr Посмотреть сообщение
Ведь даже мозг особо подключать не надо, лишь глаза и пальцы. Остальное доделает Гугл...
.
Вот уж действительно! Зачем учить таблицу умножения, если есть калькулятор!
Только вопрос: А кто же составит эту таблицу, если все будут надеяться на гугл...? И отучатся мозг подключать!? А потом вдруг обнаружишь что смотришь в эту таблицу как баран и ни чего не понимаешь.
alex1_09 вне форума  
Непрочитано 30.11.2012, 18:58  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Сообщение от alex1_09 Посмотреть сообщение
.
Вот уж действительно! Зачем учить таблицу умножения, если есть калькулятор!
Только вопрос: А кто же составит эту таблицу, если все будут надеяться на гугл...? И отучатся мозг подключать!? А потом вдруг обнаружишь что смотришь в эту таблицу как баран и ни чего не понимаешь.
Не совсем понял метафору. Если это про давно созданную таблицу умножения - зачем учится ее создавать снова? Для заглядывания в таблицу умножения мозг подключать? Явный перебор в поисках метафор. Насчет "мозг подключать" возражений нет. Все остальное - из области "поговорить".
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
true71 (01.12.2012)
Непрочитано 30.11.2012, 19:31  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Вспомнил детство! Учитель математики учил нас -"Известно как вскипятить воду - взять со стола пустой чайиник,налить в чайник воды, зажечь газ, поставить чайник на плиту, когда вскипел - выключить газ. Поэтому, если Вам захотелось чаю, а на плите стоит чайник, то .......... вылейте из него воду и поставьте на стол - ибо задача вскипятить его уже давно решена!!!"

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

Единственное, что чуток смущает, так это то, что профи не тратят время на выкладывание в инете своих трудов. Поэтому надо еще уметь оценить то что тут выставляют.
Boba_spb вне форума  
Сказали "Спасибо" Boba_spb
ut1wpr (30.11.2012)
Непрочитано 30.11.2012, 20:02  
alex1_09
Вид на жительство
 
Аватар для alex1_09
 
Регистрация: 14.07.2009
Сообщений: 322
Сказал спасибо: 103
Сказали Спасибо 109 раз(а) в 56 сообщении(ях)
alex1_09 на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Сообщение от ut1wpr Посмотреть сообщение
Не совсем понял метафору. Если это про давно созданную таблицу умножения - зачем учится ее создавать снова? Для заглядывания в таблицу умножения мозг подключать? Явный перебор в поисках метафор. Насчет "мозг подключать" возражений нет. Все остальное - из области "поговорить".
.
А смысл в том, что если будеш отключать мозг и надеется на гугол - то великим программистом не станеш!!! (однажды отключишь, а включить будет уже лень...)
Все начинается с малого, с решения 2+2=, и если понадеешся на гугол, то и это не научишся решать!

Топик стартер между прочим написал "...Решил в познавательных целях перенести алгоритм преобразования двоичного числа в три десятичные цифры ..."

Мое мнение такое - и правильно сделал что решил перевести САМ, и не надеется на гугол! Вот так понемножку привыкнет чтобы мозг был включен ПОСТОЯННО в любых ситуациях.
А там, смотришь, и какой-нибудь новый алгоритм придумает (если, конечно, не будет надеятся на кого то)
alex1_09 вне форума  
Непрочитано 01.12.2012, 01:09  
analitik33
Прописка
 
Регистрация: 11.11.2007
Сообщений: 143
Сказал спасибо: 15
Сказали Спасибо 11 раз(а) в 11 сообщении(ях)
analitik33 на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

=GM=, Спасибо за поправку, но, к сожалению, после аргумента 230 в сотнях ошибка - выдает 0.
Хочу пояснить, что я не технарь, а юрист. МК-дилетантское увлечение.
Спасибо всем, кто ответил по существу! Разбираюсь...
analitik33 вне форума  
Непрочитано 01.12.2012, 11:26  
anakost
Временная регистрация
 
Регистрация: 15.05.2010
Адрес: г. Липецк
Сообщений: 88
Сказал спасибо: 8
Сказали Спасибо 16 раз(а) в 10 сообщении(ях)
anakost на пути к лучшему
По умолчанию Re: Преобразование двоичного числа в двоично-десятичное: от К580 к AVR Mega16

Есть несколько алгоритмов преобразования числа из двоичного в двоично-десятичное. Простое переложение с ассемблера а51 на AVR слишком накладно из-за разных систем команд. Для AVR я пользуюсь таким:

Код:
; **************************************************  ************************
.MACRO BinToBCD				; двоично-десятичное преобразование
; BinToBCD kff, reg; r16 - исходный двоичный байт
; kff - делитель; reg - BCD результат 		
	ldi	@1, -1				;	
$MCR_DGT:	
	inc	@1				;
	subi	r16, @0			;
	brsh	MCR_DGT			;
	subi	r16, -@0			;
.ENDM
; ************* Применение макро BinToBCD **********************************
	BinToBCD 100, r18			; BCD старшая цифра
	BinToBCD 10, r17			; BCD средняя цифра
;						; BCD младшая цифра осталась в r16
; **************************************************  ************************
Это если надо преобразовать один байт, для двухбайтового числа алгоритм тот же, немного сложнее, для 4 байтового BCD числа (9999):

Код:
; **************************************************  ************************
.DEF	BCD_0		= R7	; цифра 2 разряда, BCD формат
.DEF	BCD_1		= R8	; цифра 3 разряда, BCD формат
.DEF	BCD_2		= R9	; цифра 4 разряда, BCD формат
.DEF	VALUEL		= R24	; младший байт суммы замеров
.DEF	VALUEH		= R25	; старший байт суммы замеров

	LDIL	BCD_2, -1
OP_1:
	INC	BCD_2
	SUBI	VALUEL, Low(1000)   
	SBCI	VALUEH, High(1000)   
	BRSH	OP_1   
	SUBI	VALUEL, Low(-1000)   
	SBCI	VALUEH, High(-1000)   
	LDIL	BCD_1, -1   
OP_2:       
	INC	BCD_1   
	SUBI	VALUEL, Low(100)   
	SBCI	VALUEH, High(100)   
	BRSH	OP_2   
	SUBI	VALUEL, -100   
	LDIL	BCD_0, -1   
OP_3:       
	INC	BCD_0   
	SUBI	VALUEL, 10   
	BRSH	OP_3   
	SUBI	VALUEL, -10   
;				; BCD младшая цифра осталась в VALUEL
; **************************************************  ************************
Если нужен полный диаппазон 2х байтового числа, добавить делитель 10000.

Возможно кого то собьет с толку строка
LDIL BCD_0, -1
Нет, новых команд в ассемблере AVR не появилось, это равнозначно
LDI BCD_0, -1
Просто дергал из листинга...

Последний раз редактировалось anakost; 01.12.2012 в 20:08.
anakost вне форума  
Сказали "Спасибо" anakost
Slav.07 (25.06.2018)
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Преобразование числа в строку STM32 Cocox sanstan Embedd С 16 05.11.2016 17:58
Преобразование числа vvkka Микроконтроллеры, АЦП, память и т.д 12 27.12.2011 01:44
преобразование 16bit числа на Си (нужна помощь) Uz_Sleep_Walker Микроконтроллеры, АЦП, память и т.д 4 19.02.2010 15:49
преобразование из двоичного в двоич-десятичное CERGEI1982 Микроконтроллеры, АЦП, память и т.д 0 25.01.2007 15:50
преобразование числа для занесения его в регистр на PIC16F84 CERGEI1982 Микроконтроллеры, АЦП, память и т.д 9 11.01.2007 17:47


Часовой пояс GMT +4, время: 16:39.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot