1. Программирование Arduino — введение
2. Структура программы, константы
3. Цифровой ввод/вывод
4. Аналоговый ввод/вывод
5. Дополнительные функции ввода/вывода
6. Работа со временем
рассмотрим дополнительные специфичные функции Arduino для работы со временем
unsigned long millis(void);
Вызов:
time = millis();
Описание:
Возвращает число миллисекунд, с момента исполнения Arduino текущей программы.
Учитывая, что значение хранится в unsigned long , что соотвествует 4 байтам и следовательно может хранить значения от 0 до 4294967295. Т.о счетчик переполнится и обнулится приблизительно через 1193 часов или же 50 дней (49.7).
Возвращаемое значение:
возвращает значение типа unsigned long
Пример:
unsigned long time; // объявление переменной time типа unsigned long time = millis(); // передача количества миллисекунд
unsigned long micros(void);
Описание:
Возвращает число микросекунд, с момента исполнения Arduino/Freeduino текущей программы. Переменная переполнится (обнулится), приблизительно через 70 минут.
Примечание:
На 16 MГц плате Arduino/Freeduino (Duemilanove и Nano), данная функция работает с разрешением в 4 микросекунды (возвращаемое значение всегда кратно черырём).
На 8 MГц плате Arduino/Freeduino (LilyPad), данная функция работает с разрешением в 8 микросекунд.
Возвращаемое значение:
возвращает значение типа unsigned long
Пример:
time = micros(); Serial.println(time); // выводим число микросекунд с момента запуска программы
void delay(unsigned long);
Вызов:
delay(время_мс);
Описание:
Приостанавливает программу на заданное число миллисекунд.
Параметры:
время_мс – время задержки программы в миллисекундах
Пример:
delay(1000); //пауза 1 секунда
void delayMicroseconds(unsigned int us);
Вызов:
delayMicroseconds(время_мкс);
Описание:
Приостанавливает программу на заданное число микросекунд.
Параметры:
время_мкс – время задержки программы в микросекундах
Важно! В настоящее время, наибольшее значение, обеспечивающее точную задержку, составляет 16383. Это значение может измениться в будущих выпусках Arduino.
Для задержек, превышающих несколько тысяч микросекунд, нужно использовать delay().
Пример:
delayMicroseconds(500); //пауза 500 микросекунд
читать далее: 7. Математические функции
Ссылки
http://arduino.cc/en/Reference/HomePage (или же в каталоге ArduinoIDE \reference\HomePage.html )
http://freeduino.ru/arduino/lang.html
По теме
Программирование Arduino/CraftDuino — Blink без delay
Библиотека TimerOne