Свежие обсуждения
Микроконтроллеры

Начинаю изучать AVR. К кому из участников форума можно обратиться с "глупыми вопросами"?

1 2 5

Дмитрий, я тоже начинающий Так что можем меняться вопросами. Только вот я Си изучаю, как раз по вышеприведенной ссылке на Avr123. Кстати, реально хорошо написаный курс. С уважением, Николай.

 

Поскольку я не знаю ничего (не считая кодов ВМ80, но это было 15 лет назад, в институте), то всё равно с чего начинать. А как связан Си и AVRStudio, которую мне выдали программисты для начала? Это разные вещи или что-то первично?

 

ИМХО, начинать проще и правильней с ассемблера , а уж потом если необходимо CИ. Книжки полезно почитать
http://www.dodeca.ru/books/me8.php
http://www.dodeca.ru/books/me9.php
http://www.dodeca.ru/books/me10.php
http://book.uhost.ru/083497/

 

Голубцов у меня есть. Но он все тяготеет к АТ90S2313, а это уже отживший кристалл. Хотя ввиду наличия этой книги я десяток их закупил. На эксперименты.

 

Попробуйте Алгоритм Билдер
http://algrom.net/russian.html

 

>А как связан Си и AVRStudio, которую мне выдали программисты для начала? Это разные вещи или что-то первично?

Си это универсальный язык программирования, компиляторы которого имеются почти для всех современных процессоров и микроконтроллеров. Одну и ту же программу на Си, при соблюдении определенных правил ее проектирования, можно с минимальными (относительно) переделками запустить под PIC, AVR, MSC51 или скажем ПК.

Т.е. цель использования Си вместо ассемблера - существенное облегчение разработки сложных программ и обеспечение их переносимости между различными процессорами. С другой стороны, сам Си по сравнению с многими другими языками программирования высокого уровня максимально приближен к "железу" и упрощен. Особенно если сравнить с монстрами типа Ada

AVRStudio - среда разработки _только_ для AVR, объединяющая в себе редактор исходных текстов, отладчик, ассемблер и т.д. В том числе есть возможность отладки программ, написанных на Си. Однако халявного компилятора Си в AVRStudio нет.

Для ясности - программу для AVR можно написать на ассемблере в AVRStudio, совершенно не зная Си и даже не подозревая о его существовании. Наверное с этого и стоит начать. С другой стороны, ту же программу можно написать на Си без использования AVRStudio и почти не зная систему команд AVR. А можно совместить первое со вторым.

PS. С чего лучше начинать вопрос сложный, в конце концов в школах на уроках информатики отнюдь не ассемблер учат. Учат Бэйсик или Паскаль, которые гораздо ближе к Си. Очевидно, считается что так проще Хотя для электронщика все может быть наоборот

 

Вообще AVR сильная штука и делает пики по производительности в четыре раза, так что если выбирать между пиками и AVR, то AVR предпочтительнее. К тому же у AVR более удобная архитектура, производительность 1 МИПС при 1 МГц. Из программ могу порекомендовать CodeVisionAVR - язык Си. На ассемблере время терять не советую. Прошивать PonyProg - легко собирается, поддерживает много кристаллов. Выбор самого кристалла завист от задач, денег.

 

Если программировать на Си, то "1 МИПС при 1 МГц" как то теряет свой смысл. Асм знать полезно хотя бы для общего развития и понимания работы. Тем более, что некоторые задачи без его использвания просто не решить.

 

Такую же производительность имеют и другие уважаемые мк, например, MSP430, хотя он и 16 разрядный. Асм знать не лишне, согласен, только вот не стоит на асме всю программу писать, и вставок будет достаточно. А для начала так лучше Си сначала изучить для того чтобы изучить сам мк и получить хоть какой то результат. Вот кстати можно было бы ваще MSP выбрать - перспективное решение - но и атмел идет следом, совершенствуя свои AVR.

 

AVR пики в 4 раза по производительности не делает. То есть делает, но не в 4 раза. Напомню, у новых AVR тактовая 20МГц при 1MIPS/1MHz, а у PIC тактовая 40МГц при 0.25MIPS/1MHz.

Тема компиляторов Си для AVR уже затерта до дыр, если кратко -- самый оптимальный код генерит IAR EWAVR, за ним следует WinAVR (AVR GCC). Для обучения это особого значения не имеет и сойдет любой, в т.ч. и CodeVision.

О выборе AVR жалеть вряд ли придется, по крайней мере среди моих знакомых те кто изучал AVR после PIC, от PIC впоследствии плевались. В серийных изделиях PIC ставят зачастую по причинам, не имеющим ни малейшего значения для любительских конструкций. MSP может быть даже более удобная и продуманная вещь, но особо большой разницы нет.