Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Volatile





volatile это слово, известное как квалификатор переменной, оно обычно пишется перед типом переменной.

Объвление переменной как volatile является директивой компилятора. Компилятор - это программа, которая транслирует ваш C/C++ код в машинный код, который явлется настоящими инструкциями для чипов ATmega/

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

Переменная должна быть объявлена как volatile в случае, если она может быть внезапно изменена во время выполнения основной программы. В МК таким слабым местом является использование прерываний.

Пример

// toggles LED when interrupt pin changes state

int pin = 13;

volatile int state = LOW;

void setup()

{

pinMode(pin, OUTPUT);

attachInterrupt(0, blink, CHANGE);

}

void loop()

{

digitalWrite(pin, state);

}

void blink()

{

state =!state;

}

 

Const

Данный квалификатор определяет перменную как read-only - только для чтения. Это значит, что вы можете использовать значение переменной, но не можете его менять. В случе обращения к перезаписи такой переменной компилятор выдаст ошибку.

Константы, объявленные квалификаторм const подчинаются всем правилам переменных. Это значит, что можно не использовать #define для объявления константы и использвоание const является более правильным,ч ем использование #denife.

Пример;

const float pi = 3.14;

float x;

//....

x = pi * 2; // it's fine to use const's in math

pi = 7; // illegal - you can't write to (modify) a constant

 

#define или const

Вы можете использовать const или #define для создания цифровых или строковых констант. Для массивов вы можете использовать только const. На практике использование const имеет преимущество перед #define.

Переменные в языке C имеют область действия переменной.

Глобальные переменные видимы в любой функции программы. Локальные переменные видимы только для функции, в которой они были объявлены. В среде разработки Arduino глобальными, считаются все переменные объявленные вне функций.

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

Иногда удобно обхъявлить переменную в теле цикла. В этом случае создается переменная, доступ к которой есть только внутри цикла.I

Пример:

int gPWMval; // глобальная переменная

 

void setup()

{

//...

}

 

void loop()

{

int i; // "i" локальная переменная, видимая только для "loop"

float f; // "f" локальная переменная, видимая только для "loop"

//...

 

for (int j = 0; j <100; j++){

// доступ к j есть толкьо внутри цикла.

}

}

 


 







Date: 2015-12-12; view: 381; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию