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

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

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

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

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

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

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

 
Опции темы

AVR, вычитание двухбайтных чисел.

Непрочитано 12.02.2018, 23:11  
putmannn
Почётный гражданин KAZUS.RUN
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 1,040
Сказал спасибо: 368
Сказали Спасибо 98 раз(а) в 93 сообщении(ях)
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.RUN
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,458
Сказал спасибо: 3,227
Сказали Спасибо 3,511 раз(а) в 2,392 сообщении(ях)
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.RUN
 
Аватар для putmannn
 
Регистрация: 01.02.2011
Адрес: г. Долгопрудный
Сообщений: 1,040
Сказал спасибо: 368
Сказали Спасибо 98 раз(а) в 93 сообщении(ях)
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
Адрес: Москва СЗАО/МО
Сообщений: 12,282
Сказал спасибо: 11,860
Сказали Спасибо 4,159 раз(а) в 3,177 сообщении(ях)
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.RUN
 
Регистрация: 08.10.2007
Сообщений: 2,758
Сказал спасибо: 1,100
Сказали Спасибо 1,033 раз(а) в 568 сообщении(ях)
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, время: 07:39.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.