Страница 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 :o как?
PS. Даже протеус установил.

Добавлено: Сб фев 07, 2009 14:57:48
diehard
Вывод в любой порт осуществляется одинаково. Конкретно, что не понятно?

Добавлено: Сб фев 07, 2009 15:05:49
kotovasiya
1995kenny писал(а):Я досихпор не пойму: в большинстве схем используются 7-сегментники.т.е только порт B. А мне нужно,чтобы использовался 1 из PB, и 8 из PD :o как?
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 глючит, зачем ты его используешь :shock:

Добавлено: Пн фев 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МГц?
Кстати токо заметил: не объявил переменная Digb[10];

Добавлено: Пн фев 09, 2009 20:23:36
Тарас
Просто поставь кварц на 8 МГц. А переменную ты не обявил.. да.