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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.11.2015, 13:36   #541
Dmti
Junior Member
 
Регистрация: 07.11.2015
Сообщений: 4
Вес репутации: 0
Dmti is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Всем здравствуйте. Выкладываю так для разнообразия когда то писал для меги8 отлаживал на ардуино 2560 нужно было использовать минимум процессорного времени. Скетч был написан чисто только для отладки. Может каму будет интересно.
Цитата:
#include <avr/io.h>
#include <avr/interrupt.h>

//**************************************** ******************************
#define synh PD0 //ВХОД синхро импульс перехода через 0 прерывание INT0
#define tir PB7 //ВЫХОД импульс упровление симистором 13 со светодиодом
volatile unsigned int tcntValue;//время после которого срабатывает таймер
volatile unsigned int tcnt, pause;//время через которое закроется тиристор
int min = 23; int max = 1024; int Pressure = 3;
//**************************************** ******************************
ISR(INT0_vect) // Функция обработки прерывания INT0
{
// настраиваем делитель таймера
TCCR1A = Pressure;
//выставляем начальное значение таймера
OCR1A = tcntValue;//Через сколько тиков включить
OCR1B = tcnt; //через сколько выключить
TCNT1 = 0; //обновляем счет тиков
}

//**************************************** ******************************
//Тайме первый цикл включает второй выключает тиристор
ISR (TIMER1_COMPA_vect)
{
PORTB |= ( 1 << tir); //включаем тиристор
}
ISR (TIMER1_COMPB_vect)
{
PORTB &=~ ( 1 << tir); //выключаем тиристор
OCR1A = OCR1B = 0;// и останавливаем таймер
}

//**************************************** ******************************
void setup() {
pinMode(3, OUTPUT);
analogWrite(3,10);
tcntValue = 10;
pause = 5;
tcnt = tcntValue + pause;
//---------------------------//настраиваем порты для управлением симистора
DDRB = ( 1 << tir ); //настраиваем tir на выход
PORTB &= ~( 1 << tir ); //гасим светодиод
DDRD &= ~_BV(synh); //вход детектора нуля INT0
PORTD |= _BV(synh); //с подтягивающим резистором для питания транзистора оптрона

//---------------------------//Запрещаем прерывание глобально
cli();
//---------------------------//настраиваем внешнее прерывание
EIMSK &= ~ (1 << INT0); //Запретить прерывание
EICRA &= ~ (1 << ISC00) | (1 << ISC01); //Обнуляем биты ISC00 и ISC01 в регистре EICRA
EICRA |= 2; //и включаем сработку по фронту
EIMSK |= (1 << INT0); //разрешаем внешнее прерывание 0

//---------------------------//настраиваем прерывание на таймер
TCCR1B = Pressure; //настраиваем делитель на 8 (1тик=0.5мкс 20мс=400тиков)
SREG |= (1<<7); // Глобальное разрешение прерываний.
TIMSK1 |= (1<<OCIE1A) | (1<<OCIE1B); //включаем компаратор А и В

//---------------------------//Разрешаем прерывание глобально
sei();
Serial.begin(9600);
}

//**************************************** ******************************
void loop() {
tcntValue = analogRead(A0);
if(tcntValue > max) tcntValue = max;
if(tcntValue < min) tcntValue = min;
tcnt = tcntValue + pause;
Serial.print(tcntValue);
Serial.print(" == ");
Serial.println(tcnt);
}
Dmti вне форума   Ответить с цитированием
Старый 09.11.2015, 22:31   #542
Zangez
Junior Member
 
Регистрация: 09.11.2015
Сообщений: 4
Вес репутации: 0
Zangez is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Добрый вечер.

Скопировал скетч , при компиляции ругается :

In file included from sketch_nov09a.ino:1:
C:\Users\Home\Documents\Arduino\librarie s\CyberLib/CyberLib.h:1: error: stray '\357' in program
C:\Users\Home\Documents\Arduino\librarie s\CyberLib/CyberLib.h:1: error: stray '\273' in program
C:\Users\Home\Documents\Arduino\librarie s\CyberLib/CyberLib.h:1: error: stray '\277' in program

