Страница 1 из 2
Необычные часы на Atmega8
Добавлено: Пт фев 06, 2009 22:02:48
1995kenny
C другом хотим собрать электронные часы типа как в фильме "Чужой против хищника".С необычными цифрами(см. приложение).Индикатор(около 40*15см) будем собирать сами.Отображение ЧЧ:ММ:СС. Транзисторы в схеме-816(т.е. управление по 0). В каждом символе 9 сегментов.Кол-во светящихся сегоментов соответствует цифре.Индикаторы с общим минусом.Динамическая индикация естественно.Без дешифраторов и сдвиг.регистров.Порты выходов я обозвал латинскими буквами:a,b,c,d,e,f,g,h,i-сегменты. j,k,l,m,n,o-На общие минусы индикаторов.P-на светодиод, мигающий 1Гц. Q,r,s,t-на кнопки(другой вывод кнопки идет на плюс птания).Кварц любой(какой посоветуете).
Кнопки:Ч+;М+;переключение прямой/обратный отсчет;резервная.
Проблема в реализации прошивки

Можно взять за основу готовую и переделать под то, что есть).Как переделать прошивку под такой МК и индикатор?можно С или asm. Всем спасибо.

[/list]
Добавлено: Пт фев 06, 2009 22:38:15
diehard
1. Кварц можно не ставить.
2. Нужно завести таймер, что бы считал по одной секунде и наращивать переменные ЧЧ.ММ.СС.
3. Вывод динамической индикацией на индикатор.
Если с программированием знаком, то проблем быть не должно.
Добавлено: Пт фев 06, 2009 22:55:28
1995kenny
Знаком, но не так уж сильно...
Попробую что-нибудь поискать какуюнибудь простую прошивку(например
ТУТ) и попытаться понять ее...

Она ведь не сильно отличаться будет от прошивки для меги8 ???
Добавлено: Сб фев 07, 2009 00:29:53
Pippeytz
Сами часы дело нехитрое
Прилепи к щетным выводам часовой кварц , установи коэф деленичя на 128 получиш высокочастотные часы . Таймеры при етом перепоняютсья ровно 1 раз в секунду. Щитаеш прерывания , наращиваеш переменные.
Главное зделать индикацию
Добавлено: Сб фев 07, 2009 00:45:47
diehard
Индикация тоже дело не хитрое. Я делаю так: 50 Гц на обновление одного разряда индикатора. Здесь будет шесть, значит заведу на 300 Гц. Потом при входе в обработчик прерывания зажигаю первый разряд, при следующем входе его гашу и зажигаю следующий и т.д.
ЗЫ: Только что смотрел топик по таймеру и там увидел прямо для тебя часы
http://my-avr.at.ua/publ/1-1-0-22. Посмотри как реализовали, если пока тебе не от чего оттолкнуться.
Добавлено: Сб фев 07, 2009 02:08:21
sheva_s
Есть программа часов для мега8 писалась мною при необходимости можете переделать под ваш вариант правда там много лишнего там 2 будильника счет дней но это можно выкинуть, программа на Си.
А проше написать вот вылажу может что то пригодиться это моя первая программа часы работают уже полтора месяца , глюков нету.
Вот тут
http://my-avr.at.ua/publ/1-1-0-22 посмотрите правда программу нужно подправить но для основы можно что то взять.
Добавлено: Сб фев 07, 2009 13:30:00
1995kenny
Я досихпор не пойму: в большинстве схем используются 7-сегментники.т.е только порт
B. А мне нужно,чтобы использовался 1 из
PB, и 8 из
PD 
как?
PS. Даже протеус установил.
Добавлено: Сб фев 07, 2009 14:57:48
diehard
Вывод в любой порт осуществляется одинаково. Конкретно, что не понятно?
Добавлено: Сб фев 07, 2009 15:05:49
kotovasiya
1995kenny писал(а):Я досихпор не пойму: в большинстве схем используются 7-сегментники.т.е только порт
B. А мне нужно,чтобы использовался 1 из
PB, и 8 из
PD 
как?
PS. Даже протеус установил.
Можно поинтересоватся для чего спецэфект? Если размеры не важны,то эфектней на цветном дисплее от мобильника
Добавлено: Сб фев 07, 2009 16:25:35
1995kenny
kotovasiya писал(а):Можно поинтересоватся для чего спецэфект? Если размеры не важны,то эфектней на цветном дисплее от мобильника
Вообще часы делаю для друга(вернее вместе).Висеть будут , вероятно, на стене.
2diehard
Как выставить Fuse-биты чтобы таймеры работали как на my-avr?
Добавлено: Пн фев 09, 2009 10:29:58
1995kenny
Кто-нибудь может помочь?
Добавлено: Пн фев 09, 2009 14:04:13
sheva_s
Что конкретно интересует по Fuse-битам, мега по умолчанию с завода работает на частоте 1 мГц какая частота тебе нужна ?
А таймеры настраиваються не фьюзами, а регистрами управления таймера.
Добавлено: Пн фев 09, 2009 14:35:37
Тарас
Я там фюзы выставлял на 8 МГц
http://my-avr.at.ua/publ/1-1-0-6 но для часов рекомендую использовать кварц. для более мение точности. ибо выставлять фюзы не всегда практично, могут быть сдвиги по часоте, оноже влияет и на роботу таймера и т.д.
Добавлено: Пн фев 09, 2009 17:41:48
1995kenny
Как выставить фузы и регистры таймера для норальной работы с кварцем 32768 Гц, кондеры по 33пФ?
Можете проверить, нет ли в моей программе ошибок?А то КодеВизион глючит

