Стал популярен в связи со своей простотой. Рабочую программу в нем получить можно уже через несколько минут мастер стартового кода этом сильно способствует, штампуя стандартыне инициализации всяких уартов. Честно говоря, я как то с подозрением к нему отношусь как то раз приходилось дизасмить прогу написаную этим компилером, каша какая то а не код получалась. Жуткое количество ненужных телодвижений и операций, что выливалось в неслабый обьем кода и медленное быстродействие. Впрочем, возможно тут была ошибка в ДНК писавшего исходную прошивку. Плюс он хочет денег. Не так много как IAR, но ощутимо. А в деморежиме дает писать не более чем 2кб кода. Кряк конечно есть, но если уж воровать, так миллион, в смысле IAR Еще есть Image Craft AVR C и Micro. C от микроэлектроники. Ни тем ни другим пользоваться не приходилось, но вот SWG очень уж нахваливает Micro. Pascal, мол жутко удобная среда программирования и библиотеки. Думаю Micro. C не хуже будет, но тоже платный. Как я уже сказал, я выбра Win. AVR по трем причинам халявный, интегрируется в AVR Studio и под него написана просто прорва готового кода на все случаи жизни. Так что качай себе инсталяху Win. AVR с официального источника и AVR Studio. Далее вначале ставится студия, потом, сверху, накатывается Win. AVR и цепляется к студии в виде плагина. Cоздание проекта. Итак, студия поставлена, Си прикручен, пора бы и попробовать что нибудь запрограммировать. Начнем с простого, самого простого. Запускай студию, выбирай там новый проект, в качестве компилятора AVR GCC и вписывай название проекта. Как я уже сказал, я выбра WinAVR по трем причинам халявный, интегрируется в AVR Studio и под него написана просто прорва готового кода. Также не забудь поставить галочу Create Folder, чтобы у тебя все сложилось в одной директории. Ну и укажи место Location, где будет лежать проект. Указывай по короткому пути, что то вроде C AVR Как показывает практика, чем короче путь тем лучше меньше проблем при компиляции и линковке проектов. Проц у меня в Pinboard по дефолту ATmega. Те же у кого в Pin. Board стоит Mega. Открывается рабочее поле с пустым. Для этого слазь по адресу Меню Tools Options General File. Tabs и выбираем в выпадающем списке Filename Only. Иначе работать будет невозможно на вкладке будет полный путь файла и на экране будет не более двух трех вкладок. Настройка проекта. Вообще, классическим считается создание make файла в котором бы были описаны все зависимости. И это, наверное, правильно. Но мне, выросшему на полностью интегрированных IDE вроде u. Vision или AVR Studio этот подход является глубоко чуждым. Поэтому буду делать по своему, все средствами студии. Тыкай в кнопку с шестеренкой. Это настройки твоего проекта, а точнее настройки автоматической генерации make файла. На первой странице надо всего лишь вписать частоту на которой будет работать твой МК. Это зависит от фьюз битов, так что считаем что частота у нас 8. Гц. Также обрати внимание на строку оптимизации. Сейчас там стоит Os это оптимизация по размеру. Пока оставь как есть, потом можешь попробовать поиграться с этим параметром. Следующим шагом будет настройка путей. Первым делом добавь туда директорию твоего проекта будешь туда подкладывать сторонние библиотеки. На этом пока все. Жми везде ОК и переходи в исходник. Постановка задачи. Чистый лист так и подмывает воплотить какую нибудь хитрую задумку, так как банальное мигание диодом уже не вставляет. Давай уж сразу брать быка за рога и реализуем связь с компом это первым делом что я делаю. Работать будет так При приходе по COM порту единички код 0х. Причем сделано будет все на прерываниях, а фоновой задачей будет мигание другого диода. Для этого берем перемычку из двух проводков и накидывам на штырьки крест накрест. То есть Rx контроллера соединяем с Tx конвертера, а Tx конвертера с Rx контроллера. Кроме того, через USART мы теперь сможем достучаться до загрузчика Pinboard идет с уже прошитым загрузчиком и прошить наш контроллер не используя программатор. Также накинем джамперы, соединяющие LED1 и LED2. Тем самым мы подключим светодиоды LED1 и LED2 к выводам PD4 и PD5 соотверственно. Получится, в итоге вот такая схема Подключение остальных выводов, питания, сброса не рассматриваю, оно стандартное. Пишем код. Сразу оговорюсь, что я не буду углубляться конкретно в описание самого языка Си. Для этого существует просто колоссальное количество материала, начиная от классики Язык программирования Си от K R и заканчивая разными методичками. Одна такая метода нашлась у меня в загашнике, я когда то именно по ней изучал этот язык. Там все кратко, понятно и по делу. Я ее постепенно верстаю и перестаскиваю на свой сайт. Посмотреть оглавление. Добавляем библиотеки. Первым делом мы добавляем нужные библиотеки и заголовки с определениями. Ведь Си это универсальный язык и ему надо обьяснить что мы работаем именно с AVR, так что вписывай в исходник строку Этот файл находится в папке Win. AVR и в нем содержится описание всех регистров и портов контроллера. Причем там все хитро, с привязкой к конкретному контроллеру, который передается компилятором через make файл в параметре MCU и на основании этой переменной в твой проект подключается заголовочный файл с описанием адресов всех портов и регистров именно на этот контроллер.