Введение в Си  Общие тезисы – программирование на МК

April 12, 2014 by admin Комментировать »

Созданием языков программирования занимаются профессионалы. Нодалеко не каждое их творение находит путёвку в жизнь. Одни языки слишком сложные по синтаксису, другие — узкоспециализированные, третьи — с трудом понятны даже самим их авторам. Приятное исключение составляет язык Си, предложенный в 1972 г. сотрудником фирмы Bell Деннисом Ритчи (Dennis Ritchie). Почему «Си»? Потому что прообразом для него послужил язык программирования «Би», который разработал Кен Томпсон в 1970 г.

Си относится к языкам высокого уровня, подобно Fortran, Lisp, Logo. Первоначально он был ориентирован на среду Unix, системных программистов и миникомпьютеры. С появлением MK разработчики обратили внимание на то, что Си имеет в своём составе средства, характерные как для прикладного программирования, так и для машинного Ассемблера.

Симбиоз высокоуровневой логики и простого доступа к «железу» оказался как нельзя кстати. Позднее, при создании новых микроконтроллерных семейств, в их архитектуру стали вводить узлы, которые на аппаратном уровне помогали оптимизировать и ускорять Си-программы. В частности, это семейства Atmel ATmega, Atmel ATtiny, Microchip PIC18, Microchip dsPIC и многие другие.

Справедливости ради надо отметить, что в настоящее время программы для MK пишутся на многих языках — от Java и Forth до Python и Ada. Однако именно Си стал на практике международным стандартом «де-факто». Особенности его синтаксиса позволяют создавать короткий и быстро исполняемый код. Кроме того, Си обладает свойством мультиплатформенности, т.е. программа, составленная для одного типа MK, с небольшими правками и коррекциями будет запускаться на совершенно другой микроконтроллерной платформе.

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

Для этой категории читателей, а также для тех, кто начинает «с нуля», предлагается другая методика. А именно, изучить основы языка Си и выработать свой стиль программирования с использованием ограниченного числа простых и понятных операторов. «Усечённый» Си будет чем-то похож на Basic и Pascal, примерно так, как похожи между собой русский, украинский и белорусский языки. К тому же от Ассемблера никто не призывает отказываться, ведь с приобретением опыта его коды можно с успехом вставлять в любые Си-программы.

Классификация программистов

Программистов можно условно разделить на следующие категории.

1.               Системные программисты — занимаются разработкой операционныхсистем, библиотечных функций, системных приложений, антивирусных программ. Рабочие языки — Си/С++, Ассемблер, Ada и любые другие известные.

2.               Игро строители — занимаются проектированием компьютерных игр, атакже игрдля мобильныхтелефонов, КПК. Рабочие языки — С++, Delphi, Java.

3.               Web-программисты — занимаются оформлением сайтов, разработкой веб приложений, поддержкой ftp- и mail-серверов, форумов, интернет-служб. Рабочие языки — HTML, XML, PHP, PeR1, ASP, JScript, SQL.

4.               Офисные программисты — занимаются созданием и сопровождением офисных приложений, бухгалтерских программ, баз данных, презентаций. Рабочие языки — FoxPro, Postgree, OraC1e, lC, Visual Basic.

5.               Прикладные программисты — это специалисты широкого профиля, разрабатывающие программы для внутреннего пользования и приложения, обеспечивающие связь компьютера с внешним миром, в том числе на сетевом уровне. Рабочие языки — Си/С++, Ассемблер, Python, RSX, ProLog, SmallTalk, LISP.

6.               Программисты-«эмбеддеры» — это специалисты в области встраиваемых систем. Занимаются составлением и отладкой программ для MK и ПЛИС. Рабочие языки — Си/С++, Ассемблер, AHDL, VHDL, Verilog. Широко используют компьютерное моделирование. В идеале должны разбираться в «железной» электронике и уметь спаять макет устройства.

Радиолюбитель, планирующий в совершенстве освоить MK, должен стремиться стать квалифицированным программистом-«эмбеддером» и толковым компьютерным программистом. И в том, и в другом случае для изучения пригодится один общий алгоритмический язык — это Си.

Правила успешного программирования

Программисты-практики выработали краткий свод правил (кодекс):

•                 программа должна делать одну вещь и делать её хорошо;

•                 надо стремиться к тому, чтобы несколько программ работали вместе;

•                 изощрённые алгоритмы подвержены ошибкам и выполняются медленнее;

•                 если сомневаетесь, то используйте перебор всех возможных комбинаций;

•                 добейтесь стабильной работы программы и только затем оптимизируйте её;

•                 пишите программы, которые бы составляли программы за вас;

•                 помните, что ясность лучше заумности.

Источник: Рюмик, С. М., 1000 и одна микроконтроллерная схема. Вып. 2 / С. М. Рюмик. — М.:ЛР Додэка-ХХ1, 2011. — 400 с.: ил. + CD. — (Серия «Программируемые системы»).

Оставить комментарий

Устройство витков выходе генератора импульсов микросхемы мощности нагрузки напряжение напряжения питания приемника пример провода работы радоэлектроника сигнал сигнала сигналов сопротивление схема теория транзистора транзисторов управления усиления усилитель усилителя устройства частоты