CyberLib — различия между версиями

Материал из Умный дом
Перейти к: навигация, поиск
(Перенаправление на Заглавная страница)
Строка 1: Строка 1:
 
#REDIRECT [[Заглавная_страница]]
 
#REDIRECT [[Заглавная_страница]]
 +
= Вступление =
  
'''== CyberLib =='''
+
== CyberLib ==
  
Библиотека для является альтернативой стандартным функциям Arduino существенно ускоряющая работу процессора.
+
CyberLib это библиотека для является альтернативой стандартным функциям Arduino существенно ускоряющая работу процессора.
 
Поддерживает устройства на чипах Atmel328  и частично MEGA2560
 
Поддерживает устройства на чипах Atmel328  и частично MEGA2560
  
Строка 10: Строка 11:
 
Тема форума посвященного библиотеке тут [http://cyber-place.ru/showthread.php?t=550 Форум Умный дом]
 
Тема форума посвященного библиотеке тут [http://cyber-place.ru/showthread.php?t=550 Форум Умный дом]
  
Функции:
+
= Функции =                   
[[#Управление пинами]]
+
== Управление пинами ==
 
+
== Синтаксис команд: ==
+
 
+
 
+
 
<div id="Управление пинами">Управление пинами</div>
 
<div id="Управление пинами">Управление пинами</div>
 
Dx_Out;  - установка пина Х как выход
 
Dx_Out;  - установка пина Х как выход
Строка 23: Строка 20:
 
Ax_Read; - чтение аналогового пина Х
 
Ax_Read; - чтение аналогового пина Х
  
 +
== SmallUart ==
 
<div id="SmallUart">SmallUart</div>
 
<div id="SmallUart">SmallUart</div>
 
UART_Init(115200);//инициализация последовательного порта
 
UART_Init(115200);//инициализация последовательного порта
Строка 32: Строка 30:
 
size array-число отправляемых байт массива
 
size array-число отправляемых байт массива
  
 +
== Пауза ==
 
delay_us() и delay_ms()
 
delay_us() и delay_ms()
 
Функции delay_us() и delay_ms() можно применять в прерываниях так как они не используют таймер, но следует не забывать что точность этих функций зависит от использования в коде обработчиков прерываний. Если Вы не используете в коде прерывания то и точность будет высокая
 
Функции delay_us() и delay_ms() можно применять в прерываниях так как они не используют таймер, но следует не забывать что точность этих функций зависит от использования в коде обработчиков прерываний. Если Вы не используете в коде прерывания то и точность будет высокая
Строка 37: Строка 36:
 
delay_ms(n); //где n - задержка в мс, максимальная задержка может быть не больше 65000мс это равно 65сек
 
delay_ms(n); //где n - задержка в мс, максимальная задержка может быть не больше 65000мс это равно 65сек
  
 +
== Таймер ==
 
Timer1.  
 
Timer1.  
 
Настройку прерываний таймера можно настривать от 6мкс. до 4000000мкс.(4сек.) с шагом 1мкс.
 
Настройку прерываний таймера можно настривать от 6мкс. до 4000000мкс.(4сек.) с шагом 1мкс.
Строка 44: Строка 44:
 
RestartTimer1(); перезапустить отсчет таймера заново
 
RestartTimer1(); перезапустить отсчет таймера заново
  
 
+
== SPI ==
 
SPI. Увеличил пропускную способность в 1,85 раза, при работе на одной и той же частоте
 
SPI. Увеличил пропускную способность в 1,85 раза, при работе на одной и той же частоте
 
SPI теперь можно настроить и запустить одной строкой : StartSPI(0, 2, 1); Где первый параметр это режим mode от 0 до 3
 
SPI теперь можно настроить и запустить одной строкой : StartSPI(0, 2, 1); Где первый параметр это режим mode от 0 до 3
Строка 51: Строка 51:
 
если 0 то первым пойдет младший бит. Отправить байт данных в шину SPI можно так: SendSPI(12); Получить байт данных MyData=ReadSPI(); Выключить SPI можно так: StopSPI():
 
если 0 то первым пойдет младший бит. Отправить байт данных в шину SPI можно так: SendSPI(12); Получить байт данных MyData=ReadSPI(); Выключить SPI можно так: StopSPI():
  
EEPROM
+
== EEPROM ==
 
Ограничение! адресует максимум 256 адресов для типа Byte
 
Ограничение! адресует максимум 256 адресов для типа Byte
 
Для Word максимум 128
 
Для Word максимум 128
Строка 75: Строка 75:
 
uint8_t tmp=ReadEEPROM_Byte(0);
 
uint8_t tmp=ReadEEPROM_Byte(0);
  
 +
== Фильтр шума ==
 
find_similar(Array, sizeArray, range);
 
find_similar(Array, sizeArray, range);
 
Фильтр удаления шума и ложных срабатываний  
 
Фильтр удаления шума и ложных срабатываний  
Строка 83: Строка 84:
  
  
beep
+
== beep ==
 
beep(uint16_t dur, uint16_t frq);
 
beep(uint16_t dur, uint16_t frq);
 
Генерирует звуковые колебания, на любом пине с заданной частотой и длительностью
 
Генерирует звуковые колебания, на любом пине с заданной частотой и длительностью
Строка 89: Строка 90:
 
frq - частота от 10 Гц до 2000 Гц
 
frq - частота от 10 Гц до 2000 Гц
  
 +
== Программная перезагрузка ==
 
Soft Reset
 
Soft Reset
 
reset(); - программный сброс контроллера  
 
reset(); - программный сброс контроллера  
 
При помощи этой функции можно отправить контроллер в ребут в любом месте выполняемой программы
 
При помощи этой функции можно отправить контроллер в ребут в любом месте выполняемой программы
  
Бесконечный цикл
+
== Бесконечный цикл ==
 
Start - Начало цикла
 
Start - Начало цикла
 
End - Конец цикла
 
End - Конец цикла
  
Работа со сторожевым таймером    
+
== Работа со сторожевым таймером ==   
 
wdt_reset() - обнулить сторожевой таймер
 
wdt_reset() - обнулить сторожевой таймер
 
wdt_disable() - выключить сторожевой таймер
 
wdt_disable() - выключить сторожевой таймер

Версия 20:59, 7 июля 2015

Перенаправление на:

Вступление

CyberLib

CyberLib это библиотека для является альтернативой стандартным функциям Arduino существенно ускоряющая работу процессора. Поддерживает устройства на чипах Atmel328 и частично MEGA2560

Скачать самую свежую версию можно тут CyberLib

Тема форума посвященного библиотеке тут Форум Умный дом

Функции

Управление пинами

Управление пинами

Dx_Out; - установка пина Х как выход Dx_In; - установка пина Х как вход Dx_Hihg;- установка высокого уровна на пине Х Dx_Low; - установка низкого уровня на пине Х Ax_Read; - чтение аналогового пина Х

SmallUart

SmallUart

UART_Init(115200);//инициализация последовательного порта UART_ReadByte(byte);//получить байт данных из последовательного порта UART_SendByte(byte);//отправить байт данных в последовательный порт UART_SendArray(array, size array);// Функция отправляет в UART порт, массив типа байт, максимальный объем которого не должен превышать 65535 байт, минимальный объем массива 1 байт Можно также отправлять часть массива array-имя вашего массива, size array-число отправляемых байт массива

Пауза

delay_us() и delay_ms() Функции delay_us() и delay_ms() можно применять в прерываниях так как они не используют таймер, но следует не забывать что точность этих функций зависит от использования в коде обработчиков прерываний. Если Вы не используете в коде прерывания то и точность будет высокая delay_us(n); //где n - задержка в мкс, максимальная задержка может быть не больше 16000мкс delay_ms(n); //где n - задержка в мс, максимальная задержка может быть не больше 65000мс это равно 65сек

Таймер

Timer1. Настройку прерываний таймера можно настривать от 6мкс. до 4000000мкс.(4сек.) с шагом 1мкс. StartTimer1(obrobotchik, 1000);// запуск таймера, первый параметр это Ваш обработчик прерывания, второй параметр это время, может принимать значения от 6 до 4000000 StopTimer1();// Выключить таймер ResumeTimer1(); возобновить отсчет после остановки RestartTimer1(); перезапустить отсчет таймера заново

SPI

SPI. Увеличил пропускную способность в 1,85 раза, при работе на одной и той же частоте SPI теперь можно настроить и запустить одной строкой : StartSPI(0, 2, 1); Где первый параметр это режим mode от 0 до 3 Второй параметр это делитель тактовой частоты, может принимать значения 2, 4, 8, 16, 32, 64, 128. Если Вы хотите выяснить частоту SPI то должны тактовую частоту контроллера 16000000 разделить на любой делитель из списка. И последний параметр это какой бит пойдет первым. Если 1 то первым пойдет старший бит если 0 то первым пойдет младший бит. Отправить байт данных в шину SPI можно так: SendSPI(12); Получить байт данных MyData=ReadSPI(); Выключить SPI можно так: StopSPI():

EEPROM

Ограничение! адресует максимум 256 адресов для типа Byte Для Word максимум 128 Для Long максимум 64

Сохранить значение 4000000 в EEPROM по адресу 0 тип Long WriteEEPROM_Long(0, 4000000);


Прочитать из EEPROM с адреса 0 значение типа Long uint32_t tmp=ReadEEPROM_Long(0);

Сохранить значение 4000 в EEPROM по адресу 0 тип Word WriteEEPROM_Word(0, 4000);

Прочитать из EEPROM с адреса 0 значение типа Word uint16_t tmp=ReadEEPROM_Word(0);

Сохранить значение 400 в EEPROM по адресу 0 тип Byte WriteEEPROM_Byte(0, 200);

Прочитать из EEPROM с адреса 0 значение типа Byte uint8_t tmp=ReadEEPROM_Byte(0);

Фильтр шума

find_similar(Array, sizeArray, range); Фильтр удаления шума и ложных срабатываний Функция возвращает наиболее часто встречаемое в массиве значение Array - Указатель на проверяемый массив, массив может иметь тип uint16_t или uint8_t sizeArray - длинна массива не более 256 элементов range - предел погрешности(отклонен� �е) может колебаться от 0 до 127, при значении 0 функция будет искать точные копии значений


beep

beep(uint16_t dur, uint16_t frq); Генерирует звуковые колебания, на любом пине с заданной частотой и длительностью dur - длительность от 50мс до 65535 мс frq - частота от 10 Гц до 2000 Гц

Программная перезагрузка

Soft Reset reset(); - программный сброс контроллера При помощи этой функции можно отправить контроллер в ребут в любом месте выполняемой программы

Бесконечный цикл

Start - Начало цикла End - Конец цикла

Работа со сторожевым таймером

wdt_reset() - обнулить сторожевой таймер wdt_disable() - выключить сторожевой таймер wdt_enable(timeout) - Инициализация сторожевого таймера

Возможные значения timeout WDTO_15MS WDTO_30MS WDTO_60MS WDTO_120MS WDTO_250MS WDTO_500MS WDTO_1S WDTO_2S WDTO_4S WDTO_8S

  1. REDIRECT Main Page current page