Quote (diawest1)
Для начала достаточно знания архитектуры микроконтроллера (пусть это будет ATmega16, неважно) и краткое описание системы команд. А дальше «боевая задача» - загрузка *.hex файл в память МК на конкретном примере ( кнопочки там разные, «галочки» и т.п.) А программирование и отладка МК – это раздел не для начинающих с нуля. Он проходит большой отдельной темой.
Добрый день, diawest1!
Сдается мне, что с "боевой задачей" загрузки hex-файла справится и ребенок, а "архитектура микроконтроллера" и "система комманд" - задачи достаточно сложные.
Микроконтроллер, как некая единица в электронике, славен тем, что "с паяльником" там все сделал производитель, и особенно добавить нечего, а все, что надо сделать, это написать и отладить программу.
Если говорить о "микроконтроллере с нуля", то удобный подход к программированию в использовании "графического программирования". Я плохо знаю такие программы для Windows, но думаю, что они есть, а в Linux пример такого программирования - KTechlab. Если оставить на "потом" все удобные и полезные встроенные устройства микроконтроллера: АЦП, USART, RF-модули и т.д., то доступными останутся простые и ясные операции - установить вывод в высокое состояние, установить в низкое состояние. Начав с графического программирования этих операций, а их можно проверить в среде программирования с программным отладчиком, или использовать такие хорошие программы, как Proteus, можно перейти к написанию кода, скажем, на языке высокого уровня - Си или Basic. Этого многим будет достаточно. Но, если будет желание, можно заняться и ассемблером.
После этого можно спаять любой простейший программатор и проверить соответствие полученного за компьютером реальности. Если между виртуальным и реальным миром обнаружатся различия, то выявление причин этого даст необходимый опыт для того, чтобы перейти к использованию встроенных АЦП, USART и т.д., к связыванию работы микроконтроллера с дисплеем и клавиатурой. То есть, к полномасштабной работе с контроллером.
Проблемы с микроконтроллерами, мне кажется, в основном в части программирования. Такие среды программирования как MPLAB и AVRStudio дают все необходимое, чтобы освоить программирование и отладить программу. Сложности написания кода программы зависят во многом от языка программирования. Поэтому, чтобы не начинать работу с контроллером с трудностей, определяемых особенностями ассемблера, графическое построение программы самый разумный путь для начинающих.