всё зависит от того, что ты хочешь делать контроллером...
если реализуешь простую логику (мк-тини13, 2313 и подобные), то можно до ассемблера спуститься (рекомендую
АлгоритмБилдер) как более простой в освоении инструмент (по отношению к ассемблеру) - очень поможет понять как работает МК.
Если задача посложнее и по сложности в тини не влезет, но в аккурат для небольших мег - используй С, (я пишу в кодевижене - у него есть свои плюсы, но рекомендовать я его не могу т.к. есть и минусы, которые перетягивают всё сильнее и неожиданнее
) сначала хотел перейти на "студию", но теперь думаю, что приближаться к плюсам буду уже на СТМ32... (того что сейчас умею - для для решения имеющихся под АВР задач мне достаточно).
для более сложных задач (работа с разнообразной периферией, графическими дисплеями) наверно лучше подойдёт С++, т.к. код получается стройнее, и хоть результирующая прошивка получается объёмней, но применяемые в этом случае более мощные МК её потянут. (пример - Марлин (прошивка для 3д принтера) написан на С++ в среде ардуино...)
на С++ может стоит посмотреть в сторону
PlatformIO (сам я с ней не работал)...
ПС: деления условные, знаю людей, работающих с ЖК экранами из под ассемблера...
ПС2: за видос спасибо - какраз сейчас смотрю.