Перейти к содержанию

Помигаем светодиодами


Krik99

Рекомендуемые сообщения

Доброго времени суток.

Помогите написать програму на Си для гирлянды на АVR (у меня есть ATMega8, но потом могу переделать на какойто ATiny).Три канала. Пару эфектов я придумал.Но у меня появились вопросы. :unsure:

1вопрос.Как сделать чтобы можно было переключать все програмы одной кнопкой.

2вопрос.Как соединить эти все програмы.

3вопрос.Как сделать чтобы один канал плавно зажигался ,а другой плавно затухал.

Хочу AVR с тактовой частотой 100мгц.

Ну вот! Я же говорил - ноль... а ты единица... единица...

Ссылка на комментарий
Поделиться на другие сайты

а тебе именно на СИ? глянь тему http://forum.cxem.net/index.php?showtopic=12666

я там прогу свобю выложил как раз то что тебе надо. плавно затухает. только с АВРами я ещё на работал. я программатор то собрал дня 3 назад. Но вобщем программа рабочая и суть уловить можно по ней.

но у меня задача посложнее 4 светодиода. и эффектов хочу штук 10... пока для самых основных проги написал. И вот ещё загвоздка чтобы все это переключалось одной кнопкой. Надо как то так сделать... пальцем же кнопу замыкаешь миллисикунд в лучшем случае на 200 и при этом может смениться не один а несколько эффектов. Вот надо как то сделать чтобы только сделующий эффект был. есть пара идей но пока не начал в этом копаться... да и в ассемблере знания не глубокие у меня

Изменено пользователем pirojok
Ссылка на комментарий
Поделиться на другие сайты

Нашёт кнопки я могу подсказать.Для кнопки после програмы обработки самой кнопки надо писать паузу гдето так на 1сек.

Если хочеш могу на Си написать.Так как я вооообще не знаю не Бейсик не Асемблер.

Изменено пользователем Krik99

Хочу AVR с тактовой частотой 100мгц.

Ну вот! Я же говорил - ноль... а ты единица... единица...

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

а во время этой паузы основная программа будет выполняться? я просто думал начинать выполнять опрос кнопки через какое то время. секунду примерно. давай пример на си

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

а про прерывания вы забыли?

пишите прсотенькое прерывание при нажатии инкремент константы..

в зависимости от константы выбирается подпрограмма

плавное изменение спомощью ШИМ делаете?

у мну етсь подлая идея сделать плавную регулировку света в комнате .. вот думаю как организовать :)

Изменено пользователем Duhas

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Duhas -есле не трудно напишите пример на Си желательно.Заранние спасибо.

Хочу AVR с тактовой частотой 100мгц.

Ну вот! Я же говорил - ноль... а ты единица... единица...

Ссылка на комментарий
Поделиться на другие сайты

к сож-ю.. моему и наверно вашему, не пишу на си под МК.. тока на PC... пишу на асме.. выглядит следующим образом

.org 0x02

rjmp <имя подпрограммы>

<имя подпрограммы>:

inc stat <- инкремент константы.. нада только еще ограничить его кол-вом эффектов

reti <- выход из прерывания

в сях можно выставлять векторы прерываний.. есть курс па си.. вроде бы он у мну сохранен был вопщем пошел я его смареть..

пасмарел.. вопщем..

#pragma interrupt_handler (название функции обработчика) : (номер прерывания по ДШ) так поределяем обработчик прирывания

#pragma interrupt_handler timer0_ovf_isr:7

void timer0_ovf_isr(void)

{ //TIMER0 has overflowed

TCNT0 = 0xB8; //обновить число начал счета

}

тут прерывание переполнения таймера.. но никто не мешает переделать его в прерывания изменения состояния одной из I/O линий...

тоесть по идее будет так

#pragma interrupt_handler change:2 /* я юзаю 32-ю мегу... 2 - прерывание INT0.. ну с этим я думаю разберетесь...*/

void change(void) /*вот хз нада ли вводить нашу константу в функцию.. я си уже забываю :( может не не void а int stat - ну тут тоже разберетесь*/

{

if(stat < <кол-во эффектов>)

stat++;

else stat=0;

}

ну и в общем цикле делаем проверку типа

switch (stat)

и вызываем подпрограммы...

по идее нада 1 раз выполнив подпрограмму эффекта вернуться к выбору эффекта... может можно и без этого но в голову пока не приходит как ..

http://forum.cxem.net/ вам в помощь

Изменено пользователем Duhas

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»

Ссылка на комментарий
Поделиться на другие сайты

да,а про прерывания кстати тема. так наверное и сделаю. надо будет сначала почитать что это такое и с чем его едят,а то я только в общих чертах знаю.

насчет света в комнате наткнулся на одну интересную конструкцию. именно как раз плавное зажигание и и гашение и все это с сенсором. но там на пике12ц508. если интересно ссылку могу кинуть как за компом окажусь.

Ссылка на комментарий
Поделиться на другие сайты

да неоткажусь... пик не пик.. разницы.. мне больше важна аналоговая часть и принцип управления ею.. остальное голову пока в стостоянии придумать :)

в прирываниях ничего сложного .. разрешил их для начала.. указал векторы.. работает.. толко вот есть детали.. к примеру я сначала не догнал в чом суть проблемы.. жму калвишу а срнабатывает 2 раза или 1 или 3 када как.. думал дребезг .. ага .. не он а другое.. выставил прерывание по изменению лог уровня.. а башка деревяшка не додумалась сроазу что при нажатии происходит 2 изменения ...

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»

Ссылка на комментарий
Поделиться на другие сайты

http://www.kursovik.net/electronic.html

вот там все эти девайсы. сам как то искал наткнулся. Попробуй, если получится напиши:) поделись впечателниями, я тож соберу :)

Ссылка на комментарий
Поделиться на другие сайты

Уважаемый Krik99, Вы разобрались с регулировкой яркости??? Просто я делал бегущие огни на АТ2051, получилось около 100 эффектов на 8 гирлянд, а вот с яркостью заглох. Если есть какието идеи помогите пожалуйста.

Изменено пользователем M@T_F@Q
Ссылка на комментарий
Поделиться на другие сайты

делается на скоклько я знаю и понмаю широтно импульсной модуляцией... нада ярче делаем импульсы шире, а паузе меньше... нада меньше яркости увеличиваем паузы пропорционально уменьшая ширину импульса ...

скора могет буду писать такую приблуду... если соберсь выкину код ..

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»

Ссылка на комментарий
Поделиться на другие сайты

Если изменять только яркость светодиода, то нужно делать именно задержкой, а если нагрузкой использую симмистр??? Тут уже нужна привязка к нулю, вот сама эта привязка и интересна, как её правильно определить по фронту или по спаду???

Ссылка на комментарий
Поделиться на другие сайты

я к сожалению не силен в теории из области симисторов.. вазьми эмулятор типа протеуса.. и вперед..

как я понимаю симистор- ключ.. откроется при приложении напряжения.. или закроется при приложении отр напряжения.. мона если есть отрицательное взять транзюком коммутировать вход симистора на отр напряжение..

я пол ночи просидел над гемором включить релюшку при 0 или 1 на вводе мк.. схема с 1 транзюком тупо открывается а закрываться не хочет ... в итоге дожил до оптопары :)))) зато работает

Ж)

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Я никак не могу разобраться с прирываниями кто разбираеться в прирываниях напишите (если не трудно) простую програму на Си чтобы она мигала двумя светодиодами (при этом используя прирывание).

Хочу AVR с тактовой частотой 100мгц.

Ну вот! Я же говорил - ноль... а ты единица... единица...

Ссылка на комментарий
Поделиться на другие сайты

напиши в личку конкретную задачу... т.е. к примеру при прерывании переключаться с мигания одного на мигание другова.. при новом прерывании снова переключаться и тд ...

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»

Ссылка на комментарий
Поделиться на другие сайты

А мне лижбы два светодиода мигало.1 светодиод зажогся, 2 светодиод потух,2 светодиод зажогся , 1 светодиод потух. И так далие.Кокую программу вам лехче написать, такую и пишите мне просто надо изучить на примере прерывание в МК ATmega8 на Си.

Хочу AVR с тактовой частотой 100мгц.

Ну вот! Я же говорил - ноль... а ты единица... единица...

Ссылка на комментарий
Поделиться на другие сайты

Вот пример кода, мигающего светодиодами по очереди (написано в среде IAR Embedded Workbench).

За работоспособность на Mega не очень ручаюсь, у меня она в прерываниях не могла i++ сделать. Но пока другой контроллер лень воткнуть в плату, хотя он есть :) сессия :)

Точно могу утверждать, что эту же задачу этим же способом успешно решал, когда учился азам на основе AT89C51RC.

#include "iom8.h"
#include "inavr.h"
#include "math.h"

char WDT_FLAG=0xA5;
unsigned int i=0;

//------------------------------------//								
__C_task void main(void)		
{							   
__disable_interrupt();//отключение прерываний		 

// что-то с watchdog таймером
WDTCR=0x18;	// 0001 1000  change enable
WDTCR=0x0F;	// 0000 1111  watchdog set 2048 ms

__watchdog_reset();

comparator_off;	// отключение компаратора (чтоб наверняка)

// тут что-то со вторым таймером. пока не надо.
TCCR2=0x19;			// FOC2=0 WGM20=0 COM21=0 COM20=1 WGM21=1 CS22=0 CS21=0 CS20=1
OCR2=(73728/38)/20-1;		// Timer2: setting ADC frecuency(ADC_FREC) (вроде настройка ШИМ)

TCCR0=0x05;	// предварительный делитель тамера 0 1/1024 CK
							// тактовая частота 7200 Гц (кварц 7.3728 МГц)
TCNT0=0xB7;	// период следования прерываний 0.01 c (100 Гц)
TIMSK=(TOIE0);	// прерывания по переполнению таймера-счетчика 0

// инициализация портов ввода-вывода //
DDRB=0xff;	 // PORTB весь выход
DDRC=0xff;	 // PORTC весь выход
DDRD=0xff;	 // PORTD весь выход

PORTB=0x00;				   
PORTC=0x00;				   
PORTD=0xc0;				   

TCCR1B=7;					  

__enable_interrupt();	 //запуск прерываний

PORTB=0x55;	 //0101 0101

for(;;)
{
 __watchdog_reset();

// 1 раз в секунду инвертируем PORTB
 if(i==99)
 {
i=0;
PORTB=!PORTB;
 }   


 WDT_FLAG=0xA5;  
}
}

// прерывания по переполнению таймера-счетчика 0 //
#pragma optimize=0
#pragma vector=TIMER0_OVF_vect

__interrupt void Timer0_Overflow(void)
{
 TCNT0=0xB7;  //частота прерываний 100 Гц

 i++;

 if(WDT_FLAG==0xA5){__watchdog_reset();WDT_FLAG=0;}
}

Изменено пользователем Jozef

73 de R9FDJ ex. UB8FCG | QTH LO88AA, PM-03, Пермь | RCWC #1256

Ссылка на комментарий
Поделиться на другие сайты

вопщем я вапще не ощущаю на кой хрен в мигании 2-мя диодами нужно прерывание :)

миганите мона на асме сделать в разы проще Ж)

не используя ни одного таймера.. все задержки делаются оч легко ...

тут моск нада включать а не городить кучу текста

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»

Ссылка на комментарий
Поделиться на другие сайты

не, это то понятно.. просто раз Krik99 пытается разобраться в прерываниях и просит показать работу с ними на каком-либо примере... название темы навевает пример вполне четко.. и эта прога написана очень и очень давно, на шаблоне от промышленного измерителя температуры, потому и текста много :)

понятно, что лучше в прерываниях посерьезнее замутить что-либо. по крайней мере, кроме i++ у меня в них еще индикация включается с частотой 72 Гц (или около того)

Изменено пользователем Jozef

73 de R9FDJ ex. UB8FCG | QTH LO88AA, PM-03, Пермь | RCWC #1256

Ссылка на комментарий
Поделиться на другие сайты

нет, я о другом, прерывания и мигание диодов вещи для меня совершенно не пересекающиеся между собой... мигание монжно сделать элементарным свдвигом + задержка..и все..и пустить в цикл.. задержка делается на асме декрементом и переходом ... на любое время

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»

Ссылка на комментарий
Поделиться на другие сайты

Duhas

А если например мигать двумя светодиодами и например таймер на 2часа с регулировкой времени.То мне кажеться что всётаки понадобиться прирывания.

Да и если хтото напишет желательно под компилятор WinAVR.А в журналах Радиоаматор 2005 нет случайно чего нибудь про прирывания в AVR.

Изменено пользователем Krik99

Хочу AVR с тактовой частотой 100мгц.

Ну вот! Я же говорил - ноль... а ты единица... единица...

Ссылка на комментарий
Поделиться на другие сайты

ладна, прочитаем краткий курс по МК, хотя не считаю седя достаточно квалифицированным для этого...

МК выполняет заложенную в него программу стартя с адреса 0х0000

,этот адрес является адресом вектора прерывания reset, которое происоходит при самом прерывании и всключении МК.. далее идут адреса других перываний... после адреса 0х0050 можно писать свой код, вот как рас этот код и выпоняет мк после включения.. из-за манипуляции вида:

пишу на асме, ибо в си все по идее вроще, все это само по себе делается по идее..

.org 0

rjmp START

.org 0x02

rjmp tonoff /вот это уже переходы к меткам иначе говоря вектора прерываний

.org 0x04

rjmp light

.org 0x20

rjmp ADCE

.org 0x50

START:

«Как сердцу выразить себя? … Мысль изреченная есть ложь!»

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Сила с вами прЕбудет, только в том случае, если корпуса м/сх совпадают. А вообще такие вопросы решают иногда заглядывая в datasheet на микросхемы.
    • 350 стоит по умолчанию, вшито . Я так понял. Я включил . У меня сразу лым пошёл и само жало чуть по чернело но ещё рабочее ... Я научился пользоваться термопарой , измеряю, смотрю по таблице - разница очень большая . Кручу ратио - показания меняются, это гуд. Я думал что 100% - это предел. Но они пошли и дальше ..... Отсюда вопрос может кто знает как меняется температура в какую сторону при прокрутке туда или обратно? Хотя бы примерно?
    • Была у меня книжка (что-то типа помощь сельскому радиолюбителю) и в разделе самодельные источники питания был "рецепт" батарейки: две пластины меди и цинк(алюминий, не могу точно утверждать) между ними помещалась промокашка, предварительно замоченная в солевом растворе и присыпанная с одной стороны толченым углем. Элемент позиционировался как походный и потому промокашку сушили и вкладывали между пластин, а при необходимости ее мочили и элемент начинал работать. Точно не помню технологию и могу где-то ошибаться. Так вот вопрос к сторожилам, может кто  помнит данный "рецепт" или книгу в которой он был описан?
    • Попробуйте магнитолу отремонтировать. Говорят помогает. Иногда спасает поиск профильных специалистов по месту.
    • Офигенный заход... Отлично, не смеем отговаривать, хоть это будет дорого или очень дорого и больно. ШТА? При чем тут 220В? что в вашем понимании "нормальная"? Ну так а в чем проблема? Удивительно, учитывая что это основная задача частотного преобразователя. Куда подходит? Зачем он вообще идет? Параметры это агрегата за вас искать надо? Или удосужитесь дать побольше информации? З.Ы. А нафига реактивному дигателю вообще частотник? https://ru.wikipedia.org/wiki/РД-9
    • А что там анализировать? 1) Монтируется успешно. 2) Запрашивается в функции чтения данные с сектором 0, и перед каждым не успешно найденным файлом. 3) если выкинуть отладку, то один файл находит, но чтение буфера 0 и сам буфер пустой. Где-то косяк с конфигами... Кто работал пожалуйста подскажите, чтобы меньше потратить времени... Можно конечно. Какая разница как название указывать? Через массив символов либо явно указав массив символов в виде строки.
×
×
  • Создать...