Часы на газоразрядных индикаторах
[uquote="Dan Swano",url="/forum/viewtopic.php?p=3545223#p3545223"]...это поправимо?..[/uquote]Поставить на десятки часов и сделать программу в 12 часовом формате. Выбросить этот индикатор и вместо него поставить секундный разделитель.
- Реклама
[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.
Планирую использовать 328 мегу. У нее PWM это PD3,PD5,PD6,OC1A,OC1B,OC2 и три таймера. Для меня возникает путаница. Первый таймер рекомендуют не трогать он влияет на обработку delay и millis. Получается остается 2 таймера по 2 ноги на каждый. Но у меня 6 ламп. И что делать...? Не понятно.[/uquote]
Ну, во-первых, не мешало бы увидеть Вашу схему. Во-вторых - на чем пишете? (метки "delay и millis" намекают на СИ, а желание использовать 328 мегу - на платформу ардуино) - А я только в АСМе помочь могу. В третьих, в "Sunnyclock", если мне не изменяет память, динамическая индикация, а я, что в статической, что в динамической индикации - привык рулить катодами. В-четвертых, привязку к таймеру сделать лучше всего с помощью прерываний, или в куске кода, который выполняется много раз чаще, чем событие PWM. А вообще, лучше обратиться к автору - Alexey_Sh.
Ученье - свет, а неученье - чуть свет, и на работу.
||||||||||||||||||||||||||||||| ЛК
-20 -10 -5 -3 -1 0 +1 +2 +3 +6 dB
||||||||||||||||||||||||||||||| ПК
||||||||||||||||||||||||||||||| ЛК
-20 -10 -5 -3 -1 0 +1 +2 +3 +6 dB
||||||||||||||||||||||||||||||| ПК
Зачем использовать аппаратный ШИМ? У AVR обычно мало каналов.
Индикация с плавной сменой цифр и задержкой при переключении разрядов, а также, при желании, регулировкой яркости, прекрасно реализуется на одном таймере с прерываниями по переполнению и совпадению (в простом случае - два прерывания по совпадению, если немного подумать, можно обойтись одним, но перенастраиваемым).
Я использую такой способ:
1) Прерывание по переполнению - n++, вывод первой цифры разряда n, включение лампы n.
2) Прерывание по совпадению 1 - вывод второй цифры того же разряда n
3) Прерывание по совпадению 2 - гашение разряда n.
В зависимости от того, в какой момент наступит "Прерывание по совпадению 1", будет меняться соотношения яркостей двух цифр в одном разряде. "Прерывание по совпадению 2" определяет яркость (и задержку для подавления засветки).
Где-нибудь, например, в прерывании по переполнению, нужно проверять, на изменилась ли информация на индикаторах, если изменилась, начинать с некоторой скоростью изменять значение в регистре сравнения прерывания 1. Одна цифра заменится на другую плавно. После завершения смены сделать вторую цифру равной первой (новой).
Есть ещё такой:
Два чередующихся цикла индикации, отдельно для новых и старых цифр. Сначала выводим все новые, потом все старые. Ну, или наоборот. Яркость каждой из двух цифр в каждом разряде можно задавать отдельно. Если нужна одна цифра, оба раза выводим одно и то же.
1) Прерывание по переполнению - n++, вывод нужной цифры разряда n (новой или старой), включение лампы n.
2) Прерывание по совпадению - гашение разряда n.
Пример кода (CVAVR, без второго прерывания (задержки между разрядами), зато с эффектом смены с прокруткой (определяется переменной mode)):
По millis и вопросу про занятый таймер понял, что речь про Андурино. Совет: использовать это железо можно, а вот писать лучше на чистом Си, без применения андуриновких библиотек и функций. Тогда не будет вопросов про занятый неизвестно чем таймер, а также код влезет в куда менее "жирный" по памяти МК, чем 328-я Мега.
Индикация с плавной сменой цифр и задержкой при переключении разрядов, а также, при желании, регулировкой яркости, прекрасно реализуется на одном таймере с прерываниями по переполнению и совпадению (в простом случае - два прерывания по совпадению, если немного подумать, можно обойтись одним, но перенастраиваемым).
Я использую такой способ:
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;
}
}
}Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
- Сообщения: 7722
- Зарегистрирован: Вс июл 24, 2011 11:38:09
Вопрос наверно не в тему, но тут есть знатоки.
Есть ли знаковые индикаторы (m V A Ω) по конструкции ИН-2 ?
Чтоб и знаки маленькие и торцевой конструкции не занимающие место на передней панели.
А то чтото я аналогов ИН2 по размеру вообще не припоминаю.
Есть ли знаковые индикаторы (m V A Ω) по конструкции ИН-2 ?
Чтоб и знаки маленькие и торцевой конструкции не занимающие место на передней панели.
А то чтото я аналогов ИН2 по размеру вообще не припоминаю.
[uquote="74LS00",url="/forum/viewtopic.php?p=3546241#p3546241"]торцевой конструкции не занимающие место на передней панели.[/uquote]
http://www.jb-electronics.de/html/elekt ... mplett.htm
http://www.jb-electronics.de/html/elekt ... mplett.htm
PicKit3, USBasp
Радиаскан 701А
Пинцет DT-71
Осциллограф С1-116, генератор Г6-27
Радиаскан 701А
Пинцет DT-71
Осциллограф С1-116, генератор Г6-27
- Реклама
- Сообщения: 211
- Зарегистрирован: Вс ноя 16, 2014 17:38:17
[uquote="*Trigger*",url="/forum/viewtopic.php?p=3545614#p3545614"]По millis и вопросу про занятый таймер понял, что речь про Андурино. Совет: использовать это железо можно, а вот писать лучше на чистом Си, без применения андуриновких библиотек и функций. Тогда не будет вопросов про занятый неизвестно чем таймер, а также код влезет в куда менее "жирный" по памяти МК, чем 328-я Мега.[/uquote]
При всём моём уважении. "Чистый С" -- это ппц термин. Откуда такая хрень? Ардуина программируется на чистом С. Блин, хотите сказать: Не используйте ардуиновские библиотеки и среду ардуино, а программируйте контроллер напрямую используя компилятор avr? Так и говорите. А то чистый С, чистый С!

При всём моём уважении. "Чистый С" -- это ппц термин. Откуда такая хрень? Ардуина программируется на чистом С. Блин, хотите сказать: Не используйте ардуиновские библиотеки и среду ардуино, а программируйте контроллер напрямую используя компилятор avr? Так и говорите. А то чистый С, чистый С!
Тут я имел в виду, что присутствует некоторое количество библиотек и include'ов, которые подключены по умолчанию, и при этом в исходнике не видны. Для пользователя получается эдакий "чёрный ящик", из которого наружу торчат всякие сущности типа "digitalWrite", которые изначально в стандарте языка отсутствуют.
И ведь даже специально дальше пояснил.
Этот пост оказался полезен? Не поленись, нажми
слева!

Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
слева!Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7, ИГПС1-111/7 и подобные.
- Сообщения: 211
- Зарегистрирован: Вс ноя 16, 2014 17:38:17
[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);
Так оно мне более понятно и не нужно лезть в калькуляторы
А так, да, мир, дружба, жувачка
И ведь даже специально дальше пояснил.
Да нет
Просто, чисто на С, я программирую с 1987 года и когда начал недавно программировать "чисто на С" под Ардуины, меня передёргивала фраза о "чистом С". Нет такого понятия. Есть язык программирования и есть набор базовых функций поддерживаемых компилятором и наборы библиотек которые, бывает, идут комплектом со средой разработки (Ардуина в частности). Да, в ардуине оверхед приличный, но компилятор грамотно достаточно оптимизирует размер кода, поэтому до сих пор предпочитаю именно Ардуину, а не базовый avr.
Я как и все програмисты (не контроллеров
if(ind[6]&(1<<(5-counter))) buffer=buffer|0b10;
предпочитаю писать
if (BitSet(ind[6], 5-counter)) SetBit(buffer, 1);
Так оно мне более понятно и не нужно лезть в калькуляторы
А так, да, мир, дружба, жувачка
Пора похвастаться)

В принципе, типовой для меня стиль. Из особенностей - каскадируемые платы
Пока попробовал на 6 лампах, в скором времени будут и 4х-ламповые.

Один преобразователь, само собой, не тянет 6 ламп, поставил 2 преобразователя, благо топология плат это предусматривает.
Платы заказывал у китайцев по акции 100*100мм 10шт за 2 бакса (с доставкой чето около 800р выходит). Резка в цену не входит, но т.к. есть ЧПУ - это не проблема.


В принципе, типовой для меня стиль. Из особенностей - каскадируемые платы
Один преобразователь, само собой, не тянет 6 ламп, поставил 2 преобразователя, благо топология плат это предусматривает.
Платы заказывал у китайцев по акции 100*100мм 10шт за 2 бакса (с доставкой чето около 800р выходит). Резка в цену не входит, но т.к. есть ЧПУ - это не проблема.
Опыт приходит сразу после того, как он был нужен...
- Сообщения: 211
- Зарегистрирован: Вс ноя 16, 2014 17:38:17
Круто получилось. Но топология уж больно сложная выходит. Но круто!
В каком плане сложная? Разводки? Ну тут да, я недели две разводил сие чудо. И за счет статики разводить проще, ввиду меньшего количества сетей, проходящих через платы.
Опыт приходит сразу после того, как он был нужен...
- Сообщения: 7722
- Зарегистрирован: Вс июл 24, 2011 11:38:09
seg2007 Спасибо и на этом, такого индикатора и в самом деле нет, придётся подобрать побольше.
[uquote="Волосатый",url="/forum/viewtopic.php?p=3546920#p3546920"]Пора похвастаться)[/uquote]Название само очевидность, хоть на продажу. Можно было бы буквы в словах переставить.
Я не слежу за темой, но что там делает литий, разве обычные батарейки не долговечнее для поддержки RTC.
Складная плата ваще по приколу
[uquote="Волосатый",url="/forum/viewtopic.php?p=3546920#p3546920"]Пора похвастаться)[/uquote]Название само очевидность, хоть на продажу. Можно было бы буквы в словах переставить.
Я не слежу за темой, но что там делает литий, разве обычные батарейки не долговечнее для поддержки RTC.
Складная плата ваще по приколу
[uquote="Волосатый",url="/forum/viewtopic.php?p=3546920#p3546920"]Пора похвастаться)
[/uquote]
А что за такие панельки хитрые у ИН-18?
А что за такие панельки хитрые у ИН-18?
Мои поделки часов https://www.youtube.com/channel/UC2qfoz ... subscriber
На Рутубе https://rutube.ru/channel/64515754/
Куплю корпус от калькулятора ЭКВМ 24-71 , он же Электроника 24-71 , или указанный калькулятор с целым корпусом.
На Рутубе https://rutube.ru/channel/64515754/
Куплю корпус от калькулятора ЭКВМ 24-71 , он же Электроника 24-71 , или указанный калькулятор с целым корпусом.
Вырезанные из акрила обоймы, в них вставлены контакты от ГРПМ. Для ин-14/8 такие же делал.AirCat писал(а):А что за такие панельки хитрые у ИН-18?
Что бы будильник звонил, когда электричества нет. Ну и что бы батарейку менять не пришлось. Аккум заряжается не полностью, до 4,05-4,1В, что должно снизить его износ. К тому же, присутствует приличный гистерезис.74LS00 писал(а):но что там делает литий
Эти нет74LS00 писал(а):хоть на продажу
Опыт приходит сразу после того, как он был нужен...
[uquote="Волосатый",url="/forum/viewtopic.php?p=3547127#p3547127"][/quote]Вырезанные из акрила обоймы, в них вставлены контакты от ГРПМ.[/uquote]
Сами делали? Лишних за умеренную плату не осталось?
Сами делали? Лишних за умеренную плату не осталось?
Мои поделки часов https://www.youtube.com/channel/UC2qfoz ... subscriber
На Рутубе https://rutube.ru/channel/64515754/
Куплю корпус от калькулятора ЭКВМ 24-71 , он же Электроника 24-71 , или указанный калькулятор с целым корпусом.
На Рутубе https://rutube.ru/channel/64515754/
Куплю корпус от калькулятора ЭКВМ 24-71 , он же Электроника 24-71 , или указанный калькулятор с целым корпусом.
Могу еще нарезать, ЧПУ же есть
Контактами не могу поделиться, увы, мало их.
Контактами не могу поделиться, увы, мало их.
Опыт приходит сразу после того, как он был нужен...
[uquote="Foks",url="/forum/viewtopic.php?p=1156980#p1156980"]Я склоняюсь к варианту, что это лампа. Верхняя часть цифры светит ярче, чем соседняя рабочая лампа. Вместе с увеличением напряжения горения, диагноз - разгерметизация баллона.[/uquote]
Пролечить лампочку.
Пролечить лампочку.
Лужу, паяю, самоделки собираю.
Волосатый, камень какой?
У того, кто делает — получается редко. У того, кто не делает — не получается никогда.
Купил у китайцев плату часов для газоразрядных индикаторов и прицепил к ней индикаторы ИЦ-1Б.
Пока показывает только нечетные числа, для четных нужно к каждому индикатору добавить дешифратор на 10 диодах.
Пока показывает только нечетные числа, для четных нужно к каждому индикатору добавить дешифратор на 10 диодах.
- Вложения
-
- IMG_2934.JPG
- (160.76 КБ) 689 скачиваний
[uquote="Волосатый",url="/forum/viewtopic.php?p=3547178#p3547178"]Контактами не могу поделиться, увы, мало их.[/uquote]
У меня вроде было несколько ненужных таких разъемов...
Если что ув. AirCat, пишите мне в лс конкретнее...
У меня вроде было несколько ненужных таких разъемов...
Если что ув. AirCat, пишите мне в лс конкретнее...
Ищу тиратрон ТХИ1-2000/4, ГРИ ИН-23, ФЭУ-103; 134; 135, 138, 155, 157, лампу ИСШ-7.
Любые ГИС серий 203, 225, 233, 244, 250, 296, 801, 838 в любом состоянии. Компоненты и детали от миниатюрных твердотельных лазеров.
Любые ГИС серий 203, 225, 233, 244, 250, 296, 801, 838 в любом состоянии. Компоненты и детали от миниатюрных твердотельных лазеров.


