Программирование AVR
sergeyprohorovich@gmail.com

Одним из немаловажных этапов создания собственных устройств является изучение программирования на микроконтроллерах.
В период развития микроконтроллеров они изначально были нацелены на промышленность. Всё описание базировалось на заумных терминах, которые мог понять только специалист, который получил высшее образование и приобрёл соответствующую квалификацию. Это тормозило развитие использование микроконтроллеров в любительской среде. Не многие могли понять, как это всё работает и с чего следует начинать.
В дальнейшем энтузиасты разработали открытый программно-аппаратный комплекс Arduino. В данной разработке они отошли от привычного на тот момент большого числа информации по микроконтроллерам и унифицировали процесс разработки устройств на их основе. В качестве базового контроллера был выбран чип ATmega328 фирмы AVR. На данный момент это наиболее распространённый чип в любительской среде. Чип выпускается фирмой "Texas Instuments".

Многие инженеры, занимающие ведущие места в сфере разработок устройств на микроконтроллерах, акцентируют внимание, что изучение следует начинать с основ и языка программирования Assembler. Именно это позволит будущим инженерам полноценно владеть искусством создания собственных устройств. Arduino такой возможности не предоставляет. И иногда складываются обстоятельства, когда разработчики, в силу того, что умеют работать только на платах Arduino, вынуждены покупать более дорогие платы, потому что не умеют писать более производительный код.
Эта проблема решается не только написанием собственных библиотек, но и использованием более низкоуровневых команд.
Наиболее грамотной книгой для этого является "Самоучитель разработчика устройств на микроконтроллерах AVR" под авторством Белова Александра Владимировича. В книге рассматривается программирование контроллеров на языке Assembler и Си. Это позволяет читателю полностью ощутить всю напряжённость момента и познать дзен в изучении контроллеров.
