Библиотека ускоряющая работу платы Arduino » Роботы на платформе Ардуино
Ардуино иногда работает очень медленно. Такая скорость работы не подходит для выполнения Ваших задач. На помощь приходит библиотека значительно ускоряющая работу программ. Скачиваем, подключаем и работаем!
Хочу поделится с читателями, библиотекой «CyberLib», значительно ускоряющую работу ардуино.
Библиотека работает с Arduino Nano, Arduino Mega и Arduino Leonardo.
Занимает 566 байт и выдаёт частоту 2650 кГц.
Разогналась в 22 раза.
Управление пинами: Dx_Out; — установка пина Х как выход Dx_In; — установка пина Х как вход Dx_Hihg; — установка высокого уровна на пине Х Dx_Low; — установка низкого уровня на пине Х Dx_Read; — чтение пина Х Dx_Inv; — инвертирует значение на пине Х
UART_Init(57600); — инициализация последовательного порта. UART_ReadByte(b); — получить байт данных из последовательного порта. UART_SendByte(b); — отправить байт данных в последовательный порт. Буфферизируется только 1 байт данных, принятый с Serial порта.
UART_SendArray(array, size array); — отправляет в порт массив типа байт. Где array-имя вашего массива, а size array-число отправляемых байт массива.
Максимальный объем массива не должен превышать 65535 байт.
Альтернатива стандартным функциям delayMicroseconds() и delay()
Описание
Функции delay_us(); и delay_ms(); можно применять в прерываниях так как они не используют таймер. Точность этих функций зависит от использования в коде обработчиков прерываний. Если в коде не использовать прерывания точность будет высокая. delay_us(n); n — задержка в мкс, максимальная задержка может быть не больше 16000 мкс. delay_ms(n); n — задержка в мс, максимальная задержка может быть не больше 65000 мс.
StartTimer1(obrobotchik, 1000); Первый параметр-обработчик прерывания, будет запускаться каждый раз по истечении заданного времени. Второй параметр это время, может принимать значения от 6 до 4000000 мкс., шаг 1 мкс. StopTimer1(); — остановить таймер. ResumeTimer1(); — возобновить отсчет после остановки. RestartTimer1(); — перезапустить отсчет таймера заново.
Увеличена пропускная спсобность 1.85 раза. StartSPI(0, 2, 1); — Первый параметр это режим mode от 0 до 3.
Второй — это делитель тактовой частоты, может принимать значения 2, 4, 8, 16, 32, 64, 128. Для вычисления частоты SPI нужно тактовую частоту контроллера 16000000 разделить на любой делитель из списка.
Третий параметр это какой бит пойдет первым. Если 1 то первым пойдет старший бит если 0 то первым пойдет младший бит.
Отправить байт: SendSPI(b);
Получить байт: MyData=ReadSPI();
Выключить SPI: StopSPI();
Работа с EEPROM
Описание
WriteEEPROM_Long(0, 4000000); — записать 4000000 в EEPROM по адресу 0 тип Long.
uint32_t tmp=ReadEEPROM_Long(0); — прочитать из EEPROM с адреса 0 значение типа Long.
WriteEEPROM_Word(0, 4000); — записать 4000 в EEPROM по адресу 0 тип Word.
uint16_t tmp=ReadEEPROM_Word(0); — прочитать из EEPROM с адреса 0 значение типа Word. WriteEEPROM_Byte(0, 40); — записать 40 в EEPROM по адресу 0 тип Byte.
uint8_t tmp=ReadEEPROM_Byte(0); — прочитать из EEPROM с адреса 0 значение типа Byte.
Адресует максимум 256 адресов для типа Byte
Для Word максимум 128
Для Long максимум 64
Сторожевой таймер
Описание
reset(); — программный сброс контроллера.
При помощи этой функции можно отправить контроллер в ребут в любом месте выполняемой программы.
Приведенный пример показывает наиболее часто встречаемое значение 999, но если изменить третий параметр вызываемой функции с 0 на 1, то функция вернет значение 10, так как посчитает значение 9 и 11 как 10
find_similar(Array, sizeArray, range); Array — Указатель на проверяемый массив, массив может иметь тип uint16_t или uint8_t. sizeArray — длинна массива не более 256 элементов. range — предел погрешности(отклонение) может колебаться от 0 до 127, при значении 0 функция будет искать точные копии значений.
Например: Ультразвуковой дальномер производит 5 замеров и складывает эти показания в массив, после выполнения этой функции будет возвращено наиболее вероятное измеряемое значение.
Библиотека написана не мной, я лишь опубликовал её с разрешения автора. Здесь находится источник, автор либы Admin.
А тутили тут можно скачать сабж.
Автор: starikstd
Ключевые слова:
библиотеки ардуино
ардуино
программма
nano
MEGA
цифровые порты
CyberLib
UART
include
Serial
EEPROM
параметр
массив
Работа
таймер
Arduino
micros
задержка
Роботы на платформе Ардуино
робот
Занятие №5 Датчики (термистор) - проект Arduino в лицее №17 г. Северодвинска