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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 12.02.2018, 23:11  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию AVR, вычитание двухбайтных чисел.

Здравствуйте.

Что-то не могу придумать как вычитать 2-х байтные числа, чтобы получать модуль результата.
Т.е. в случае отрицательного ответа, чтоб не FFFE какое-нибудь получалось, а - 1 (единица).

Банальное вычитание:

PHP код:
sub        bal_l,    temp                            
 sbc        bal_h
,    temp2 

, при положительном ответе меня устраивает этот код, а при отрицательном, там F1ED всякие, как бы это перевести в 3600 десятичное ?

---

У меня числа максимум 20 000 будут.
Тупо поставить условие, если результать больше 32767, то вычитать полученное из FFFF ?
Как то не красиво получится, может быть есть красивые решения ?
Реклама:

Последний раз редактировалось putmannn; 12.02.2018 в 23:17.
putmannn вне форума  
Непрочитано 12.02.2018, 23:33  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,792
Сказал спасибо: 2,912
Сказали Спасибо 3,120 раз(а) в 2,111 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: AVR, вычитание двухбайтных чисел.

А что такое "минус единица", как не 0xFFFF?

Отделите мухи и котлеты (вычитание и взятие модуля).
Код:
	brpl	bal_h,7
	rjmp	positive_smth
	com	bal_l
	com	bal_h
	adiw	bal_l,0x01
positive_smth:
__________________
Экзорцист 40-го уровня.

Последний раз редактировалось ForcePoint; 12.02.2018 в 23:41.
ForcePoint вне форума  
Сказали "Спасибо" ForcePoint
putmannn (12.02.2018)
Непрочитано 12.02.2018, 23:51  
putmannn
Гражданин KAZUS.RU
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 996
Сказал спасибо: 339
Сказали Спасибо 94 раз(а) в 91 сообщении(ях)
putmannn на пути к лучшему
По умолчанию Re: AVR, вычитание двухбайтных чисел.

ForcePoint, спасибо, получилось.
Только не brpl bal_h,7, а brpl positive_smth.
И adiw работает только с 4-мя верхними парами регистров, а они под другие нужды уже заняты.
Сделал +1 своим способом.

Последний раз редактировалось putmannn; 13.02.2018 в 00:19.
putmannn вне форума  
Непрочитано 13.02.2018, 07:30  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,246
Сказал спасибо: 11,165
Сказали Спасибо 3,854 раз(а) в 2,925 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: AVR, вычитание двухбайтных чисел.

putmannn, а сравнить перед вычитанием и махнуть местами если вычитаемое больше? Автоматом получится модуль разности. Собственно в примерах из численных методов даже где-то было…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
putmannn (13.02.2018)
Непрочитано 13.02.2018, 12:53  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,106
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: AVR, вычитание двухбайтных чисел.

Сообщение от putmannn Посмотреть сообщение
ForcePoint, спасибо, получилось.
Что значит ПОЛУЧИЛОСЬ?
Попробовал (не так - "спробывал") - получилось!

Вы наверное знаете про обучение, образование, науку? Да? Тогда, может быть, вам стоит найти учебник по ассемблеру, по реализации арифметики? А вдруг корень извлечь понадобится? Вы ведь только что, в теме про wd, сокрушались качеством советов с интернета...
makakus вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Литература по микроконтроллерам (AVR, PIC, ПЛИС и т.д.). Сборка книг - (256 книг+ 27 CD c примерами из книг) [обновление 2011, PDF, DJVU] yurinform Микроконтроллеры, АЦП, память и т.д 5 05.07.2011 19:00
Архив проектов на AVR fmssp Proteus, KiCAD и другие ECAD 4 25.10.2010 17:14
Проблема деления целых чисел с заданной точностью на AVR KiberBOSS Микроконтроллеры, АЦП, память и т.д 8 16.02.2006 16:35


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


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