Menu
Типы данных и их объявление
Формат объявления переменной таков:
[] ;
[] - необязательный элемент, он нужен только в некоторых случаях и может быть:
extern - если переменная объявляется во внешнем файле – например, в хидере delay.h.
volatile - если нужно предотвратить повреждение содержимого переменной в прерывании, компилятор просто не будет размещать эту переменную ни в одном из 32-х регистров общего назначения и не будет пытаться выкинуть её при оптимизации кода.
static - если переменная локальная, т.е. объявлена в какой либо функции и должна сохранять свое значение до следующего вызова этой функции.
flash и eeprom - используются с указателями. Подробней см. в Help компилятора с языка СИ.

Локальные переменные объявляются в самом начале функции! Т.е. сразу после скобки {
Локальные переменные доступны только в той функции, где они объявлены!
- тип данных, которые может хранить переменная.

Наиболе часто используемые типы данных:
unsigned char - хранит числа от 0 до 255 (байт)
unsigned int - хранит числа от 0 до 65535 (слово == 2 байта)
unsigned long int - хранит от 0 до 4294967295 (двойное слово == 4 байта)
Подробнее все типы данных посмотрите в Help

Вместо unsigned char - можно писать просто char, так как компилятор по умолчанию считает char без знаковым байтом. А если вам нужен знаковый байт, то объявляйте его так:
signed char imya_peremennoi;
- имя переменной - некоторый набор символов по вашему желанию, но не образующий зарезервированные слова языка Си.
Желательно давать осмысленное имя переменным и функциям, напоминающие вам об их назначении. Принято использовать маленькие буквы, а для отличия имен переменных от названия функций - имена переменных можно, например, начинать с буквы, а названия функций (кроме main конечно) с двух символов подчеркивания.
Например так:
moya_peremennaya__vasha_funkziya

Внимание!
Глобальные переменные, а также локальные с модификатором static - при старте и рестарте программы равны 0, если вы не присвоили им (например, оператором =) иное значение при их объявлении или по ходу программы.
Подробные примеры объявления переменных посмотрите, пожалуйста, в разделе Variables в "Хелп"компилятора.
Вот несколько примеров объявления переменных:
unsigned char my_peremen = 34;
unsigned int big_peremen = 34034;
Выше объявлены две переменные с присвоением значений.
Пример массива из 3-х переменных mas[3]={11,22,33};
Три элемента: mas[0] mas[1] mas[2]
Нумерация элементов массива начинается с нуля!
Пример: строковая переменная – массив
char stroka[7]="Hello";
/* на 2 элемента больше чем символов между кавычками!
Строковый массив может быть распечатан одной строкой:
printf ("%s\n", stroka);

Так делаются вставки ассемблерных инструкций:
#asm ("инструкция на ассемблере")
Обратите внимание - точки с запятой НЕТ!

Часто используются такие строки:
#asm("sei") // Разрешить ГЛОБАЛЬНО все прерывания
#asm("cli") // Запретить ГЛОБАЛЬНО все прерывания
#asm("nop") // Пауза в 1 такт процессора
#asm("wdr") // Сбросить сторожевой таймер

4.7. Разделители.

В разделители входят следующие символы:
[], (), {}, , , ; , : , ... , * , = , #.

[] - для записи идентифицированных переменных.
Пример №1:
Int A [5] , e[3][2]

( ) применяются для:
1. выделения условия в операторе if;
2. входит как обязательный элемент в определении любой функции;
3. группирует выражения в арифметических операциях;
4. входит как обязательный элемент в операторы цикла: for, white, do.

{ } используется для обозначения начала и конца составного оператора или блока операторов.
Пример №2:
If (d>x) {d--; x++}
Float absx (float x)
{
Return x>0 ? x:-x
}

{ } также используется для выделения списка компонентов в определениях структурных и объединяющих типов, используются для инициализации массивов.
Int month [] = {1, 2, 3, 4, 5, 6, 7,…,12};

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

; каждый оператор, определение и описаний в программе на языке СИ завершается знаком - ;. Любое допустимое выражение, за которым следует ; воспринимается как оперативный отдельный символ, ; считается пустым оператором.

: используется для отделения метки от помечаемого ею оператора.

... используется для обозначения переменного числа параметров.

* используется в качестве знака операции умножения и знака операции разыменования.

= используется для присваивания значений и инициализаций объекта.

# признак препроцессорных средств используется для обозначения директив препроцессора.

4.8 Пример программы на языке СИ:

# include < io8515v.h >
# include < macros.h >

void delay ( )

{
unsigned char a,b,c;
for (a=1;2;a++)
for (b=1;2;b++)
for (c=1;2;c++)
}
void Led_on (int i)

{
Port a = ~BIT (i);
Delay( );
}
void main ( )

{
unsigned char data;
unsigned char x;
int I;
DDRA=oxFF; /*output*/
DDRC=oxOO;
PORTA=oxFF; /*alloff*/
While (1)
}

Добавлять комментарии могут только зарегистрированные пользователи.
Регистрация Вход