Программирование Arduino — Работа со временем


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


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение