У меня тоже на этой неделе баг был с этими часами на 9 индикаторах. Прихожу домой, а на часах высвечивается 33 часа -скока минут не важно В общем заменить литиевую батарейку в резервном источнике. Она и так БУ была с какой-то старой материнке, так еще и в часах проработала много. Знаю точно по состоянию других бытовых приборов, что электроэнергию отключали. А резервный элемент в часах видимо их не потянул уже. Вот и возник глюк. Но что странно, через меню программный сброс не сработал. Пришлось отключать от сети, менять естественно элемент и после настраивать заново все режимы. В общем к автору вопрос, можно ли что-то поправить в прошивке, чтоб хотя бы настройки сохранялись?
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
nbo если Вы автор схемы и платы для часов на шести индикаторах то не могли бы выложить на этом форуме плату в .lay или хотя бы в jpg, gif а то протеуса нет. Заранее спасибо!
Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.
Так у меня вообще без батарейки -может схему вы не ту имели ввиду -у меня power detect просто на минусе сидит
А смысл? батарейку жалко поставить? У нас свет редко сейчас выключают. Зато вот метко . Стормозил, надо было это запечатлеть на фотоаппарат 33 часа эт вам не шутки
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Так у меня вообще без батарейки -может схему вы не ту имели ввиду -у меня power detect просто на минусе сидит
А смысл? батарейку жалко поставить? У нас свет редко сейчас выключают. Зато вот метко . Стормозил, надо было это запечатлеть на фотоаппарат 33 часа эт вам не шутки
Так а смысл? -если дома генератор стоит автоматический -свет отрубили он с опережением завелся -у нас типа умный дом -образцово показательный:)
_________________ "Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа." Ро́берт Ше́кли Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
if (++hour[h_sek]>=60) { hour[h_sek] =0; if (++hour[h_min]>=60) { if ( corr_flag & _BV(fl_corr_znak_pl) )//корекция часов correct=correction;//для убыстрения else correct= 0x00-correction;
hour[h_min] =0; hour[h_hour]++;
if (hour[h_hour]>=24) { hour[h_hour]=0; if (++hour[h_day]>=7) hour[h_day]=0; if (++hour[h_num]>num_in_month[ hour[h_month] ] ) { hour[h_num]=0; hour[h_month]++; if (hour[h_month]>=12) {hour[h_month]=0; hour[h_year]++;} } }
то есть
Код:
if (hour[h_hour]>=24) { hour[h_hour]=0;
при наступлении нового часа, это сбросило бы 33 часа на ноль.
А так, я специально не стал при сбросе сбрасывать время, его все равно потом выставлять в ручную. То есть, надо было проверить настройки выставить время, и часы опять бы работали. Но это мое мнение, а так, конечно, разные фокусы бывают
Для snc: Выкладываю комплект плат в формате PDF. Некоторые пояснения: файл clock6_new-1.pdf рисунок печатных проводников, файл clock6_new-1-top.pdf вид со стороны монтажа индикаторов, здесь-же показаны 20 перемычек, файл clock6_shema.pdf схема, файл clock6_new-1-botton.pdf вид со стороны печати с деталями которые паяются с этой стороны, файл clock6_new-1-botton-1.pdf то-же но без рисунка печатных проводников. Кроме того на плате необходимо установить 5 перемычек из провода. На вопрос почему всё так могу лишь ответить что при разводке ставилась задача сделать односторонюю плату, двусторонние я пока по технологии ЛУТ не освоил. В .lay формате плат нет.
Спасибо! Но на самом деле это сильно ограничивает развитите радиолюбительства -тут только можно поплакать постоянно стабильное напряжение 220 вольт без отклонений от нормы и его наличие -вобщем одни слезы Извините пожалуйста за флуд! Кстати попробовал поменять HC595 -посмотрим - пока работают уже 20 часов -неужели микрухи такие плохие пошли?- пол года работала и на тебе
Есть предложение: просить DimAlt всем обществом составить подробнейшие коментарии в программе к его часам, например, версии 17t1_1 (наиболее перспективным, на мой взгляд). Это было бы полезно для всех и сняло бы многие вопросы, а также стало бы хорошим пособием для начинающих знакомиться с СИ. А Дмитрий мог бы написать на основании этого учебное пособие, в котором он описал бы, как он дошел до жизни такой.
По поводу 5-разрядных часов DimAlt в исполнении Юрия. В этой реализации при закрытом состоянии портов МК на их выводах амплитуда импульса может достигать 8…9 В, что представляет определенную опасность для МК. Кроме того, при таком напряжении при открытом состоянии портов втекающий ток составит около 9/2,4 = 3,75 мА на порт, что не совсем хорошо как для МК, так и для энергосбережения. Для исключения этого недостатка была испытана схема (http://wkarl.narod.ru/3t_dop14.htm) с использованием прошивки v. 17t1_1 и ИМС преобразователя уровня 564ПУ7 (с инверсией), замечательным свойством которого является то, что он срабатывает при входном напряжении начиная с 3 В и питании 12 В (см. ДСП-каталог ИМС от 1984 г.). В указанных часах использована также более простая схема power_detect.
Сначала о том, что это исходник 2004 года, это время, когда я только начинал разбираться с мк. Затем, конечно, он не однократно изменялся, но основа осталась, именно, моей первой программы на си. Поэтому его нельзя рекомендовать как пример и тем более по нем разбираться с кодом. Здесь изначально массив располагался в памяти программ то есть был объявлен progmem. Но так как в меге8 оперативки много его можно размещать в озу, по размеру кода меньше и по выполнению быстрей. Считывать массив str_ds18b20 в массив буфера экрана по коду также занимает меньше места, чем писать так:
Код:
LedBuffer[1]=0x9E; LedBuffer[1]=0x9E; LedBuffer[2]=0xAD; и т. д.
стандартный ток нагрузки на вывод у HC серии около 7ма(или около того, точно не помню) ток короткого замыкания вывода - 20ма. больше не получить даже если закоротить на землю или питание. это в таблице и указано, и допускать крайне не желательно. суммарный ток микросхемы по выводам питания - 70ма. получаем 70/9=7,7. вполне стандартно для НС серии. конечно я понимаю что по всем 9 выводам одновременно такого тока быть не может, но "восьмерка", "девятка", "ноль" плюс "точка" это 7-8 выводов. следовательно в вашей схеме, без транзисторных ключей, больше 9 ма с вывода лучьше не брать....
Есть вопрос по коду. у тебя весь контроллер работает от часового кварца, или только таймер Т2, а остальное от внутреннего генератора??? если второе, то глянь правильно ли так настроить таймер Т2, чтоб он тактировался от часового кварца, и генерировал прерывание по переполнению.
Да, часы от асинхронного таймера, все остального от внутреннего RC.
Потом 1. Disable the Timer/Counter2 interrupts by clearing OCIE2 and TOIE2. 2. Select clock source by setting AS2 as appropriate. 3. Write new values to TCNT2, OCR2, and TCCR2. 4. To switch to asynchronous operation: Wait for TCN2UB, OCR2UB, and TCR2UB. 5. Clear the Timer/Counter2 Interrupt Flags. 6. Enable interrupts, if needed.
Первый пункт не выполнен Частота будет 32768/256=128 герц Для того что бы получить 512 надо использовать режим СТС загрузив OCR2=64. что то вроде этого
Код:
TIMSK&=~(1<<OCF2); или cli(); а потом sei TCCR2 = 0x00; //stop ASSR = (1<<AS2); //set async mode TCCR2 = (1<<WGM21)|(1<<CS20); //start OCR2 = 64; TIMSK|=(1<<OCF2); ISR(OCF2){};
По 74НС595, конечно все так. Но в даташите Continuous output current, IO (VO = 0 to VCC) . . . . . . ±35 mA В переводе звучит как продолжительный ток вывода. Я бы сказал, что нагружать вывод до 20мА можно и не страшно, главное постоянно не превышать мощность кристала 500мВт. Вот задумайтесь, почему, есть, например, телефон с АОН русь 27, где индикатор управляется двумя 74НС595. Разработчики не побоялись превысить токи.
Уважаемый DimAlt. Я уже давно собрал Вашу схему. Спасибо за проект Схема эта Часы-термометр на микроконтроллере ATmega8. V 2.0 http://radiokot.ru/circuit/digital/home/30/ У меня возможно очень старая версия прошивки, но я когда-то выбрал именно ее (кажется откуда-то из этого форума) потому что там была возможность выводить температуру без первого нуля, т.к. показания типа -00,5 выглядят очень некрасиво. Термостата там нету и не надо. Пару раз были глюки - символы писались неправильно как будто повредился массив знакогенератора сброс из меню не помог, почему? В другой раз дисплей погас совсем. (помогало только разобрать корпус и замкнуть вывод reset с землей). Собственно главный недостаток - я собирал эти часы в надежде что они будут "эталоном" точности во всей квартире, чтобы за месяц не боле но к сожалению это не так. Шаг корректировки слишком велик. 0,08. Если шаг 0,08 сек в час то в самом худшем случае погрешность будет 0,04. 0,04*24*30*12/60=5 минут в год, хочу точнее! Может быть уже есть версия где этот шаг уменьшен раза в 2-4? Если таковой версии нету, можно мне какую-нибудь свежую версию исходников (9ти разрядный индикатор) где, у термометров можно было установить режим отбрасывания первого нуля?
Вот здесь http://startcd.narod.ru/clock/clock.html исходник и прошивки. Для улучшения коррекции, ее можно производить не раз в час, а например раз в сутки (если уход в сутки у Вас не превышает макс. значение коррекции) в исходнике поменять это
Код:
if ( isr_1sek_ )//прошла секунда { correct=0; if (++hour[h_sek]>=60) { hour[h_sek] =0; if (++hour[h_min]>=60) { //if ( corr_flag & _BV(fl_corr_znak_pl) )//корекция часов ЭТО ПЕРЕНЕСТИ // correct=correction;//для убыстрения // else // correct= 0x00-correction;
hour[h_min] =0; hour[h_hour]++;
if (hour[h_hour]>=24) { hour[h_hour]=0; if ( corr_flag & _BV(fl_corr_znak_pl) )//корекция часов СЮДА correct=correction;//для убыстрения else correct= 0x00-correction;
Можно коррекцию производить через несколько часов(если 24 много).. исходник есть. Если не получится то скомпилю сам.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения