www.avr-asm-tutorial.net/avr_en/beginner/COMMANDS.html
IJMP, 2 такта, да. Купился на википедийное «большая часть команд исполняется за 1 такт»
Ардуина, судя по SDK, тоже весь порт перезаписывает. Кстати, а как писать тогда на одну ногу?
Судя по коду и числу проверок в SDK — он рассчитан на не очень опытных программистов. Я с трудом представляю ситуацию, когда мы не знаем, для чего используем ноги контроллера.
Дисклаймер: avr в частности и ассемблер вообще знаю только теоритически.
Асмовый код:
loop: out porta, 0;
nop // для выравнивания времи уровней
out port, 1;
jmp loop;
И того — 4 процессорные операции, 4 такта (надеюсь)
При частоте 16MHz имеем частоту колебаний 4MHz.
Вам нужна частота 1MHz, соответственно добиваете код nop'ами или полной нагрузкой (условиями, расчётами)
Что-то у меня возникли сомнения в адекватности arduino sdk
вывод значения в порт на avr asm:
out porta, [value];
+ нужна надстройка для изменения одного бита на порте
Чёрт, и у меня в посте тоже https://lh3.googleusercontent.com/L3KV_rycPnV31R_Bflrv4DoAtXD8QBki_lVnTXXMR628ACRx8FqF6RqOu43tjxierx3UnYiQIADLvGJWJGFgVlvWhLDjdm0WQETRcgyqNadigdgM_S4
У вас хабрапарсер ссылки на изображения захавал:
img=«https://lh3.googleusercontent.com/L3KV_rycPnV31R_Bflrv4DoAtXD8QBki_lVnTXXMR628ACRx8FqF6RqOu43tjxierx3UnYiQIADLvGJWJGFgVlvWhLDjdm0WQETRcgyqNadigdgM_S4»
Один из плагинов миранды создавал в контестном меню подменю «передать», в котором был контакт-лист, разбитый по группам. Смотрелось немного странно, но вполне удобно.
Подскажите, как им это не позволить? Нет, я серьёзно. Хоть один способ, который работал бы не гипотетически и оставался хотя бы формально в рамках закона.
Просто я к тому, что иногда существуют такие проекты, когда проще переписать половину, чем внести какое-либо незначительное изменение. Хотя опять же, как показывает практика — это бесполезно, если в разработке участвуют авторы предыдущей версии…
6) Размер проекта превышает 10000 кода, без учета инструментов и фреймворков. Даже этого будет много чтобы оценить, стоит ли овчинка выделки.
Когда файл старой версии класса занимает 114кб вообще без комментов, а новая версия с минимальными комментами — 14 кб и делает тоже самое, но без багов + ещё чуть-чуть — начинаешь очень сильно задумываться о необходимости переписывания всего, что попадает под руку в этом проекте…
IJMP, 2 такта, да. Купился на википедийное «большая часть команд исполняется за 1 такт»
Ардуина, судя по SDK, тоже весь порт перезаписывает. Кстати, а как писать тогда на одну ногу?
Дисклаймер: avr в частности и ассемблер вообще знаю только теоритически.
Асмовый код:
loop: out porta, 0;
nop // для выравнивания времи уровней
out port, 1;
jmp loop;
И того — 4 процессорные операции, 4 такта (надеюсь)
При частоте 16MHz имеем частоту колебаний 4MHz.
Вам нужна частота 1MHz, соответственно добиваете код nop'ами или полной нагрузкой (условиями, расчётами)
вывод значения в порт на avr asm:
out porta, [value];
+ нужна надстройка для изменения одного бита на порте
Исходники из arduino sdk:
pastebin.com/PThfqLGu
Отсюда мы имеем либо кривые решения в Arduino sdk, либо забивание гвоздей микроскопом (или рассматривание бактерий в гвоздь, тут я не знаю)
pastebin.com/RC28V8ka
https://lh3.googleusercontent.com/L3KV_rycPnV31R_Bflrv4DoAtXD8QBki_lVnTXXMR628ACRx8FqF6RqOu43tjxierx3UnYiQIADLvGJWJGFgVlvWhLDjdm0WQETRcgyqNadigdgM_S4img=«https://lh3.googleusercontent.com/L3KV_rycPnV31R_Bflrv4DoAtXD8QBki_lVnTXXMR628ACRx8FqF6RqOu43tjxierx3UnYiQIADLvGJWJGFgVlvWhLDjdm0WQETRcgyqNadigdgM_S4»
Но поддержка у них там оригинальная, да.
Когда файл старой версии класса занимает 114кб вообще без комментов, а новая версия с минимальными комментами — 14 кб и делает тоже самое, но без багов + ещё чуть-чуть — начинаешь очень сильно задумываться о необходимости переписывания всего, что попадает под руку в этом проекте…