Добавлено: Пн фев 09, 2009 17:57:37
Тарас
Привет, вопервіх если используеш кварц так там не нужно успользовать фюзы, дальше - смотря для чего тебе таймер и что он должен делать. ну если кварц ставить то там хоть на 22 пФ хоть на 33 пФ особой роли не играет.
Давай збрасывай прошивку. проверим на оишибки
А та прошивка что выше, я немогу понять зачем там функцыя и два разных дела исполняет, для общего анода и катода

Добавлено: Пн фев 09, 2009 18:06:32
diehard
1995kenny писал(а):Как выставить фузы и регистры таймера для норальной работы с кварцем 32768 Гц, кондеры по 33пФ?
Можете проверить, нет ли в моей программе ошибок?А то КодеВизион глючит

Если у тебя CodeVision глючит, зачем ты его используешь

Добавлено: Пн фев 09, 2009 18:37:25
1995kenny
Тарас писал(а):Привет, вопервіх если используеш кварц так там не нужно успользовать фюзы, дальше - смотря для чего тебе таймер и что он должен делать...
Давай збрасывай прошивку. проверим на оишибки

А та прошивка что выше, я немогу понять зачем там функцыя и два разных дела исполняет, для общего анода и катода

Тоесть никаких фуз,просто поставить кварц?Отлично.
А где вы заметили, что для общего катода и анода?
Если вы об
Код: Выделить всё
void [b]Dig[/b]_init() //Массив для отображения цыфр на семисегментном индикаторе
{
Dig[0] = 0b00000000; // Сейчас у нас схема с общим катодом
Dig[1] = 0b00000000;
Dig[2] = 0b10000000;
Dig[3] = 0b10010000;
Dig[4] = 0b11100000;
Dig[5] = 0b11110000;
Dig[6] = 0b11111000;
Dig[7] = 0b11111100;
Dig[8] = 0b11111110;
Dig[9] = 0b11111111;
}
void [b]Digb[/b]_init() //Массив для отображения цыфр на семисегментном индикаторе
{
Digb[0] = 0b00000000; // Сейчас у нас схема с общим катодом
Digb[1] = 0b00000001;
Digb[2] = 0b00000001;
Digb[3] = 0b00000001;
Digb[4] = 0b00000001;
Digb[5] = 0b00000001;
Digb[6] = 0b00000001;
Digb[7] = 0b00000001;
Digb[8] = 0b00000001;
Digb[9] = 0b00000001;
}
[/size]
этом, то это я сделал только потому, что использую для порта D и B.Под каждый своё.
А насчет CVAVR - я его поэтому не использую

Последний раз программировал спомощью Avrdude

Добавлено: Пн фев 09, 2009 19:35:07
Тарас
Вот немного подкоректировал исходник, но ето на глаз, сам еще не проверял но должно работать, и кстати там только 2 книпки будут работать! мин++ и часы ++
потом на фотке там кварц кажеться на 32****Гц а нужно поменять на 8 МГц.
Добавлено: Пн фев 09, 2009 19:54:49
1995kenny
Тарас писал(а):Вот немного подкоректировал исходник, но ето на глаз, сам еще не проверял но должно работать, и кстати там только 2 книпки будут работать! мин++ и часы ++
потом на фотке там кварц кажеться на 32****Гц а нужно поменять на 8 МГц.
Насчет кнопок я зная(но это временно)
А что именно подкоректировали?
Может всётаки реально переделать под 32768 Гц или на крайняк 4МГц?
Кстати токо заметил: не объявил переменная Dig
b[10];
Добавлено: Пн фев 09, 2009 20:23:36
Тарас
Просто поставь кварц на 8 МГц. А переменную ты не обявил.. да.