Страница 1 из 1
Что за алгоритм?
Добавлено: Пт авг 11, 2006 21:20:40
kolyay
Ребята, кто в асме хорошо разбирается, подскажите? Это какой то фильтр, но хитрый. Сначала некое число(16-разрядное) складывется 8 раз в 32-х разрядную переменную r16,r17,r18,r19. Потом как обычно три сдвига вправо каждого регистра. А вот потом ещё пять сдвигов только младших двух регистров r16,r17. Что это за фильтр такой?
Добавлено: Пт авг 11, 2006 21:31:53
kolyay
Это получается если вначале переменная была меньше 0х20, то результат будет "0". Так что ли?
Добавлено: Чт авг 17, 2006 21:45:10
Старый ржавый электронщик
1. нормально опиши проблему (с примером кода)
2. регистрируйся
3. темы называй грамотно
Добавлено: Чт авг 17, 2006 23:32:20
ksp4
Такая наивная гипотеза: если число сложить восемь раз с собой,
а потом сдвинуть на 3 вправо, то при условии, если есть место
для старших разрядов-переполений (а так оно по описанию kolyay), по идее должно получится оно
само. Или все не так просто?
Добавлено: Вс сен 17, 2006 15:56:02
kolyay_
ksp4 писал(а):Такая наивная гипотеза: если число сложить восемь раз с собой,
а потом сдвинуть на 3 вправо, то при условии, если есть место
для старших разрядов-переполений (а так оно по описанию kolyay), по идее должно получится оно
само. Или все не так просто?
Да, почти так только это число изначально есть результат преобразования, сделанного при помощи тамера1 и аналог.компаратора. По этому каждый раз (из

будет небольшая разница.(если конечно нет резких изменений сигнала). Преобразования делаются постоянно с частотой около 120гц. Это импульсный металлоискатель.
Добавлено: Пн сен 18, 2006 05:38:49
Alexey_B
До конца не понимаю всего алгоритма, но сложить 8 чисел, а потом три сдвига вправо, даст простое усреденение по 8 точкам. Ещё пять сдвигов предназначены думаю для того чтоб загнать переменную обратно в 16 разрядный формат.