Часы на AtMega8
|
|
| Сообщение # 31
|
Сергей-78
Постов: 6050
U |
WELL_85, Транзисторы надо переделывать все, и на сегменты и на катоды.\
Цитата WELL_85 ( ) В моём случае, какие транзисторы подойдут? (пример: кт3102 и кт814 можно поставить?) Пойдут любые. Нижний по схеме, любой маломощный, верхний любой соответствующей структуры, и током коллектора от 200 ма.
|
|
| Сообщение # 32
|
msmmmm
Постов: 891
Друзья |
Сергей-78, ULN2803 - инверторы, а у него там сейчас эмиттерные повторители работают.
|
|
| Сообщение # 33
|
Сергей-78
Постов: 6050
U |
Цитата msmmmm ( ) ULN2803 - инверторы, а у него там сейчас эмиттерные повторители работают. Блин, точно. Микросхема не подойдет. Спасибо за подсказку. Что бы применить микросхему, надо в прошивке изменить выходные сигналы на инверсионные. прошивку корректировать некому, значит надо лепить кучу транзисторов. Для комутации разрядов, надо делать ключи, которые будут открываться при входном отрицательном напряжении. Свои ошибки подкорректировал. Попробуйте сначала заменить только семь ключей, что коммутируют сегменты. Если эфекта не будет, то придется все переделывать.
|
|
| Сообщение # 34
|
ert_zeb
Постов: 99
ОК |
Если переделать прошивку, в теории можно обойтись "подтяжками" на 12 вольт. То есть выводить данные не в регистр порта, а порт направления. Тогда выход будет или нулевым, или в в Z.
|
|
| Сообщение # 35
|
WELL_85
Постов: 639
Друзья |
Спасибо! Как от работы освобожусь, буду дорожки рисовать под транзисторные ключи.Добавлено (27.09.2016, 20:07) --------------------------------------------- ert_zeb,
Цитата ert_zeb ( ) Что-то вроде:
void schet_chisla (bait * chis/*, bait pred*/) { *chis) ++; if (((*chis) & 0xf)==10) { *chis &= 0xf0; *chis += 0x10; } // if (*chis==pred) { *chis = 0; return (1); } else return(0); }
void schet_vrem () { /*sec++; if ((sec & 0xf)==10) { sec &= 0xf0; sec += 0x10; if ((sec & 0xf0)==0x60) { sec = 0; minuty++; if ((minuty & 0xf)==10) { minuty &= 0xf0; minuty += 0x10; if ((minuty & 0xf0)==0x60) { minuty = 0; chas++; if ((chas & 0xf)==10) { chas &= 0xf0; chas += 0x10; } else if (chas==0x24) chas = 0; } } } }*/
schet_chisla(&sec); if (sec==0x60) { schet_chisla(&minuty); sec = 0; } if (minuty==0x60) { schet_chisla(&chas); minuty = 0; } if (chas==0x24) chas = 0; }
Так по-маленьку и освоите.
Ума не приложу, как это вообще понять можно!??
|
|
| Сообщение # 36
|
ert_zeb
Постов: 99
ОК |
Цитата Ума не приложу, как это вообще понять можно!?? Да в общем-то как любую программу на Си-шке.
Вкратце, то что между /* */ и после // до конца строки - просто убранные участки. То, что перед названием идёт - тип (например пустой - void). Объявление процедуры:
void Procedurka () { }
В круглых скобках параметры, в фигурных действия самой функции. Из функций тут по большей части лишь условия счёта и сам счёт. Можно ещё флаги полупереноса попробовать использовать, если таковые имеются в МК.
Пример программы часов во вложении.
Кстати заставить Atmeg8 работать с открытым стоком нельзя. Заглянул в описание, у неё на входах защитные диоды. И они просадят любое напряжение выше её питания. Так что только делать нормальные ключи.
|
|
| Сообщение # 37
|
WELL_85
Постов: 639
Друзья |
Вот такие платы должны получится... Может кому тоже пригодятся. Кстати.. так ладу и не дал, как выложить файл в формате lay6...
Добавлено (30.09.2016, 14:23) --------------------------------------------- Уважаемый ert_zeb, Если вы в совершенстве владеете написанием программ для AVR контроллеров, может Вам и не сложно будет добавить в программу функцию мигания двух точек??? http://radioskot.ru/FILES/chasy_na_atmega.rar
|
|
| Сообщение # 38
|
ert_zeb
Постов: 99
ОК |
Внутри архива не исходная, а уже скомпилированная программа в виде hex-файла. Он представляет из себя текстовое представление двоичного кода. То есть его содержимое можно например напечатать где-нибудь в журнале. Можете открыть его в блокноте и убедиться.
Внутри будут строки, начинающиеся с двоеточия. Потом указание длины строки, адрес памяти (куда будет зашита строка), тип поля, данные и контрольная сумма (равная отрицательной сумме остальной строки, в сумме вся строка нулевая).
Описание hex-а во вложении. (В формате Open Doc и RTF)
Что же касается исходников программ, то их редко кто выкладывает.
|
|
|
| Сообщение # 40
|
Сергей-78
Постов: 6050
U |
Попробовать базу транзистора, подтянуть к минусу резистором на 10 кОм. Хотя когда я собирал подобные, то пришлось с этим бороться корректировкой прошивки.
|
|