ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
240467 Топик полностью
maik-vs (24.02.2011 10:04, просмотров: 179) ответил mazur на Хм, я человек адекватный и справедливый. Легко признаю свои ошибки. И не зацикливаюсь на каких-то идеях, как бы они мне не нравились. Если в этих идеях есть ошибки. Конечно же, мне еще расти и расти. Но и у вас я заметил несколько существенных
Ну да. sbiw заменяется на sub/sbc или subi/sbci, те же два такта. cp2i у меня занимают даже пять тактов, там push/pop потому что сравнение с константой и нужен "старший" регистр. Про счётчик против указателя: тут надо оценить, что лучше (быстрее/компактнее/безглючнее, кому что надо). Указатель привлекает автоинкрементом (Y+,Rr и -Y,r) Можно ещё ускорить этот код, если насильно (.org) разместить буферы внутри 256-байтной страницы и работать только с Yl, тогда вся арифметика будет делаться за 1 такт. Ну и про пролог/эпилог. Я обычно выделяю 3-4 регистра (один старший) для прерываний. Их не надо сохранять, т.к. вложенных прерываний нет. Если их не хватает, тогда уже push и pop. Сильно прижмёт - добавлю к ним Y или Z.
Приведенный вами код только для одного случая. Если пакеты всегда одинаковы. А если они разные? Потому я и ввел счетчик байтов в пакете
Это я просто не понял. Код был приведён вами, а не мной, я его только подправил. Чем мой указатель отличается от вашего счётчика? размером только; вы сравниваете счётчик, я сравниваю указатель, разницы в алгоритме никакой, а кому сколько не жалко байтов/тактов пусть каждый оценивает сам.