Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка ПО на языке Си для микроконтроллера AT91SAM7S.pdf
Скачиваний:
120
Добавлен:
18.05.2014
Размер:
838.69 Кб
Скачать

Объявления типов и функций размещаются отдельно от их определений в так называемых заголовочных файлах (обычно имеют расширение «.h») и встраиваются с использованием директивы #include везде, где это необходимо.

Так, в листинге 12 происходит встраивание заголовочного файла, поставляемого производителем микроконтроллеров, в котором определены используемые типы данных и макроопределения.

12.2 Условная компиляция

Условная компиляция – это функция препроцессора, позволяющая включать или исключать фрагменты исходного кода программы в зависимости от некоторых условий (которые, как правило, формируются из макроопределений).

//Встраивание заголовочного файла, содержащего параметры

//сборки программы

# include "config.h" unsigned short getAdcCode()

{

//Если объявлено макроопределение EMULATION, означающее,

//что включён режим эмуляции, то не используем реальный АЦП и

//всегда возвращаем ноль.

#ifdef EMULATION return 0;

// Иначе (если эмуляция не включена), работаем с реальным АЦП #else

return getAdcCodeByChannel(i); #endif

}

38

Содержание

1

Переменные...................................................................................................................

3

 

1.1

Базовые типы данных............................................................................................

3

 

1.1.1 Целочисленные типы......................................................................................

3

 

1.1.2 Способы записи целых чисел........................................................................

3

 

1.1.3 Логический тип...............................................................................................

4

 

1.1.4 Вещественные типы.......................................................................................

4

 

1.1.5 Специальный тип void....................................................................................

4

 

1.2

Оператор sizeof.......................................................................................................

5

 

1.3

Константы...............................................................................................................

5

 

1.4

Определение и описание переменных..................................................................

6

 

1.5

Классы памяти переменных..................................................................................

6

2

Функции.........................................................................................................................

9

 

2.1

Объявления и определения функций....................................................................

9

 

2.2

Функция main.......................................................................................................

11

3

Указатели......................................................................................................................

13

 

3.1

Разыменование указателя и получение адреса..................................................

13

 

3.1.1 Операции разыменования указателя и получение адреса переменной....

13

 

3.1.2 Инициализация и присваивание указателей...............................................

14

 

3.1.3 Указатели и область действия (время существования) переменных.........

14

4

Массивы.......................................................................................................................

17

 

4.1

Основные сведения..............................................................................................

17

 

4.2

Указатель на первый элемент массива................................................................

19

 

4.3

Работа с указателями как с массивами...............................................................

20

 

4.4

Арифметика указателей.......................................................................................

20

 

4.5

Разноразмерные массивы....................................................................................

20

5

Структуры....................................................................................................................

22

 

5.1

Работа с регистрами ввода-вывода через структуры данных...........................

23

6

Логические операции..................................................................................................

25

7

Условия.........................................................................................................................

28

8

Операторы сравнения..................................................................................................

30

9

Сдвиги..........................................................................................................................

31

10 Циклы.........................................................................................................................

32

 

10.1 Цикл с предусловием.........................................................................................

32

 

10.2 Цикл с постусловием.........................................................................................

32

 

10.3 Цикл со счётчиком.............................................................................................

33

11 Оптимизация и её запрет, ключевое слово volatile..................................................

35

12 Препроцессор............................................................................................................

36

 

12.1 Текстовые подстановки.....................................................................................

36

 

12.1.1 Макросы......................................................................................................

36

 

12.1.2 Директива #include......................................................................................

37

 

12.2 Условная компиляция.........................................................................................

38

39

Редактор

Подписано в печать

Формат 60 84 1/16. Бумага офсетная.

 

Печать офсетная. Печ. л. 2.0.

 

Тираж 30 экз. Заказ

Издательство СПбГЭТУ "ЛЭТИ" 197376, С.-Петербург, ул. Проф. Попова, 5

40