Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.11.2013, 01:28   #81
sunjob
Member
 
Регистрация: 16.11.2013
Сообщений: 32
Вес репутации: 0
sunjob is an unknown quantity at this point
По умолчанию

меня с толку сбило то, что эта библиотека писалась для "Arduino Nano" а у нее ноги "из другого места растут" (я так думал)
хотя, да, процессор, вроде тот же, только в ином исполнении

значит подключаем и не паримся "по ногам"?

Последний раз редактировалось sunjob; 17.11.2013 в 02:20.
sunjob вне форума   Ответить с цитированием
Старый 17.11.2013, 11:26   #82
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Цитата:
значит подключаем и не паримся "по ногам"?
Да.
Admin вне форума   Ответить с цитированием
Старый 21.11.2013, 20:37   #83
sunjob
Member
 
Регистрация: 16.11.2013
Сообщений: 32
Вес репутации: 0
sunjob is an unknown quantity at this point
По умолчанию

а если немного "подрихтовать", так возможно?

//
// to CyberLib.h or define out-file
//
//#define CYBERLIB_TIMER
#define CYBERLIB_SPI
#define CYBERLIB_UART
#define CYBERLIB_EEPROM
#define CYBERLIB_ROUTINES
#define CYBERLIB_ANALOG_READ

//
// to CyberLib.c
//
#ifdef CYBERLIB_TIMER
// ...
#endif

#ifdef CYBERLIB_SPI
// ...
#endif

etc ...

Последний раз редактировалось sunjob; 21.11.2013 в 21:25.
sunjob вне форума   Ответить с цитированием
Старый 24.03.2014, 13:37   #84
евгений
Junior Member
 
Регистрация: 24.03.2014
Сообщений: 2
Вес репутации: 0
евгений is an unknown quantity at this point
По умолчанию Re: Ускоряем работу Arduino

Админ,
для таких, как я (а таких 99.999..%) эта библиотека - то, что нужно.
Спасибо!
(осциллограмма в скрепке).

Через "родную" digitalWrite на Uno с 328 камнем получил 118 кГц. Через написанную Вами - 2,68 МГц!
Один недостаток - в среде 1.0.5 не работает. В 0022 - все ок.

Если бы еще полное описание... )
Миниатюры
Нажмите на изображение для увеличения
Название: 2_68MHz.jpg
Просмотров: 539
Размер:	166.8 Кб
ID:	1632  
евгений вне форума   Ответить с цитированием
Старый 26.03.2014, 15:22   #85
ys1797
Junior Member
 
Регистрация: 26.03.2014
Сообщений: 2
Вес репутации: 0
ys1797 is an unknown quantity at this point
По умолчанию Re: Ускоряем работу Arduino

Вот немного поправил CyberLib.h для своего mega2560.
Может кому пригодиться
Вложения
Тип файла: rar C2.rar (3.7 Кб, 560 просмотров)
ys1797 вне форума   Ответить с цитированием
Старый 26.03.2014, 16:09   #86
ys1797
Junior Member
 
Регистрация: 26.03.2014
Сообщений: 2
Вес репутации: 0
ys1797 is an unknown quantity at this point
По умолчанию Re: Ускоряем работу Arduino

Чтобы использовать Конструкцию вида:
D_in(<предопределенный номер пина>)

А не менять все, например, D2_Read, на D3_Read, если пин поменялся
Можно задействовать препроцессор:
Код:
#define _D_In(x) D##x##_In
#define D_In(x) _D_In(x)

#define _D_Out(x) D##x##_Out
#define D_Out(x) _D_Out(x)

#define _D_High(x) D##x##_High
#define D_High(x) _D_High(x)

#define _D_Low(x) D##x##_Low
#define D_Low(x) _D_Low(x)

#define _D_Inv(x) D##x##_Inv
#define D_Inv(x) _D_Inv(x)

#define _D_Read(x) D##x##_Read
#define D_Read(x) _D_Read(x)
ys1797 вне форума   Ответить с цитированием
Старый 26.03.2014, 16:25   #87
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Ускоряем работу Arduino

Будет время обязательно но подправлю
Admin вне форума   Ответить с цитированием
Старый 26.03.2014, 17:04   #88
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: Ускоряем работу Arduino

Цитата:
Сообщение от евгений Посмотреть сообщение
Один недостаток - в среде 1.0.5 не работает.
У мня работает -по крайней мере те функции которые пользую, а практически полное описание в этом топике
Bulatovor вне форума   Ответить с цитированием
Старый 05.04.2014, 15:12   #89
евгений
Junior Member
 
Регистрация: 24.03.2014
Сообщений: 2
Вес репутации: 0
евгений is an unknown quantity at this point
По умолчанию Re: Ускоряем работу Arduino

Цитата:
Сообщение от Bulatovor Посмотреть сообщение
, а практически полное описание в этом топике

ога, а программисту - для каждой библиотеки курить такие топики по десятку страниц )
тем более "не-программисту", к которым отношу себя.
евгений вне форума   Ответить с цитированием
Старый 08.04.2014, 19:04   #90
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию Re: Ускоряем работу Arduino

Для некурящих 9 страниц в одной куче
PHP код:
********Управление пинами:
Dx_Out;  - установка пина Х как выход
Dx_In
; - установка пина Х  как вход
Dx_Hihg
;-  установка высокого уровна на пине Х
Dx_Low
; - установка низкого уровня на пине Х
Ax_Read
; - чтение аналогового пина Х

********SmallUart
UART_Init
(115200);//инициализация последовательного порта
UART_ReadByte(b);//получить байт данных из последовательного порта
UART_SendByte(b);//отправить байт данных в последовательный порт
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(obrobotchik1000);// запуск таймера, первый параметр это Ваш обработчик прерывания, второй параметр это время, может принимать значения от 6 до 4000000
StopTimer1();// Выключить таймер
ResumeTimer1(); возобновить отсчет после остановки
RestartTimer1
(); перезапустить отсчет таймера заново


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

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

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

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

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

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

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

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

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

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


Здесь присутствуют: 55 (пользователей: 0 , гостей: 55)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:11. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика