роботы
робототехника
микроконтроллеры
Главная
Как сделать робота
Новости
Спорт
Статьи
Wiki
Форум
Downloads
Ссылки
Контакты  

Простейший робот
Схема и описание простого робота на одной микросхеме. Робот может двигаться на свет или следовать за рукой.  

Схема и описание первого проекта на микроконтроллере AVR
"Hello, world!" для микроконтроллера.  

Робот на микроконтроллере AVR
Схема робота на микроконтроллере. Примеры программ.  

ЯЗЫК ПРОГРАММИРОВАНИЯ C (СИ) :: ВВЕДЕНИЕ



Деннис Ритчи (Dennis MacAlistair Ritchie)

История
языка программирования C (Си)

    Язык программирования C (Си) был создан в 1972 г. в фирме Bell Laboratories Деннисом Ритчи (Dennis MacAlistair Ritchie) в атмосфере, которую один из участников разработки определил как "благотворное пренебрежение". Никто из руководителей компании не заказывал нового языка.

    Ритчи надеялся, что его новый язык пригодится для программирования новой операционной системы "Юникс" (UNIX), работа над которой тоже не входила в официальные планы компании. В результате язык возник лишь как результат дружеского соревнования внутри небольшой группы программистов лаборатории. "Не было ни проектов, ни спецификаций, ни требований, - вспоминал один из членов группы, - почти все родилось просто из обсуждений".

    Название C (Си) появилось так же случайно, как и сам язык. Он оказался преемником ранее созданного языка В (Би), написанного автором UNIX Кеном Томпсоном (Ken Thompson), который также сделал большой вклад в развитие Си. Язык Би отчасти основывался на созданном в Кембриджском университете Мартином Ричардсом (Martin Richards) языке BCPL, который в свою очередь был потомком Алгола-60.

    Неформальным стандартом языка Си стало первое издание книги Брайана Кернигана (Brian Kernighan) и Денниса Ритчи "The 'C' Programming Language", вышедшее в США в 1978 г., а в 1989 г. язык Си был стандартизован ANSI (American National Standards Institute) и ISO (International Standard Organization).

    В начале 80-х годов в той же Bell Laboratories Бьерном Страуструпом (Bjarne Stroustrup) язык Си был дополнен и значительно расширен. По сути дела, был создан новый язык, который стали называть "Си с классами". В 1983 году язык Страуструпа получил название Си++. Это название сохранилось за ним и по сей день.
Бьерн Страуструп (Bjarne Stroustrup)


C (Си) является универсальным языком программирования высокого уровня, который содержит команды низкого уровня, подобно языку ассемблера. Программа на языке Си может быть скомпилирована в машинные коды почти для всех типов процессоров.

Удачное сочетание лаконичности конструкций и богатства выразительных возможностей позволило языку Си быстро распространиться и стать сегодня наиболее популярным языком прикладного и системного программирования. Можно даже сказать, что Си стал фундаментом, на котором строится современное программирование.

Файлы программ на языке Си имеют расширение .C, а структура программы выглядит следующим образом.


/* ----------------------------------------------
ПРИМЕР ПРОГРАММЫ НА AVR GCC 
------------------------------------------------- */

#include <avr/io.h>  /* заголовок */

int main(void)  /* главная функция: начало программы */

    {  /* открывающая скобка в начале программы */

    оператор программы;
    оператор программы;
    ...
    оператор программы;

    } /* закрывающая скобка в конце программы */

Открывающие программу строки комментариев являются необязательными, однако тому, кто читает код, они дают представление о назначении программы.

Строка #include <avr/io.h> является заголовком. В заголовках содержится информация для компилятора об общих требованиях программы. В данном случае компилятору указывается, что нужно включить информацию, содержащуюся в файле io.h. Файл с именем io.h является частью пакета AVR GCC и содержит информацию о вводе и выводе. Эта строка не является оператором языка Си. Символ # указывает, что она должна быть обработана "препроцессором". Препроцессор осуществляет некоторую предварительную обработку текста программы перед началом компиляции и подключает внешние библиотеки. Какой конкретный файл (или файлы) таким образом подключается, зависит от потребностей программы.

В общем виде программа на Си - это набор функций, которые вызывают друг друга для выполнения. Любая программа на языке Си состоит из одной или более функций, причём ровно одна из них обязательно должна называться "main" ("главная"). Программа всегда начинает выполняться с главной функции main. У программиста имеется возможность выбирать имена для всех создаваемых им функций, кроме той, с которой начинается выполнение программы.

Отличительным признаком функции служат круглые скобки после её имени. Круглые скобки указывают на то, что main() - имя функции. В круглых скобках в общем случае содержится информация, передаваемая функции.

Идущая следом открывающая фигурная скобка { отмечает начало последовательности операторов, образующих тело функции. Закрывающая фигурная скобка } отмечает конец последовательности операторов, образующих тело функции. На этой скобке выполнение функции завершается.

Фигурные скобки применяются также для того, чтобы объединить несколько операторов программы в составной оператор или блок.

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

операторы выполняются последовательно в том порядке, в котором они записаны Операторы выполняются последовательно в том порядке, в котором они записаны, и примерно соответствуют шагам исходного алгоритма.

Особо следует отметить использование комментариев в программе. Комментарии - это примечания, помогающие понять смысл программы. В Си комментарии записываются между значками /* */. Содержание комментариев компилятору совершенно безразлично: все, что находится между символами начала и конца комментария, им игнорируется.

Комментарии можно располагать на той же строке, что и операции, которые они объясняют. Длинные комментарии могут занимать несколько строк. Для комментария не требуется в конце точка с запятой.

При разработке программы комментарии могут оказать неоценимую помощь, особенно если приходится оставлять работу на длительное время, а затем возвращаться к ней. При наличии комментариев гораздо легче продолжить работу с того места, где вы остановились. Кроме того, с их помощью гораздо проще впоследствии адаптировать уже написанные программы к новым задачам.

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

Неправильное определение комментариев:
     /* комментарии к программе /* мигания светодиодом */ */
или
    /* комментарии к программе мигания */ светодиодом */
AVR GCC поддерживает и второй метод записи комментариев - строка, начинающаяся с символов //, считается комментарием. Пример:
    // Это однострочный комментарий
Подводя итог вышесказанному, еще раз отметим, что для создания читаемой программы следует придерживаться следующих правил:
  • располагайте один оператор на строке;
  • используйте пустые строки для "отделения" одной логической части программы от другой;
  • используйте комментарии.



  • myROBOT.ru Это оригинальная статья myROBOT.ru
    Постоянный адрес статьи: http://myrobot.ru/stepbystep/pr_introduction.php




    Использованные иллюстрации:

    Dennis MacAlistair Ritchie.
    http://www.paulsop.com/gallery/geeks/

    Bjarne Stroustrup.
    http://www.paulsop.com/gallery/geeks/






    Статьи раздела
    ПРОГРАММИРОВАНИЕ

    Все статьи курса
    Язык программирования C (Си): введение.

    Переменные и константы. Присваивание.

    Управление портами микроконтроллера AVR.

    Циклы в языке Си. Формирование задержки.








    Copyright © myrobot.ru, 2005-2023


    Яндекс.Метрика   Рейтинг@Mail.ru