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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2016, 22:23   #211
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

Admin
Может тога задефинить оба камня с предупреждением что со 168 полностью не тестировалось пока
PHP код:
#if defined (__AVR_ATmega128__) || defined (__AVR_ATmega128P__) ||defined (__AVR_ATmega328__) || defined (__AVR_ATmega328P__) 
Bulatovor вне форума   Ответить с цитированием
Старый 22.01.2016, 12:30   #212
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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 вне форума   Ответить с цитированием
Старый 06.02.2016, 15:11   #213
medic
Junior Member
 
Регистрация: 06.02.2016
Сообщений: 1
Вес репутации: 0
medic is an unknown quantity at this point
По умолчанию Re: Ускоряем работу Arduino

Скажите, а если мне надо обращаться к аналоговым портам A8-A11 в меге 2560, можно добавить поддержку в библиотеку?
medic вне форума   Ответить с цитированием
Старый 06.02.2016, 23:09   #214
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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 вне форума   Ответить с цитированием
Старый 07.02.2016, 12:43   #215
gonzales
Junior Member
 
Регистрация: 07.02.2016
Сообщений: 5
Вес репутации: 0
gonzales is an unknown quantity at this point
По умолчанию Re: Ускоряем работу Arduino

Спасибо автору за бибилиотеку, но не могли бы Вы прокомментировать следующее. Есть код диммера 220, написанного я так понимаю тоже Вами. http://cyber-place.ru/showthread.php?t=191. Собрал схему, все работает замечательно, но стоило внести изменение в код, а именно добавить delay(1000) в секции Setup как все перестало работать, ардуина просто зависает, причем не всегда а примерно в 50% случаев. Переписал код без использования CybelLib, все сразу заработало. Плата у мена Про Мини.
gonzales вне форума   Ответить с цитированием
Старый 07.02.2016, 13:04   #216
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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

delay(1000) в секции setup, ни как не может влиять на выполнение остального кода, возможно Вы допустили ошибку в другом месте скетча
Admin вне форума   Ответить с цитированием
Старый 07.02.2016, 13:16   #217
gonzales
Junior Member
 
Регистрация: 07.02.2016
Сообщений: 5
Вес репутации: 0
gonzales is an unknown quantity at this point
По умолчанию Re: Ускоряем работу Arduino

сам в шоке, перепроверял многократно. Либо attachInterrupt либо delay. Код брал 100% Ваш, единственное изменение вносил - delay(1000), причем как я говорил баг плавающий, проявляется не каждый раз. Может конечно у меня глючная плата, но проверить на другой не мог, так как схема диммера собрана вместе с ней.
gonzales вне форума   Ответить с цитированием
Старый 07.02.2016, 19:43   #218
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

В таких случаях обычно выкладывают код - битва экстрасенсов это к каналу тнт. Или ошибка найдется или удостовериться в правильности на нашем железе
Bulatovor вне форума   Ответить с цитированием
Старый 08.02.2016, 11:10   #219
gonzales
Junior Member
 
Регистрация: 07.02.2016
Сообщений: 5
Вес репутации: 0
gonzales is an unknown quantity at this point
По умолчанию Re: Ускоряем работу Arduino

Код:
#include <CyberLib.h> //Библиотека от Cyber-Place.ru
volatile uint8_t tic, Dimmer1, Dimmer2, Dimmer3;
uint8_t data;

void setup() 
{ 
  D4_Out; D5_Out; D6_Out; //Настраиваем порты на выход
  D4_Low; D5_Low; D6_Low; //установить на выходах низкий уровень сигнала
  D2_In; //настраиваем порт на вход для отслеживания прохождения сигнала через ноль  
  
//CHANGE – прерывание вызывается при любом изменении значения на входе; 
//RISING – вызов прерывания при изменении уровня напряжения с низкого (Low) на высокий(HIGH) 
//FALLING – вызов прерывания при изменении уровня напряжения с высокого (HIGH) на низкий (Low) 
    attachInterrupt(0, detect_up, LOW);  // настроить срабатывание прерывания interrupt0 на pin 2 на низкий уровень
    StartTimer1(halfcycle, 40); //время для одного разряда ШИМ
    StopTimer1(); //остановить таймер
    UART_Init(115200); //инициализация порта

    delay(1000);
}
//********************обработчики прерываний*******************************
void halfcycle()  //прерывания таймера
{ 
  tic++;  //счетчик  
  if(Dimmer1 < tic ) D4_High; //управляем выходом
  if(Dimmer2 < tic ) D5_High;  //управляем выходом
  if(Dimmer3 < tic ) D6_High;  //управляем выходом 
}

void  detect_up()  // обработка внешнего прерывания. Сработает по переднему фронту
{  
 tic=0;             //обнулить счетчик
 ResumeTimer1();   //запустить таймер
 attachInterrupt(0, detect_down, HIGH);  //перепрограммировать прерывание на другой обработчик
}  

void  detect_down()  // обработка внешнего прерывания. Сработает по заднему фронту
{   
 StopTimer1(); //остановить таймер
 D4_Low; D5_Low; D6_Low; //логический ноль на выходы
 tic=0;       //обнулить счетчик
 attachInterrupt(0, detect_up, LOW); //перепрограммировать прерывание на другой обработчик
} 
//*************************************************************************
void loop() 
{Start
  if (UART_ReadByte(data)) Dimmer1=data;
  
   Dimmer2=195; //200=мин. 0=макс 
   Dimmer3=0; //200=мин. 0=макс 
End}
gonzales вне форума   Ответить с цитированием
Старый 08.02.2016, 11:43   #220
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9823
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

Точно не помню какой таймер использует delay, но если Timer1 то функция StopTimer1(); останавливает таймер
Admin вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 46 (пользователей: 0 , гостей: 46)
 

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

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

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


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


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