ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
28 апреля
67371 Топик полностью
AVR (31.08.2006 12:21, просмотров: 1) ответил Bill на Извините мужики, я, пожалуй, тоже встряну.
Влад, ты неправ Для АВР я как раз и выбрал другой алгоритм - с одним счетчиком, аналогичный тому, что ты описываешь. И для ПИК алгоритм с N счетчиками автор выбрал совершенно правильно - и именно по тем причинам, что ты отметил - отсутствие неразрушающего сравнения. А в АВР, в свою очередь, нет команды декремента с пропуском при нуле, но я нашел способ сэкономить такты посредством накопления 8 переносов в регистре и последующей выдачи этого регистра в порт, что максимально приблизило временнЫе затраты на АВР к ПИКовским - 2.125 такта на канал против 2-х. Реализация, приведенная mse в исходном посте, включала в себя условные переходы в каждой канальной итерации, и я просто от них избавился, применив то же накопление переносов. Большой и равноценный регистровый файл в ПИКах - несомненное преимущество по сравнению с АВРским маленьким и неравноценным (старшие регистры, младшие регистры, XYZ, R0), но одновременно в АВР есть и свои преимущества, а у ПИК - свои недостатки. На С вариант для АВР вряд ли сильно отличался бы от АСМ-варианта, т.к. алгоритм максимально ориентирован на особенности архитектуры. То же самое относится и к ПИКу, тем более что ПИК-версия вообще изначально была написана на С, и предельно приспособлена к особенностям его архитектуры соответственно. А оптимальность алгоритмов именно с учетом архитектуры как раз и показывает истинную квалификацию и талант программиста вне зависимости от языка, которым он пользуется, и особенно это относится к МК-программам