Страница 2200 из 2451
Re: Часы на газоразрядных индикаторах
Добавлено: Чт янв 10, 2019 13:22:50
akl
[uquote="Dan Swano",url="/forum/viewtopic.php?p=3545223#p3545223"]...это поправимо?..[/uquote]Поставить на десятки часов и сделать программу в 12 часовом формате. Выбросить этот индикатор и вместо него поставить секундный разделитель.
Re: Часы на газоразрядных индикаторах
Добавлено: Чт янв 10, 2019 20:14:10
ALEXLAB
[uquote="dizzel",url="/forum/viewtopic.php?p=3545266#p3545266"]Раз мое предположение верно то у меня возникают вопрос. Например у меня анодные ключи подключены к аналоговым пинам ADC3 ADC2 ADC1 (6 ламп, 3 ключа, за основу взят проект Sunnyclock). Как осуществить привязку к таймеру в этом случае?
Планирую использовать 328 мегу. У нее PWM это PD3,PD5,PD6,OC1A,OC1B,OC2 и три таймера. Для меня возникает путаница. Первый таймер рекомендуют не трогать он влияет на обработку delay и millis. Получается остается 2 таймера по 2 ноги на каждый. Но у меня 6 ламп. И что делать...? Не понятно.[/uquote]
Ну, во-первых, не мешало бы увидеть Вашу схему. Во-вторых - на чем пишете? (метки "delay и millis" намекают на СИ, а желание использовать 328 мегу - на платформу ардуино) - А я только в АСМе помочь могу. В третьих, в "Sunnyclock", если мне не изменяет память, динамическая индикация, а я, что в статической, что в динамической индикации - привык рулить катодами. В-четвертых, привязку к таймеру сделать лучше всего с помощью прерываний, или в куске кода, который выполняется много раз чаще, чем событие PWM. А вообще, лучше обратиться к автору - Alexey_Sh.
Re: Часы на газоразрядных индикаторах
Добавлено: Чт янв 10, 2019 20:41:27
*Trigger*
Зачем использовать аппаратный ШИМ? У AVR обычно мало каналов.
Индикация с плавной сменой цифр и задержкой при переключении разрядов, а также, при желании, регулировкой яркости, прекрасно реализуется на одном таймере с прерываниями по переполнению и совпадению (в простом случае - два прерывания по совпадению, если немного подумать, можно обойтись одним, но перенастраиваемым).
Я использую такой способ:
1) Прерывание по переполнению - n++, вывод первой цифры разряда n, включение лампы n.
2) Прерывание по совпадению 1 - вывод второй цифры того же разряда n
3) Прерывание по совпадению 2 - гашение разряда n.
В зависимости от того, в какой момент наступит "Прерывание по совпадению 1", будет меняться соотношения яркостей двух цифр в одном разряде. "Прерывание по совпадению 2" определяет яркость (и задержку для подавления засветки).
Где-нибудь, например, в прерывании по переполнению, нужно проверять, на изменилась ли информация на индикаторах, если изменилась, начинать с некоторой скоростью изменять значение в регистре сравнения прерывания 1. Одна цифра заменится на другую плавно. После завершения смены сделать вторую цифру равной первой (новой).
Есть ещё такой:
Два чередующихся цикла индикации, отдельно для новых и старых цифр. Сначала выводим все новые, потом все старые. Ну, или наоборот. Яркость каждой из двух цифр в каждом разряде можно задавать отдельно. Если нужна одна цифра, оба раза выводим одно и то же.
1) Прерывание по переполнению - n++, вывод нужной цифры разряда n (новой или старой), включение лампы n.
2) Прерывание по совпадению - гашение разряда n.
Пример кода (CVAVR, без второго прерывания (задержки между разрядами), зато с эффектом смены с прокруткой (определяется переменной mode)):
Спойлер
Код: Выделить всё
// Timer2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
if(counter<5) counter++;
else counter=0;
PORTD=PIND&0b11000000;
if((ind[counter]!=_ind[counter])&&mode){
if(change==0){
if(mode==1) {lum=-1; OCR2=16; TIMSK|=0x80;}
if(mode==2) rotate=0;
div=-1;
}
change|=(1<<counter);
}
if(change==0) _ind[counter]=ind[counter];
if((mode==2)&&(change&(1<<counter))) buffer=code[rotate];
else buffer=code[ind[counter]];
if(ind[6]&(1<<(5-counter))) buffer=buffer|0b10;
PORTC=(PINC&1)|buffer;
PORTD=PIND|razr[counter];
if(div<24) div++;
else{
div=0;
if(change&&(mode==1)){
if(lum<14) lum++;
else{
lum=0;
change=0;
TIMSK&=(~0x80);
_ind[0]=ind[0];
_ind[1]=ind[1];
_ind[2]=ind[2];
_ind[3]=ind[3];
_ind[4]=ind[4];
_ind[5]=ind[5];
}
OCR2=16+14*lum;
}
if(change&&(mode==2)){
if(rotate<9) rotate++;
else{
change=0;
_ind[0]=ind[0];
_ind[1]=ind[1];
_ind[2]=ind[2];
_ind[3]=ind[3];
_ind[4]=ind[4];
_ind[5]=ind[5];
}
}
}
}
// Timer2 output compare interrupt service routine
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{
if(mode==1){
if(change&(1<<counter)){
buffer=code[_ind[counter]];
if(ind[6]&(1<<(5-counter))) buffer=buffer|0b10;
PORTC=(PINC&1)|buffer;
}
}
}
По millis и вопросу про занятый таймер понял, что речь про Андурино. Совет: использовать это железо можно, а вот писать лучше на чистом Си, без применения андуриновких библиотек и функций. Тогда не будет вопросов про занятый неизвестно чем таймер, а также код влезет в куда менее "жирный" по памяти МК, чем 328-я Мега.
Re: Часы на газоразрядных индикаторах
Добавлено: Пт янв 11, 2019 16:22:42
74LS00
Вопрос наверно не в тему, но тут есть знатоки.
Есть ли знаковые индикаторы (m V A Ω) по конструкции ИН-2 ?
Чтоб и знаки маленькие и торцевой конструкции не занимающие место на передней панели.
А то чтото я аналогов ИН2 по размеру вообще не припоминаю.
Re: Часы на газоразрядных индикаторах
Добавлено: Пт янв 11, 2019 16:39:25
seg2007
[uquote="74LS00",url="/forum/viewtopic.php?p=3546241#p3546241"]торцевой конструкции не занимающие место на передней панели.[/uquote]
http://www.jb-electronics.de/html/elekt ... mplett.htm
Re: Часы на газоразрядных индикаторах
Добавлено: Пт янв 11, 2019 16:45:58
LastOne
[uquote="*Trigger*",url="/forum/viewtopic.php?p=3545614#p3545614"]По millis и вопросу про занятый таймер понял, что речь про Андурино. Совет: использовать это железо можно, а вот писать лучше на чистом Си, без применения андуриновких библиотек и функций. Тогда не будет вопросов про занятый неизвестно чем таймер, а также код влезет в куда менее "жирный" по памяти МК, чем 328-я Мега.[/uquote]
При всём моём уважении. "Чистый С" -- это ппц термин. Откуда такая хрень? Ардуина программируется на чистом С. Блин, хотите сказать: Не используйте ардуиновские библиотеки и среду ардуино, а программируйте контроллер напрямую используя компилятор avr? Так и говорите. А то чистый С, чистый С!

Re: Часы на газоразрядных индикаторах
Добавлено: Пт янв 11, 2019 16:59:36
*Trigger*
Тут я имел в виду, что присутствует некоторое количество библиотек и include'ов, которые подключены по умолчанию, и при этом в исходнике не видны. Для пользователя получается эдакий "чёрный ящик", из которого наружу торчат всякие сущности типа "digitalWrite", которые изначально в стандарте языка отсутствуют.
И ведь даже специально дальше пояснил.

Re: Часы на газоразрядных индикаторах
Добавлено: Пт янв 11, 2019 20:52:06
LastOne
[uquote="*Trigger*",url="/forum/viewtopic.php?p=3546292#p3546292"]
И ведь даже специально дальше пояснил.

[/uquote]
Да нет

Я видел пояснение и мне то оно теперь понятно.
Просто, чисто на С, я программирую с 1987 года и когда начал недавно программировать "чисто на С" под Ардуины, меня передёргивала фраза о "чистом С". Нет такого понятия. Есть язык программирования и есть набор базовых функций поддерживаемых компилятором и наборы библиотек которые, бывает, идут комплектом со средой разработки (Ардуина в частности). Да, в ардуине оверхед приличный, но компилятор грамотно достаточно оптимизирует размер кода, поэтому до сих пор предпочитаю именно Ардуину, а не базовый avr.
Я как и все програмисты (не контроллеров

) ленив и не люблю ломать голову и вместо конструкций:
if(ind[6]&(1<<(5-counter))) buffer=buffer|0b10;
предпочитаю писать
if (BitSet(ind[6], 5-counter)) SetBit(buffer, 1);
Так оно мне более понятно и не нужно лезть в калькуляторы
А так, да, мир, дружба, жувачка

Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 11:57:20
Волосатый
Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 12:37:59
LastOne
Круто получилось. Но топология уж больно сложная выходит. Но круто!
Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 13:35:18
Волосатый
В каком плане сложная? Разводки? Ну тут да, я недели две разводил сие чудо. И за счет статики разводить проще, ввиду меньшего количества сетей, проходящих через платы.
Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 14:16:57
74LS00
seg2007 Спасибо и на этом, такого индикатора и в самом деле нет, придётся подобрать побольше.
[uquote="Волосатый",url="/forum/viewtopic.php?p=3546920#p3546920"]Пора похвастаться)[/uquote]Название само очевидность, хоть на продажу. Можно было бы буквы в словах переставить.
Я не слежу за темой, но что там делает литий, разве обычные батарейки не долговечнее для поддержки RTC.
Складная плата ваще по приколу

Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 14:47:16
AirCat
[uquote="Волосатый",url="/forum/viewtopic.php?p=3546920#p3546920"]Пора похвастаться)

