Не знаю проскакивала данная книга на форуме или нет. если нет, то хочу порекомендовать. Если у вас возникло желание изучить программирование AVR действительно глубоко и серьезно, то данная книга есть лучшее из того что я держал в руках по этой теме. Даже многим известный Di Halt крайне лестно отзывается об этой книге. Ревич Ю.В Практическое программирование микроконтроллеров Atmel AVR на языке ассемблера. По данной ссылке на официальной странице автора можно даже скачать электронную версию книги. Я не стану особо писать про данную книгу, скажу только то что автор знает своё дело и достаточно доступно все рассказывает, ему удалось выдержать стиль где вроде и подробно и без лишнего. Так же автор делится тонкостями которые при первом чтении лично я воспринимал поверхностно, но понимал что когда придет время решить такую задачу эти замечания и пояснения автора будут бесценны и к ним обязательно вернусь. Внимание: Книга НЕ подходит НОВИЧКАМ, эта книга рассчитана на уровень когда новичок оторвался от земли и начал двигаться в сторону средничка, вот эта книга может придать колоссальный буст этому движению, но человек который только только пишет digitalWrite() и не имеющий хотя бы понимания что такой Ассемблер, эту книгу закроет через пару страниц. P.s. Если у вас возник вопрос, для чего Ассемблер в век когда МК можно программировать уже на JavaScript. то значит ваше время еще не пришло ...
Я знаю ответ на этот вопрос и моё время явно не придёт Когда мощности великой Ардуино не хватает, когда не хватает возможностей великого языка Ардуино, есть два пути: взять более мощный процессор или изучать Ассемблер. Ответ зависит от того, кто вы есть по профессии и сколько стоит ваше время.
Бывают задачи, когда взять другой процессор нельзя. Впрочем, лезть в ассемблер тоже может оказаться не сильно полезным - сочинить код лучше компилятора тоже нужно еще суметь.
Есть только один путь -- взять более мощный процессор. В контексте AVR, грамотный код на 'C/C++' по производительности не будет уступать грамотному коду на Assembler'е. Только вот трудозатраты при использовании Assembler'а могут оказаться выше, чем при 'C/C++'. Честно говоря, считал свой уровень выше среднего, но вот это: заставило меня сомневаться в своём уровне -- что за язык Arduino? Первый раз о таком слышу.
Знание AVRASM может понадобиться при отладке. Atmel на ассемблере не программировал, а Microchip PIC довелось. Такие известные любительские конструкции, как частотомер Петера Халиски на PIC16F84 (1 x 8-bit таймер, 64 RAM, 1кБ Flash) на Си написать сложнее.
мне авр асм потребовался два раза в жизни- при разработке контроллерa быстрой шины Color Kinetics, а второй раз- для контроллера пртокола nrz для светодиодов ws2812.
Статьи Ди Халта не плохи так же по асму) Время от времени перечитываю их, бывает что в ступор вхожу от асма. т.к. редко пишу на нем.
Не знаю, начинал программировать контроллеры именно на ассемблере и до сих пор люблю этот язык нежной любовью.))