ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
1073737 Топик полностью
Tpoeшник (02.02.2021 18:35, просмотров: 597) ответил Adept на ну и где же он? (если конечно не разворачивать цикл в линию)
Сразу говорю: вариант так себе, но почему нет!? 

Я подумал о том что если бы избавиться от сравнения совсем, то можно будет ускорить поиск. Но как тогда типа искать большее? Что если аппаратно!? добиться такого положения что если текущее значение больше чем значение максимума - прерывание. В прерывании относительно медленно расстаскиваем все и снова ищем. В самом прерывании проверка на 0xff.

AVR64DA28. Что если АЦП процессора запрограммировать для работы с Window compare!? Подавать новые байты в WINHT(младший разряд, но можно и 16бит массивы перебирать). И настроить Window Comparator так чтоб если новый элемент массива был больше чем значение в регистре RES - вызывается прерывание. В прерывании обновляем на новое (большее) значение RES.

Тогда скорость поиска будет равна скорости переноса нового значения массива в WINHT

К сож. в RES нельзя писать, но у АЦП есть вход от ЦАП. То есть загрузка нового максимального в RES через ЦАП.

ХЗ как бу работать, но с регистром сравнения таймера я экспериментировал. К сож. там компаратор только сравнивает на равенство.