После предыдущего поста как-то сразу потянуло давать советы по поводу выбора среды программирования для AVR контроллеров. Только не надо кидать в меня тапками. Я совсем чуть-чуть 🙂
Языков программирования для микроконтроллеров много. Сред программирования так же не мало и сравнивать их между собой некорректно. Лучших языков программирования не существует. Значит, придется выбрать наиболее подходящие для Вас язык и среду программирования.
Если Вы, в данный момент, стоите перед выбором, на чем начать работать, то вот Вам несколько рекомендаций.
Прежний опыт программирования. Не стоит пренебрегать прежним опытом в программировании. Даже если это был Бейсик. Даже если это было давно в школе. Программирование как езда на велосипеде – стоит только начать и быстро вспоминаешь все забытое. Начните с Бейсика – освойтесть – позже будет проще выбрать что-то более подходящее для Ваших целей.
Помощь окружения. Ваши друзья пишут на Паскале? Для Вас вопрос решен – пишите на Паскале! Вам всегда помогут советом, подкинут библиотек, дадут на изучение готовые проекты. Вобщем рады будут принять в свое сообщество. Если поступите наоборот — получите обратный результат. Друзья сишники заклюют Вас, решившего изучать Ассемблер. Помощи не ждите.
Хорошая книга по программированию AVR очень здорово поможет. К сожалению их очень мало. Если Вам в руки попалась книга, и вы считаете что в ней очень доступно все расписано – попробуйте. Не советую учиться по электронным книгам, в крайнем случае, распечатайте. Очень неудобно переключаться между средой и текстом файла книги. Гораздо приятнее читая книгу тут же пробовать, не отвлекаясь на переключения, кроме того, на полях можно делать пометки, записывать возникшие идеи.
Среда программирования попроще. Если есть на выбор несколько сред программирования Вашего языка – не сомневайтесь, выбирайте ту, что проще. Пусть она менее функциональна. Пусть она компилирует страшно раздутый код. Главное чтобы было просто начать работать. После того как Вы освоитесь в простой среде вы с легкостью перейдете на более продвинутую и «правильную» среду. И не слушайте тех, кто говорит, что вы потеряете больше времени – они не правы. Ученикам младших классов не задают читать «Войну и мир» им дают книги попроще – с картинками.
Библиотеки. Наличие библиотек спорно для изучения языка. Конечно, позже они очень облегчат жизнь, но поначалу «Черные ящики»-библиотеки непонятны и не очень способствуют пониманию языка. С другой стороны облегчают чтение программы и позволяют новичку, не особо напрягаясь, строить сложные программы. Так что, их наличием особо не заморачивайтесь. По крайней мере, по началу.
Эффективный код. Выбор среды программирования для изучения программирования только по тому, насколько эффективный код та компилит – плохая идея. Вам главное комфортно начать изучение – что там получается «на выходе» дело десятое. Конечно, позже можно над этим и поработать.
Визарды. Любое устройство на борту кристалла нуждается в настройке при помощи портов. Процедура довольно муторная и даташиты обязательны. Кроме того, есть нюансы, в которые новичку не просто вкурить. Поэтому в среде очень желательно наличие визардов. Вызарды это автоматические настройщики SPI, I2C, USART и т.д. Чем больше устройств поддерживается, тем лучше. Выставляешь необходимые параметры периферии, а визард сам генерирует код, который обеспечит заданные параметры. Очень упрощает жизнь.
Общие рекомендации такие – программирование на начальном этапе должно быть максимально простым (пусть даже примитивным). Среда программирования должна быть легка в освоении (так как Вам надо, для начала, освоить программирование а не тратить время на ковыряние в настройках). Желательно русифицирована. Также не помешает русский мануал и примеры программ. Желательна возможность прошивки кристалла из среды. Далее при освоении основ программирования можно переходить и на более сложные оболочки.
Еще одна рекомендация, напоследок – работайте с реальным кристаллом. Не бойтесь его спалить. Нарабатывайте практический опыт. Работа с эмуляторами (например Proteus) хоть и освободит от возни с паяльником, но никогда не сможет дать то удовлетворение которое Вы получите от заработавшей программы, первых помигиваний светодиодом! Понимание того, что вы сделали своими руками реальную рабочую схему вселяет уверенность и стимул двигаться дальше!
Как для обучающего проекта — это слишком. Там только с железяками можно намучится так что и до электроники дело не дойдет.
Пытаюсь вникнуть, однако процесс познания походу затянется. Очень хочется собрать вот эту штуку http://roboreview.ru/samodelkin/sigvey-svoimi-rukami.html
Как из этого всего https://github.com/Lauszus/BalancingRobotFullSize создать компилированный файл прошивки, ума не приложу. Здорово было-бы увидеть этот девайс . Help !
учусь в AVR STUDIO 4 по книгам Д.Мортон «AVR вводный курс» и Белов.
Спасибо теперь понял r16 -> запись в стек,
->SREG а это из стека записать в SREG
Если Вы имеете в ввиду r16 -> r16
то это операция пустая, то есть записать в r16 то что находится в r16.
Если Вы имеете в виду r16 ->
то это запись r16 в стек
Запись 1 в в r16 выглядит следующим образом:
1 -> r16
Здравствуйте!начинаю осваивать АВ-возник вопрос по командам-подскажите как работают такие строчки ?
r16 -> ->R16
r17-> ->R17
SREG -> -> SREG
Подразумеваю ,что это положить еденицу в регистр.Но возможно ошибаюсь.
«Живая» книга вообще хорошо.
Не стал париться, зашёл в магазин и купил) повезло), Самоучитель разработчика устройств на микроконтроллерах AVR 2-е издание 2010
Поддерживаю Евгения. Мы все учились по книгам Белова — это самый лучший путь.
большое спасибо, завтра же выведу на бумагу и приступлю…
mxroman, попробуйте начать с этого — http://www.radiofiles.ru/news/samouchitel_razrabotchika_ustrojstv_na_mikrokontrollerakh_avr/2010-05-31-278
Там параллельно обучают и структуре МК, и ассемблеру, и Си. Уровень — от моргания диодиком и выше, на ATtiny2313.
с электроникой норм, сам инженер)
Трудно будет начинать с нуля. А как с электроникой?
неа, надеюсь на ваш совет, что предложите на том и начну впринципе, так как опыта вообще нет… Я так понимаю сначала на Си пишется а потом уже переделывается в HEX
Выбрали на чем хотите начать?
Здравствуйте, классный сайт, почти весь сайт перевёл на бумагу, занятное просто чтение, всё понятно как для детей, но только вот после прочтения всего я понял что тут готовые программы… Хотелось бы чтобы для чайников было объяснено как пишется программа с нуля, на примере светодиодов например, как зажечь, чтобы моргал через интервалы времени… Или хотя бы литературу на эту тему… Просто хочется самому что нить написать для простейшего светодиода… Заранее спасибо
а что делать если вся информатика — это один курс технаря с клавиатурой нарисованной на бумажке? Ни бейсик, ни паскаль, ни си осваивать просто поздно да и сил не хватит если честно. Друзей, которые пишут на чем-то — есть только такие, которые хорошо обращаются с бутылкой.
И тогда погуглив, обращаем внимание на программу flowcode. Признаться, был удивлен, насколько быстро у меня получилось помигать светодиодиками, даже не зная никакого языка. Через пару дней я уже писал в еепром, научился работать с прерываниями, и даже сделал девайсик — триггер с запоминанием последнего состояния.
Русский сайт — http://www.flowcode.info
Просто у Вас как то нагляднее все получается объяснять,вот и хотелось бы научиться настраивать и работать с таймерами и прерываниями.
Формат сайта как-бы не подразумевает обучения, но возможно я со временем сделаю небольшой гайд по билдеру — посмотрим…
Автору сайта можно просьбу -начать с простых примеров по algorithm builder-на вртп был но там как то люди увлеченные более сложными проектами
CodeVisionAVR ругают за большой и непонятный код ( DI HALT ) .
У продуктов mikroelectronics говорят много багов .
А я мечтаю освоить CodeVisionAVR 😉 — займусь по свободе.
Хотелось узнать ваши предпочтения .
Например , я сижу на CodeVisionAVR .
И только лишь мечтаю освоить WinAVR и IAR .