0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
1 | |
64-х битная арифметика03.05.2011, 01:12. Показов 13854. Ответов 16
Метки нет (Все метки)
Кто подскажет библиотеки или алгоритмя умножения/деления 64-битных чисел?
Желательно на Си. А то при работе с 32 битами размер флеша - 2кБ. При применении uint64_t - резко возрастает до 7кБ. А у меня всего 8кБ, а еще надо интерфейс программить. 32 бита не хватает. Уже пробовал туда-сюда сдвигать, типа незначащие цифры убирать, не выходит. Аналогично с ftoot. Или смириться? Хочу построить CL-meter, нужно для вычисления малых изменений частоты генератора.
0
|
03.05.2011, 01:12 | |
Ответы с готовыми решениями:
16
64-х битная система думает, что она 32-х битная 64 битная архитектура 64 битная не стартует 8-битная музыка |
SWK
|
|
03.05.2011, 09:53 | 2 |
Я несколько лет назад повторил готовую конструкцию на AT89C2051 и LM311. Не знаю, какая там арифметика, но меряет достаточно точно, от долей пикофарады до долей микрофарады, и индуктивности от долей микрогенри. Меня вполне устраивает...
[1.15 Мб] |
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
03.05.2011, 10:50 | 3 |
Готовые схемы - это хорошо. Да вот с повторением возникают проблемы - нужен программатор то ли для PIC, то ли еще для чего-то, плюс нужно достать точные конденсаторы именно как на схеме, то ли дисплей другой.
Я и так с трудом за 2 месяца прочесывания двух радиорынков отыскал кондеры К71-7В 80-х годов выпуска на 0.01мкФ и 0.026875мкФ 0.5% Да и в исходниках поковыряться хочется.
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
03.05.2011, 12:00 | 4 |
это ж какая это должна быть точность... муть какая-то.
0
|
SWK
|
|
03.05.2011, 12:07 | 5 |
Сообщение от kytikot
Я делал до этого также аналогичный измеритель на PIC, с автокалибровкой через реле. Но там был ЖК индикатор с последовательным интерфейсом, которых у нас не найдешь, а найденный вроде аналог от какого-то китайского телефона упорно не хотел работать с той схемой. Ну а с символьными LCD - проблем обычно нет, хоть и дорогие они у нас (до сих пор от 15 до 30 баксов). Конденсаторы там обычно на 1000 пф, на первое время достаточно поставить с точностью процентов 5, потом, со временем, подобрать точнее. Дроссель также часто используется достаточно распространенный - 100, 180, 200 мкгн. Тоже можно со временем заменить катушкой с подстроечником, и настроить точнее. При неточно подобранных деталях погрешность растет при измерении больших номиналов (порядка тысяч пик и более), где обычно большой точности не требуется, точность же от единиц пик до сотен получается вполне приемлемая даже при большом отклонении калибровочных. Лучше, чем у китайских мультиметров, однозначно. Те при измерении емкостей менее 1000 пф врут безбожно, а меньше сотни пик - вообще в разы. Мне же надо было мерять от единиц до сотни пик - накопилось много керамических, без маркировки или с цветными точками. В основном там измерение частоты, а его принципы давно отработаны в десятках конструкций частотомеров. Ну и вычисление результата потом по отклонению измеренной частоты от калибровочной. Там простая математика. |
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
03.05.2011, 12:21 | 6 |
Насчет точности - давай оценим. Совершенно приблизительно.
Пусть генератор с прецизионным кондером у нас будет, ну скажем с RC-цепочкой 1кОм и 1нФ. Частота у него будет 1/RC = 1МГц. (формула без поправочных коэффициентов, мы считаем приблизитльно, порядок туда-сюда). Если добавить измеряемый кондер в 1пФ, то частота будет 1/(R*(C0+C1) = 999001Гц То есть нужно ловить изменение частоты на 1Гц !!! При эталоне 1МГц. То есть одну миллионную часть. Если делать измерение не одного периода, а нескольких периодов за эталонную единицу времени - то 32-разрядной точности уже не хватает. У меня минимум измерений (оценочно, в симуляторе) на 32-разрядах получается порядка 10пФ. И то я еще не пробовал имитировать измерение индуктивности, а там квадратичная зависимость от частоты, а не линейная, там еще раз уможать надо. Либо нужно как-то еще извратиться и подбирать алгоритм измерения.
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
03.05.2011, 12:25 | 7 |
Кстати, вопрос немного в сторону - встречал схемы с генератором на компараторе и на триггере Шмитта. Какой из них предпочтительней?
Например, на РадиоКоте парень делает CLR-meter 2313 именно на триггере Шмитта. P.S. Мне в принципе нужно более индуктивности мерять, чем кондеры. Хочу заняться импульсными блоками питания на TOP-ах.
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
03.05.2011, 12:48 | 8 |
А делить и умножать надо на константу? Тогда можно единоразово пересчитать на сдвиги и сложения.
0
|
0 / 0 / 0
Регистрация: 06.02.2010
Сообщений: 262
|
|
03.05.2011, 12:55 | 9 |
Ну уж если делать прибор, то вот такой ESR/R/L/C/F meter http://vrtp.ru/index.php?showtopys=16397
Здесь light версия прибора с видео http://vrtp.ru/index.php?showtopys=15087
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
03.05.2011, 13:15 | 10 |
Этот - на PIC, а их я готовить не умею. И дисплей искать надо.
Я хочу сделать на AtMiko8 и WS1602.
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
03.05.2011, 13:21 | 11 |
Сообщение от Stiit.mi
Вернее, так. На самом деле на константу, которая является некой функцией от прицизионной емкости. Однако, при калибровке прибора, программно, эта константа может быть перезаписана в ЕЕПРОМ с другим значением... Вдобавок, я пока представляю, как умножить на константу, разложив ее по степеням двойки - чтобы добиться нужного результата сдвигом и сложением. Но как то же самое сделать с делением? Подскажи?
0
|
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,142
|
|
03.05.2011, 13:29 | 12 |
Я в процессе очень вялого написания библиотеки до N бит. Беззнаковое деление с остатком уже есть. Но на ассемблере.
0
|
0 / 0 / 0
Регистрация: 26.04.2010
Сообщений: 1,445
|
|
03.05.2011, 13:48 | 13 |
Сообщение от kytikot
а точно так же. Вместо того, чтобы поделить на 3, просто умножаешь на 0.333333. Точно так же раскладываешь дробь на степени двойки и делаешь умножение. Где-то видел онлайновый калькулятор наподобие такого: http://www.piclist.com/techref/piclist/ ... divmul.htm
0
|
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 405
|
|
03.05.2011, 13:59 | 14 |
Да, avr-gcc с 64-битными переменными работает очень неэффективно - нативная поддержка для них в нём не реализованна, поэтому он извращается с обобщенными алгоритмами незаточенными под AVR. В IAR-е работа с int64 гораздо лучше реализованна...
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
03.05.2011, 15:20 | 15 |
Сообщение от kytikot
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 222
|
|
03.05.2011, 16:42 | 16 |
kytikot Можно взять умножение/деление чисел до 80 разрядов здесь
http://rodyokot.ru/forum/viewt... 71#p577771
0
|
0 / 0 / 1
Регистрация: 27.01.2010
Сообщений: 3,435
|
|
03.05.2011, 16:59 | 17 |
Сообщение от okt
Либо алгоритм пересмотрю.
0
|
03.05.2011, 16:59 | |
03.05.2011, 16:59 | |
Помогаю со студенческими работами здесь
17
24-х битная математика. битная обработка 32х битная чексумма 32-битная ОС против 64-битной Monogame 32-битная винда Бывает ли Миранда 64-битная? 64х битная TSS 64 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |