• Специально для посетителей нашего сайта действует скидка 5% в интернет-магазине Амперка
    Кодовое слово для скидки: megavolt
    Пожалуйста, не загружайте ресурсы большого объема. Загружайте такие ресурсы в облачные хранилища, указывая ссылку на скачивание.
Библиотека GyverHacks

Arduino Библиотека GyverHacks 2.0.1

Нет прав для скачивания
screenshot_5-jpg.139

Эта библиотека взята с сайта alexgyver.ru/

Библиотека содержит целый набор часто используемых алгоритмов, заменяя их компактными и удобными функциями, а также открывает некоторые не всем известные возможности Arduino, доступные только на ассемблере. Код пишется быстрее и выглядит более читаемым!
  • GTimer - компактная альтернатива конструкции таймера с millis()
    • Класс GTimer (period) - установка периода в миллисекундах
    • setInterval(period) - изменение периода вызова
    • isReady() - возвращает true, когда таймер сработал. Возвращает false до следующего срабатывания
    • reset() - сброс
  • GParsingStream - парсинг данных из Serial
    • parsingStream((int*)&intData) - автоматическая расфасовка пакетов вида $110 25 600 920; в массив intData
    • dataReady() - функция-флаг принятия нового пакета данных
    • sendPacket((int*)&intData, sizeof(intData)) - функция отправки в порт пакета вида $110 25 600 920; из массива
  • Меняем частоту ШИМ
    • setPWM10bit(mode) - настройка ШИМ для 9 и 10 пинов (timer 1) на 10 бит (analogWrite 0 - 1023). mode:
      • 0: частота 15,26 Гц
      • 1: частота 61,04 Гц
      • 2: частота 244,14 Гц
      • 3: частота 1 953,13 Гц
      • 4: частота 15 625 Гц
    • setPWMPrescaler(pin, prescaler) - установка частоты ШИМ для разных пинов (смотри пример!)
  • Дополнительно - несколько клёвых удобных функций
    • getVCC() - получить напряжение питания в милливольтах, т.е. опорное напряжение. Например с банки лития
    • getVoltage(pin) - получить напряжение на аналоговом пине с учётом реального напряжения питания
    • setConstant(voltage) - авто калибровка константы (слегка различается в разных партиях микроконтроллеров). В функцию подать напряжение питания в мВ (смотри пример!!)
    • getTemp() - получить примерную температуру ядра процессора
Пример использования нескольких таймеров (мультизадачность)
C++:
#include "GyverHacks.h"

// создать таймер, в скобках период в миллисекундах
GTimer myTimer1(500);
GTimer myTimer2(600);
GTimer myTimer3(1000);

void setup() {
  Serial.begin(9600);
}

void loop() {
  if (myTimer1.isReady())
    Serial.println("Timer 1!");

  if (myTimer2.isReady())
    Serial.println("Timer 2!");

  if (myTimer3.isReady())
    Serial.println("Timer 3!");
}
Автор
NovaStream2030
Скачиваний
2
Первый выпуск
Обновление
Рейтинг
5,00 звезд Оценок: 1

Последние обновления

  1. Ничего нового

    Поправочка..
  2. Добавлена куча всего

    Добавлена куча всего
Вверх