Здравствуйте!!! С Новым Годом!!!
Каникулы сподвигли на сборку "Часов с подстройкой". Правда смог найти только индикаторы с общим анодом , потому пришлось поменять транзисторы на pnp и подправить программу с тем, чтобы вместо единичек в порты выводились нолики.
Что правил в проге: перед записью переменной TMP в порт С или D делал "eor Tmp,inv", где inv=0x0F("исключающее или" для побитной инверсии младшего байта). Аналогично, и при чтении из порта, перед передачей ТМР в программу так же инвертил его. Более НИЧЕГО не трогал...Часы запустились, отсчет времени идет правильно, но НЕТ НИКАКОЙ реакции на нажатие кнопок. И это при том, что я PORTB не трогал вообще. Перечитывал текст много раз, вроде мои поправки никак не должны испортить работу с портом B. Но кто знает. Если в форуме присутствует автор, или тот, кто тоже собирал часы, то отзовитесь, пожалуйста. Вразумите заблудшего, что я мог испортить? Я не асс в АТМЕГАх. Может где чего и не доглядел...
P.S. Да , еще странная особенность. Процессорные FUSE установлены на 1МГЦ (CKSEL 1,2,3 =0). После подачи питания в течение 2мин56сек минут цифры на индикаторах не меняются, только светодиоды мигают с частотой ~0,5Гц. Потом все работает нормально и отсчет времени идет достаточно точно. Хотелось бы еще поиграть с константой подстройки хода, но увы кнопки мертвые...
Правда смог найти только индикаторы с общим анодом , потому пришлось поменять транзисторы на pnp и подправить программу с тем, чтобы вместо единичек в порты выводились нолики.
_________________ Питаюсь копытными. Как исчезающий вид занесён в Красную книгу МСОП. Почему до сих пор не занесены в Красную книгу инженеры и учёные РФ?
Правда смог найти только индикаторы с общим анодом , потому пришлось поменять транзисторы на pnp и подправить программу с тем, чтобы вместо единичек в порты выводились нолики.
Что-то я не понял, к чему эта ссылка. Как работает светодиод и как инвертировать сигнал транзисторами я за 25 лет общения с электроникой освоил неплохо. Только, по-моему, рациональнее подправить прошивку, чем городить забор из дополнительных транзисторов. Я не прав??? Я же написал, что по правильности индикации цифр и по счету минут/часов вопросов нет.
МЯУ!!! Значится частичная победа.
1) Проблема с отсчетом первых 3-х минут решилась простым добавлением в начало программы обнуления регистра хранения секунд Second.
2) Реакция на нажатие кнопок появилась после того, как PORTB был проинициализирован в начале программы константой 0хFF вместо 0x3F. То есть с записью единичек в старшие разряды порта. Соответственно изменил и константы в обработчике кнопок. Все пошло, кроме кнопки 4(обнуление секунд). В тексте программы я не нашел код делающий это.
Егор, если Вы сюда заходите, скажите, пожалуйста, эта программа нормально работала в Вашем железе? И конечная ли версия софта выложена на сайте??? Или это промежуточный вариант?
С уважением Владимир.
Зарегистрирован: Ср мар 07, 2007 22:58:02 Сообщений: 586 Откуда: Черкассы, Украина
Рейтинг сообщения:0
Насчёт Кнопки сброса секунд... точно помню что такое было, а вот оставил ли я его в прошивке или нет, не помню. Я постараюсь в ближайшее время разобратся с этим вопросом.
Добавленно: нет, нету там сброса секунд - на эту кнопку я повесил включение режима подстройки.
_________________ There is only 10 kind of people: those who understands binary code and those who dont!!!
Зарегистрирован: Ср мар 07, 2007 22:58:02 Сообщений: 586 Откуда: Черкассы, Украина
Рейтинг сообщения:0
Ну.... тогда проверяем питание на МК. Есть? Отлично. Теперь надо убедится что циферки припаяны. Прошиваем ghue которая на перво странице этой темы. Она должна вывести на все индикаторы восьмёрки. Этим мы как раз проверим и то что МК запускается и успешно функционирует. Если такого не произошло, скорее всего МК щапрограммирован на тактирование от внешнего генератора. В таком случае мастырим на логике генератор на частоту за 1 Мгц. Хотя... если МК ты прошил, то и работать он должен. Возможен также вариань что на РЕСЕТ не подаётся высокий уровень. В результате чего МК может быть запрограммирован но не запустится. Вот примерно так
_________________ There is only 10 kind of people: those who understands binary code and those who dont!!!
При вынимании МК из панельки алюминиевой линейков всё зажглось.. и опять потухло. Решено, трабл был с питанием, на ща в схеме не горят a d f сегменты, дело думаю в пайке
_________________ Бригада дежурных телепатов ответит на ваши вопросы
Интересные часы у вас получились, товарищ... Не подскажете, почему при подаче питания отсчет секунд начинается с 77 и продолжается до 99? Причем как-то непоследовательно - скачет с одного значения на другое, но всегда одинаково. Правда, довольно быстро проходит и начинает идти нормально. К тому же иногда одиночное нажатие на кнопку воспринимается как два, будто дребезг проявляется...
_________________ Если долго мучиться, что-нибудь... сломается.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения