Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Пт апр 19, 2024 02:57:04

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7597 ]     ... , , , 303, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс май 14, 2017 16:18:34 
Встал на лапы

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03
Сообщений: 106
Откуда: Гродно, BY
Рейтинг сообщения: 0
Какая разница "Двоичный, десятичный, натуральный", если легко масштабируется.
А почему логарифм не имеет смысла для целых чисел?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс май 14, 2017 18:42:32 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14056
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Ассемблер не СИ и не какой другой "более высокоуровневый" язык - здесь не так легко формулы высшей математики применять - надо до уровня примитива "единичек-ноликов" опускаться или спецалгоритмы жестко привязанные к конкретной задачке применять.
Особо ежли имеем дело с ограниченными ресурсами МК в отношении объемов памяти.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вс май 14, 2017 21:23:38 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
расчет логарифма 16 бит на асме ?

может пригодится
в примерах Алгоритм Билдера есть библиотека Геннадия Кабардина. Cодержит:
- пример реализации алгоритмов вычисления натурального логарифма
http://algrom.net/lib-r.html
Цитата:
Состав пакета:
1) Каталог «Stack_machine» содержит файлы с модулями, обеспечивающим работу с вещественными числами в среде стековой машины, и программу «fish.alp», в которой показан пример реализаций функций Ln и Exp.
2) Файл «описание_Stack_machine.doc» содержит описание функций для работы с вещественными числами и в среде стековой машины.
3) Каталог «Ln_Exp» модель реализации функций Ln и Exp в Delphi, которая переносится в программу «fish.alp».
4) Файл « Из Википедии.doc» содержит алгоритм нахождения Ln для любого целого положительного числа.
5) Программа «Test3Float.exe» позволяет преобразовать вещественное число из шестнадцатеричного представления в десятичное.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 15, 2017 09:02:05 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5592
Откуда: Minsk
Рейтинг сообщения: 0
trofim2 писал(а):
А почему логарифм не имеет смысла для целых чисел?

Да потому что и для целых чисел логарифм будет вещественным. Точнее, не будет никаким, потому что если, к примеру, в Дельфи попытаемся вычислить ln(n), где n - целое, то компилятор выдаст ошибку - несоответствие типов. Или же автоматически приведет тип int к extended. Ну нет в библиотеке логарифмов от целых. Например, log2 (7) - сколько будет ? А log2 (7.0) - пожалуйста. Ну а "масштабирование" для других оснований - это в чистом виде плавающая арифметика.

_________________
Изображение


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 15, 2017 09:42:44 
Встал на лапы

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03
Сообщений: 106
Откуда: Гродно, BY
Рейтинг сообщения: 0
Согласен, неверно выразился.
Имел ввиду число с фиксированной точкой типа 1.15 в диапазоне от 1 до 2 (почти), результат для LOG2 в диапазоне от 0 до 1.


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 15, 2017 12:10:54 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5592
Откуда: Minsk
Рейтинг сообщения: 0
Опять же непонятен формат представления аргумента и результата. Покажи на паре примеров - что на входе и что хочется на выходе. Чувствуется, что число разных значений будет небольшим и сведется к кратенькой таблице, без всяких алгоритмов и п/п . Какая точность нужна? Хотя раз речь о 2 байтах - какая уж там точность... И результат не от 0, а от 0,20163 .
Для дела надо или для баловства (зачета) ? :)

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 15, 2017 12:24:38 
Встал на лапы

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03
Сообщений: 106
Откуда: Гродно, BY
Рейтинг сообщения: 0
Аргумент от $8000 до $FFFF, на выходе логарифм. Доработка милливольтметра для непосредственного отсчета в дБ.
Кратенькая таблица на получится, а после последнего зачета прошло более 40 лет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 15, 2017 13:29:23 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2694
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Есть такая наука под названием Вычислительные методы. Сложные математические операции заменяются более простыми формулами. С помощью итераций приближаешься к ответу, чем их больше, тем точнее ответ. Наверняка там и для логарифма есть.

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 15, 2017 13:34:29 
Встал на лапы

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03
Сообщений: 106
Откуда: Гродно, BY
Рейтинг сообщения: 0
Этим и занимаюсь.
Есть такая книжка "Вычисление элементарных функций в ЭКВМ", вроде получается неплохо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 15, 2017 20:13:56 
Открыл глаза

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 61
Рейтинг сообщения: 0
Какая точность нужна? Хотя раз речь о 2 байтах - какая уж там точность.

Ежели писать на нормальном макроассемблере, думаю, без труда получите требуемую точность.
Вот пример.
Логарифм вызывается одной командой. Аргумент и результат логарифма - двухбайтные переменные Точность - 0,5 %, диапазон - в 64 раза (от 1024 до 64000 с копейками). Думаю, без проблем можно получить и большую точность, скажем, 0,1 %, только нужен доступ к соответствующей расчётной программе.
Думаю, в основном, ответы по теме логарифма не связаны с профессионалами, пишущими на макроассемблере.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн май 15, 2017 20:54:51 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5592
Откуда: Minsk
Рейтинг сообщения: 0
Давно такого потока сознания на форуме не наблюдал... Особенно впечатлило :
Цитата:
только нужен доступ к соответствующей расчётной программе.

Так вроде ТС и ищет эту "соответствующую расчётную программу"
Или:
Цитата:
Логарифм вызывается одной командой.

я даже подозреваю, эта команда CALL - вызов соответствующей подпрограммы. Вот и выдал бы человек, учитывая его космических высот квалификацию, текст проги - на посрамление нам, неразумным.
trofim2 - $8000 - это 1, $FFFF - это 2 ? Логарифм $0000 ... $FFFF - это 0..1 ?
Согласен с Z_h_e : таблица на несколько опорных точек, в промежутках - апроксимация. И насколько я понял, тут нужен не логарифм, а антилогарифм: для заданного отсчета в дБ ищем точку, куда его поместить на линейной шкале.

_________________
Изображение


Последний раз редактировалось Jack_A Вт май 16, 2017 09:08:08, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 16, 2017 06:37:49 
Встал на лапы

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03
Сообщений: 106
Откуда: Гродно, BY
Рейтинг сообщения: 0
Логарифм получил с достаточной, для меня, точностью. Разбираюсь с масштабированием.
Где то так:


; input ah:al = $8000 .. $FFFF
; out ah:al = 0 .. $3FFF


Log_2:
pushw Z
pushw X
pushw B
push cl
ldiw Z,(TablLog2*2)
ldiw X,(1<<15)
clr rl
clr rh
ldi cl,16
lgrt_a: movw bl,xl
ldi Tmp,17
sub Tmp,cl
lgrt_b: lsrw B
djnz Tmp,lgrt_b
addw X,B
brcs lgrt_e
cpw X,A
brcs lgrt_c
lgrt_e: subw X,B
adiw zl,2
rjmp lgrt_d
lgrt_c:
lpmw B,Z+
addw R,B
lgrt_d: djnz cl,lgrt_a
movw al,rl
pop cl
popw B
popw X
popw Z
ret


TablLog2:
.dw 9583,5274,2784,1433 ;16383*Lg(1+(1/2)^^(i+1))/lg(2) i=0..15
.dw 727,366,184,92
.dw 46,23,12,6
.dw 3,1,1,0


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 16, 2017 08:58:31 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5592
Откуда: Minsk
Рейтинг сообщения: 0
Что-то не могу понять - какого МК это ассемблер и что он делает в теме про AVR?
Цитата:
Логарифм получил с достаточной, для меня, точностью.

Кстати, точность -- по заявлению авторов -- или алгоритм откомпилирован и проверен в симуляторе, подтвердив заявленную точность ?
Ну, успехов, земляк :)
Прибор с цифровым отсчетом ? Ну тогда точно нужен логарифм, а не анти- . Признаю.
К слову: код оформлен ужасно, точнее, никак не оформлен, потому читать его захочет только очень мазохист. :(

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 16, 2017 09:29:49 
Встал на лапы

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03
Сообщений: 106
Откуда: Гродно, BY
Рейтинг сообщения: 0
Табуляция игнорируется при вставке
Код:

; input ah:al = $8000 .. $FFFF
;  out ah:al = 0 .. $3FFF


Log_2:
   pushw Z
   pushw X
   pushw B
   push cl
   ldiw Z,(TablLog2*2)
   ldiw X,(1<<15)      
   clr rl
   clr rh
   ldi cl,16                                                
lgrt_a:   movw bl,xl             
   ldi Tmp,17
   sub Tmp,cl
lgrt_b:   lsrw B            
   djnz Tmp,lgrt_b      
   addw X,B
   brcs lgrt_e
   cpw X,A
   brcs lgrt_c
lgrt_e:   subw X,B
   adiw zl,2
   rjmp lgrt_d      
lgrt_c:            
   lpmw B,Z+
   addw R,B
lgrt_d:   djnz cl,lgrt_a      
   movw al,rl
   pop cl
   popw B
   popw X
   popw Z
   ret


TablLog2:
   .dw 4791,2637,1392,716   ;8191*Lg(1+(1/2)^^(i+1))/lg(2)   i=0..15
   .dw 364,183,92,46
   .dw 23,12,6,3
   .dw 1,1,0,0



;   .dw 9583,5274,2784,1433   ;16383*Lg(1+(1/2)^^(i+1))/lg(2)   i=0..15
;   .dw 727,366,184,92
;   .dw 46,23,12,6
;   .dw 3,1,1,0




Так лучше?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 16, 2017 11:06:35 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5592
Откуда: Minsk
Рейтинг сообщения: 0
Ну дык совсем друго дело !
И раскрой гос.тайну: для какого МК этот код ?

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 16, 2017 11:30:07 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14056
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Какая-то смесь команд с макросами...
:dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 16, 2017 12:59:52 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
старинные Ченовские (тот что FatFs сделал) AVR макросы:

Код:
.................................
.def   AL   = r16
.def   AH   = r17
.def   BL   = r18
.def   BH   = r19
.def   CL   = r20
.def   CH   = r21
.def   DL   = r22
.def   DH   = r23
.def   EL   = r24
.def   EH   = r25
;----------;
; Push/Pop register pair
;
;    pushw   Z

.macro   pushw
   push   @0H
   push   @0L
.endm

.macro   popw
   pop   @0L
   pop   @0H
.endm
..............................

видать x86 ассемблер оказал влияние


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 16, 2017 13:56:37 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14056
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
А
djnz r,expr
?
это ж от 51-й
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 16, 2017 15:58:23 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
А
djnz r,expr
?

никто не мешает и на AVR изобразить:
Код:
.macro   djnz
   dec   @0
   brne   @1
.endm

Код:
djnz cl,lgrt_a
=
dec cl
brne lgrt_a


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт май 16, 2017 16:26:05 
Встал на лапы

Карма: 3
Рейтинг сообщений: 7
Зарегистрирован: Чт сен 10, 2015 06:59:03
Сообщений: 106
Откуда: Гродно, BY
Рейтинг сообщения: 0
В макросах pushw и popw поменять порядок, сохранять в стеке сначала младший, потом старший.
Это позволяет сохраняя регистровую пару с адресом, по ret выходить в нужную точку.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7597 ]     ... , , , 303, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y