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

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

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

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

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

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

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

 
Опции темы
Непрочитано 03.03.2019, 23:15  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

Сообщение от my504 Посмотреть сообщение
Погрешность никакого отношения к разрешающей способности не имеет.
Действительно. Она имеет отношение к здравому смыслу. И за нею нужно обязательно следить при операциях деления и прочих с фиксированной точкой, чреватых дробями. А при плавающей точке - нет такой нужды.
Сообщение от my504 Посмотреть сообщение
Предлагаю засунуть свои амбиции себе в карман.
Вы уже это сделали со своими?
Сообщение от my504 Посмотреть сообщение
Если мои прежние сообщения почитать за академичность
Я не взял в кавычки, считая, что говорил грамотному человеку, который понимает иронию. Хорошо, раз нет - замените "академичность" на "наукообразность".
Реклама:
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 04.03.2019, 05:17  
my504
Прописка
 
Аватар для my504
 
Регистрация: 30.07.2006
Адрес: Фрязино, М.О.
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
my504 на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

Сообщение от akegor Посмотреть сообщение
А при плавающей точке - нет такой нужды.
Если слежение за разрядностью вызывает проблемы, то не следует вообще заниматься МК.
Операция деления в реальных приложениях является крайне редкой, а умножение обычно происходит в единой разрядной сетке. Все это приводит к тому, что нежелание следить за разрядностью путем применения флоатов сильно раздувает код и так же сильно сдувает производительность. Это если в МК нет FPU. А даже если есть FPU, то в общем случае приводит к потере разрешения при равной разрядности вычислений. Последнее справедливо и для случая без FPU.
В сказанном мной нет ничего сложного и академичного. Желающие убедиться в этом, могут самостоятельно изучить вопрос.
Однако скажу, что НА САМОМ ДЕЛЕ ни за какой разрядностью в случае с фикспойнтом "следить" не требуется. Достаточно ВСЕ ОПЕРАНДЫ привести ОДИН РАЗ к единой разрядной сетке фикспойнта - тупо добавить нулей в младших (дробных ) байтах. И далее работать с ОДНОЙ ЕДИНОЙ разрядностью.

Последний раз редактировалось my504; 04.03.2019 в 05:33.
my504 вне форума  
Эти 2 пользователя(ей) сказали Спасибо my504 за это сообщение:
granel (04.03.2019), parovoZZ (06.03.2019)
Непрочитано 04.03.2019, 05:24  
my504
Прописка
 
Аватар для my504
 
Регистрация: 30.07.2006
Адрес: Фрязино, М.О.
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
my504 на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

В догон. Широко распространенное мнение, что умножение, деление, возведение в степень и извлечение корня в плавучке являются экономичными и равными фикспойнту является ошибочным. Все эти действия приводят к неизбежной операции НОРМИРОВАНИЯ флоата, что добавляет расход ресурсов по сравнению с фикспойнтом.

Последний раз редактировалось my504; 04.03.2019 в 10:08.
my504 вне форума  
Сказали "Спасибо" my504
granel (04.03.2019)
Непрочитано 04.03.2019, 07:35  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,861
Сказал спасибо: 2,532
Сказали Спасибо 11,773 раз(а) в 5,897 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

Сообщение от my504 Посмотреть сообщение
приводят к неизбежной операции НОРМИРОВАНИЯ флоата, что добавляет расход ресурсов по сравнению с флоатом.
Несолидно, как-то... Да и
Сообщение от my504 Посмотреть сообщение
И далее работать с ОДНОЙ ЕДИНОЙ разрядностью.
не внушает оптимизма.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 04.03.2019, 10:07  
my504
Прописка
 
Аватар для my504
 
Регистрация: 30.07.2006
Адрес: Фрязино, М.О.
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
my504 на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

Сообщение от akegor Посмотреть сообщение
Несолидно
Что конкретно несолидно?
Сообщение от akegor Посмотреть сообщение
не внушает оптимизма.
Что конкретно не внушает оптимизма?
Потрудитесь изрекать не бессмысленные междометия, а что-нибудь обоснованное...
my504 вне форума  
Непрочитано 04.03.2019, 21:11  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

Сообщение от mimuh64 Посмотреть сообщение
Я бы тоже советовал смотреть ассемблер, затем сначала сделать и сравнить, а не языком трепать... есть реализации как целочисленные, так и с флоат... Как по времени просчета так и по объему кода применяю только Целочисленные... точность одинаковая, просто нужно уметь...
Все правильно. Точность получается не хуже, чем float.
Мне, правда, лень было писать функцию на ассемблере, но я поменял тип переменных на unsigned long и написал свою функцию извлечения корня. Результат на скриншотах.
Миниатюры:
Нажмите на изображение для увеличения
Название: Рисунок1.png
Просмотров: 0
Размер:	236.8 Кб
ID:	139477   Нажмите на изображение для увеличения
Название: Рисунок2.png
Просмотров: 0
Размер:	237.8 Кб
ID:	139478   Нажмите на изображение для увеличения
Название: Рисунок3.png
Просмотров: 0
Размер:	234.5 Кб
ID:	139479  


Последний раз редактировалось МВА; 04.03.2019 в 21:27.
МВА вне форума  
Непрочитано 05.03.2019, 05:50  
my504
Прописка
 
Аватар для my504
 
Регистрация: 30.07.2006
Адрес: Фрязино, М.О.
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
my504 на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

Сообщение от МВА Посмотреть сообщение
Точность получается не хуже, чем float.
ЛУЧШЕ, чем флоат. Примерно в 256 раз.
Извлечение корня легко реализуется алгоритмом последовательных приближений.
Лень переводить в классическую форму алгоритма, приведу ассемблер для PIC24 с комментариями:
Код:
;--------------------------------
; функция извлечения квадратного корня
; W0=SQRT[W1:W0]
;‹editor-fold defaultstate="collapsed" desc="SQRT"›
SQRT:
	mov		#0x8000, W5  ;единица в старшем разряде W5
	clr		W6   ;сбрасываем регистр последовательных приближений
LoopSQRT:
	ior		W6, W5, W6    ; W6=W6|W5
	mul.uu		W6, W6, W2  ; возводим в квадрат [W3:W2]=W6^2
	sub		W0, W2, W4    ;две строки 32-разрядного вычитания
	subb		W1, W3, W4    ;с целью сравнения
	bra		C, $+4     ; если квадрат меньше исходного, пропускаем одну строку
	sub		W6, W5, W6   ; W6=W5-W6 (иначе сбрасываем этот бит) можно xor
	lsr		W5, W5   ; правый логический сдвиг (следующий бит)
	bra		NC, LoopSQRT ;если нет переноса продолжаем цикл
	mov		W6, W0    ; результат в W0
	return
;‹/editor-fold›
;--------------------------------

Последний раз редактировалось my504; 05.03.2019 в 06:47.
my504 вне форума  
Сказали "Спасибо" my504
parovoZZ (06.03.2019)
Непрочитано 05.03.2019, 13:02  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

Видно хреновый из меня программист.
Сегодня поэкспериментировал, в студии. Сравнил две программы, где использованы функции извлечения корня стандартная (double) и моя написанная (unsigned long).
Хоть точность и одинаковая но, если сравнить количество циклов и время выполнения (и это в трех строчках функции).....
Остальное на скриншотах.
Миниатюры:
Нажмите на изображение для увеличения
Название: Рисунок1.png
Просмотров: 0
Размер:	153.8 Кб
ID:	139498   Нажмите на изображение для увеличения
Название: Рисунок2.png
Просмотров: 0
Размер:	147.8 Кб
ID:	139499  

Последний раз редактировалось МВА; 05.03.2019 в 13:13.
МВА вне форума  
Непрочитано 05.03.2019, 13:20  
my504
Прописка
 
Аватар для my504
 
Регистрация: 30.07.2006
Адрес: Фрязино, М.О.
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
my504 на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

Наверное не стоит плодить деление...
Особенно если аппаратного нет. Да и с аппаратным оно не в 1 цикл выполняется.
Алгоритм негодный.
my504 вне форума  
Непрочитано 05.03.2019, 13:34  
МВА
Гражданин KAZUS.RU
 
Регистрация: 15.08.2010
Адрес: Днепр
Сообщений: 842
Сказал спасибо: 74
Сказали Спасибо 199 раз(а) в 174 сообщении(ях)
МВА на пути к лучшему
По умолчанию Re: Амперметр Atmega. Как устаканить??

Я это понял.
Можно, где у меня есть вычисления в float, заменить деления умножением.

Последний раз редактировалось МВА; 05.03.2019 в 13:39.
МВА вне форума  
 

Закладки

Метки
adc, atmega, atmel studio, lm358, вольтамперметр
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Глушилка громкой музыки у соседей VVK Отвлекитесь, эмбеддеры! 355 10.01.2019 20:09
Ностальжи по школе... Ar-Gen-Tum Отвлекитесь, эмбеддеры! 141 27.02.2015 16:10
Читать с закрытыми глазами, чего я не понимаю в этой жизни? e_one Отвлекитесь, эмбеддеры! 1083 15.04.2014 11:57
Гравитационное замедление времени alder Отвлекитесь, эмбеддеры! 775 15.11.2013 16:45
Особенности звучания УМЗЧ с полевыми транзисторами falkonist Аудиотехника 42 22.01.2009 02:05


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


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