ATmega128 – мой первый микроконтроллер
С этим замечательным устройством этой осенью меня познакомил институт. Рассказали о данном устройстве скудно, к концу учёбы (5ый курс) предполагается самостоятельное изучение материала. Благо гуглить все научились ещё в школе. Но каково было моё удивление, когда поисковики упорно скрывали от меня даже изображение самого устройства (ориентироваться на внешний вид вначале всегда проще).

Изображение из методических указаний.
Для самостоятельного чтения преподаватель скинул описание самого контроллера и рассказал о книжке Джон Мортон — Микроконтроллеры AVR водный курс.
В последней, как оказалось рассматривается другой микроконтроллер того же семейства — более старый AT90S1200. Приятно удивил тот факт, что описанные примеры в книге можно было с большой легкостью переписать под ATmega128. Единственное, что смутило на первых порах это другая распайка светодиодов.
Забыл сказать. В курс входят 4 лабораторные работы, первая из которых пишется на ассемблере. Пишу именно с точки зрения этого варианта. На мой взгляд в программе обучения это хороший ход, дающий разобраться почти в каждом бите.
Кратко о хорошем и плохом
Помимо перечисленных аспектов особенно хочу выделить ряд положительных:
- Свободное программное обеспечение от производителя
- Простота и наглядность режима отладки («симуляции» по Мортону)
К негативным отношу большее количество, но они далеко не перевешивают плюсы:
- Большая длительность загрузки AVRStudio
- Замедленная работа симулированного устройства (особенно заметна при работе с таймерами)
- В привычном мне ассемблере все необходимые перемещения можно было осуществить при помощи одной команды mov. Здесь же по первости сбивает с ног вся эта пестрота: in, ldi, out.
- И, наверное, главное — отсутствие оператора деления. Для его реализации приходиться писать отдельную функцию.
Сейчас только начало семестра. И если эта небольшая зарисовка кого-нибудь заинтересует, осмелюсь рассказать как две группы студентов борются с непокорными контроллерами за вживание.