[/uquote]
А что за такие панельки хитрые у ИН-18?
Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 15:33:16
Волосатый
AirCat писал(а):А что за такие панельки хитрые у ИН-18?
Вырезанные из акрила обоймы, в них вставлены контакты от ГРПМ. Для ин-14/8 такие же делал.
74LS00 писал(а):но что там делает литий
Что бы будильник звонил, когда электричества нет. Ну и что бы батарейку менять не пришлось. Аккум заряжается не полностью, до 4,05-4,1В, что должно снизить его износ. К тому же, присутствует приличный гистерезис.
74LS00 писал(а):хоть на продажу
Эти нет

Очень давно хотел часы на ИН-18, и вот я их получил.
Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 15:52:24
AirCat
[uquote="Волосатый",url="/forum/viewtopic.php?p=3547127#p3547127"][/quote]Вырезанные из акрила обоймы, в них вставлены контакты от ГРПМ.[/uquote]
Сами делали? Лишних за умеренную плату не осталось?

Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 16:11:49
Волосатый
Могу еще нарезать, ЧПУ же есть
Контактами не могу поделиться, увы, мало их.
Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 17:14:18
DimoniyJ
[uquote="Foks",url="/forum/viewtopic.php?p=1156980#p1156980"]Я склоняюсь к варианту, что это лампа. Верхняя часть цифры светит ярче, чем соседняя рабочая лампа. Вместе с увеличением напряжения горения, диагноз - разгерметизация баллона.[/uquote]
Пролечить лампочку.
Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 21:42:50
RoboC
Волосатый, камень какой?
Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 22:40:52
Edward-rnd
Купил у китайцев плату часов для газоразрядных индикаторов и прицепил к ней индикаторы ИЦ-1Б.
Пока показывает только нечетные числа, для четных нужно к каждому индикатору добавить дешифратор на 10 диодах.
Re: Часы на газоразрядных индикаторах
Добавлено: Сб янв 12, 2019 22:42:20
suslogon
[uquote="Волосатый",url="/forum/viewtopic.php?p=3547178#p3547178"]Контактами не могу поделиться, увы, мало их.[/uquote]
У меня вроде было несколько ненужных таких разъемов...
Если что ув. AirCat, пишите мне в лс конкретнее...