Не могу понять в чем дело. Подскажите куда копать ?

273 #define D22_In DDRA &=B11111110 // PA 0 D22
277 #define D26_In DDRA &=B11101111 // PA 4 D26
357 #define D46_Out DDRL |=B00001000 // PL 3 D46


пробовал закомментировать, не помогло.
Zangez вне форума   Ответить с цитированием
Старый 09.11.2015, 22:42   #543
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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: Многоканальный Dimmer, работающий в фоновом режиме

Еще бы понять какая у Вас ардуина?
Admin вне форума   Ответить с цитированием
Старый 09.11.2015, 22:43   #544
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от Dmti Посмотреть сообщение
Всем здравствуйте. Выкладываю так для разнообразия когда то писал для меги8 отлаживал на ардуино 2560 нужно было использовать минимум процессорного времени. Скетч был написан чисто только для отладки. Может каму будет интересно.
Спасибо! Часто спрашивают для Меги
Admin вне форума   Ответить с цитированием
Старый 11.11.2015, 02:09   #545
Zangez
Junior Member
 
Регистрация: 09.11.2015
Сообщений: 4
Вес репутации: 0
Zangez is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от Admin Посмотреть сообщение
Еще бы понять какая у Вас ардуина?
Звиняюсь, Ардуино Nano v.3

Ранее работал на win-Xp , все было исправно, но ноутбук приказал долго жить, перешел на win7-64bit.
Zangez вне форума   Ответить с цитированием
Старый 11.11.2015, 11:13   #546
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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: Многоканальный Dimmer, работающий в фоновом режиме

А библиотека CybrLib добавлена?
Admin вне форума   Ответить с цитированием
Старый 15.11.2015, 09:53   #547
VasiaV
Junior Member
 
Регистрация: 15.11.2015
Сообщений: 2
Вес репутации: 0
VasiaV is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Попробовал программу Dmti не работает моргает лампочка беспорядочно почему не пойму. Раз моргает значит прерывание срабатывает и тиристор открывается и закрывается а плавно не регулирует. Программировать только начал а тут и записи не совсем понятные. Dmti помоги почему плавно не регулирует
VasiaV вне форума   Ответить с цитированием
Старый 16.11.2015, 03:51   #548
Zangez
Junior Member
 
Регистрация: 09.11.2015
Сообщений: 4
Вес репутации: 0
Zangez is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Сообщение от Admin Посмотреть сообщение
А библиотека CybrLib добавлена?
Да , установлена в папку libraries.
Компилятор , ругаясь, указывает путь к оной.

C:\Users\Home\Documents\Arduino\librarie s\CyberLib/CyberLib.h:1: error: stray '\357' in program


Сегодня попробовал запуститься с ноутбука жены, ситуация аналогичная.
Zangez вне форума   Ответить с цитированием
Старый 16.11.2015, 15:03   #549
Dmti
Junior Member
 
Регистрация: 07.11.2015
Сообщений: 4
Вес репутации: 0
Dmti is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Цитата:
Dmti не работает моргает лампочка беспорядочно
Синхроимпульс глянь, чтоб был без помех. Ну и традиционный вопрос - пробуешь на чем?
Dmti вне форума   Ответить с цитированием
Старый 17.11.2015, 10:13   #550
VasiaV
Junior Member
 
Регистрация: 15.11.2015
Сообщений: 2
Вес репутации: 0
VasiaV is an unknown quantity at this point
По умолчанию Re: Многоканальный Dimmer, работающий в фоновом режиме

Собираю на ардуино мини а загрузить хочу по полной. Эта программа 28 байт занимает места то что надо но не работает. Синхроимпульс это сигнал перехода через ноль?
Собирал по схеме показанный а первом посте посмотреть сигнал нечем. Третий день бьюсь НЕ РАБОТАЕТ.
VasiaV вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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