АвторСообщение
постоянный участник


Пост N: 29
Зарегистрирован: 02.01.07
Откуда: Ukraine, Славута
Рейтинг: 0
ссылка на сообщение  Отправлено: 09.11.07 21:40. Заголовок: Нужен совет, консультация (часы).


Здравствуйте уважаемые коллеги,у меня создалась проблема с которой я не могу справиться.Суть заключается в следующем,я пытаюсь смастерить часы- программатор ,пересмотрел несколько вариантов схем и пришел к выводу что чем тратить время для модернизацию программ под свои условия, проще написать свою программу,вот тут и мина зарылась! Сделал так, использовал заготовку динамической индикации КЕА, из самоучителя. Участок программы прерывания и инкременирования регистров часов ,взял от схемы часов по-моему, Сергея Губарь из самоучителя КЕА. Схему часов тоже использовал Сергея Губаря.Действуя от простого к сложному,я в начале собрал схему , обыкновенных шесть разрядов семисегментных индикаторов .Подключил программу ,часов с секундами т.е при прерывании происходит инкремент регистра секунд,минут часов с соответствующей проверкой на переполнение регистров, на 6,10,24.Я думаю это понятно.Кстати часы Сергея я повторил они у меня работают.Я запустил свою программу на этой схеме,у меня работает всё нормально . Далее я хотел бы присоединить к схеме- программе клавиатуру для управления .Вот тут и приключения и начались ,задумка моя такая ,я хочу чтобы сканирование клавиатуры на нажатие происходило в нулевом разряде . В первом разряде я думаю производить сравнивание регистров установок будильников с текущем временем и включения будильника ,ну это в будущем.А пока ,смысл моей задумки следующий ,сканирование портов клавиатуры происходит дважды за одну секунду ,для удостоверености о нажатой кнопке и противодребезговых мероприятиях .Так вот у меня получается так ,после установки контроллера в схему и подачи напряжения ,часы отсчитывают до 6 мин 23сек ,и начинают считать как сумасшедшие ,разряд секунд инкременируется где-то за 0,5 сек,и остальные разряды соответсвенно.В MPLABe пытаюсь с эмулировать ,проверить найти что где происходит ,какой из регистров изменяется и вызывает это сумашествие ,-невозможно!
В MPLABe всё работает в норме ,интервал 1 сек между инкрементами регистра секунд в норме .В принципе там и причин воздействия на регистры TMR0,прескалера ,из программы нет.Проверял брал блокировал точкой с запятой ,вход в подпрограмму SCAN,тогда всё нормально часы считают как положенно.Если причина в подрограмме SCAN ,то как программа досчитывает до 6 мин?Если от этой подпрограммы происходит изменения регитров OPTION_R,TMR0,то как это можно локализовать ?С помощью битов -флагов,а MPLABe работает всё в норме!После последних мытарств понимаешь что отладчик ICD,сильная ,и необходимая вещь ,жалко что используется для узкого круга контроллеров.
Передаю программу которую я пытаюсь сотворить ,ребята может кто подскажет как быть? Как прогу выложить,для просмотра?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 9 [только новые]


постоянный участник


Пост N: 30
Зарегистрирован: 02.01.07
Откуда: Ukraine, Славута
Рейтинг: 0
ссылка на сообщение  Отправлено: 09.11.07 21:43. Заголовок: вот по-моему закачал на slil.ru

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 473
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг: 1
ссылка на сообщение  Отправлено: 10.11.07 08:35. Заголовок: У меня (насколько зн..


У меня (насколько знаю, у многих тоже) Слил не работает. Поэтому могу порассуждать только теоретически.

vadglebov пишет:

 цитата:
часы- программатор

Интересный тандем. Как-то даже не приходило в голову скрестить эти два девайса. Может, и не надо?

Свои часы я мастерил сам, не используя ни чьи программы, на 4-х разрядном индикаторе и 628-м ПИКе. Сейчас приспособил к ним трёхголосный тон-генератор.
Для секундных (а если быть точнее, полусекундных) прерываний использовал TMR1, с собственным генератором и внешним "часовым" кварцем. А, для всего остального, прерывания от TMR0, с внутренним генератором.

vadglebov пишет:

 цитата:
сканирование клавиатуры на нажатие происходило в нулевом разряде

А почему не использовать динамическое сканирование? При этом, задействуя всего одну ногу МК, получаете количество кнопок, равное числу разрядов (в Вашем случае - шесть).


 цитата:
сканирование портов клавиатуры происходит дважды за одну секунду

ИМХО, слишком большой интервал. Надо, что бы кнопка "определилась" с нажатием, ну, за 0,5 сек. А ещё лучше, за 0,1.


 цитата:
отладчик ICD,сильная ,и необходимая вещь

Возможно. Но я свои схемы отлаживаю в Протеусе. Ребята с Казуса "прикрутили" его к МПЛАБу. Очень удобная штука получилась. Можно всё отладить, не вставая с дивана. Пока столкнулся только с невозможностью вывода русских символов на HD44780.
Сейчас, как-раз делаю новую версию часов. Хочу встроить настройку длительности срабатывания будильника.


Obligatus Servus Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 138
Зарегистрирован: 26.12.06
Откуда: Украина, Новомосковск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.11.07 09:41. Заголовок: Тоже делал часы за о..


Тоже делал часы за основу брал часы Сергея Губаря у меня была сходная ситуация только часы начинали считать как ненормальные после первой секунды и в MPLABe тоже было все ОК. Но проблема оказалас в том что первоначально установленное значение предделителя ТМR0 в регистре Option_R обнулялос проверял этот факт путем записи значения регистра Option_R в ЕПРОМ пика после первой минуты затем принудительно "вешал" программу командой GOTO $-1 и читал програматором ЕПРОМ пика. Решил проблему перезаписью значения регистра Option_R при каждом прерывании. Но у меня появилас другая проблема это точность хода часов по этой причине я отказался от такого варианта часов сейчас хочю попробовать с ТМR1 и часовым кварцом на внутреннем генераторе пика (все делал на 16F628A) пргу написал но пока к сожалению нет времени проверить в железе.

Чюдес не бывает, особенно когда касается электроники. Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 31
Зарегистрирован: 02.01.07
Откуда: Ukraine, Славута
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.11.07 14:57. Заголовок: Vladimir ,спасибо за..


Vladimir ,спасибо за совет ,у меня это было по началу также через 1 сек,а потом что-то изменил и началось после 6 мин.Буду пробывать.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 32
Зарегистрирован: 02.01.07
Откуда: Ukraine, Славута
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.11.07 15:26. Заголовок: Vladimir ,если можно..


Vladimir ,если можно поделитесь пожалуйста,своим вариантом часов ,просто интерестно как у вас устроен принцип работы.

Dmitry Dubrovenko
Но я свои схемы отлаживаю в Протеусе. Ребята с Казуса "прикрутили" его к МПЛАБу. Очень удобная штука получилась.

Дмитрий ,я задавал вопрос в другой ветке в чем преимущества,соединения двух программ? Мне никто так и не ответил ,так всётаки ,что это даёт программисту?В протеусе как я помню есть возможность подключения hex.файла в рабочий проект для
моделирование работы контроллера?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 139
Зарегистрирован: 26.12.06
Откуда: Украина, Новомосковск
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.11.07 17:55. Заголовок: Здесь http://ifolder..


Здесь http://ifolder.ru/4078761 вариант с часами Сергея Губаря (часы проверены в железе работают с вышеупомянутой проблемой), а здесь то что я переделал под часовой кварц http://ifolder.ru/4078784 (пока только программа еще не отлаживал в железе).
Выложены полные тексты программ для облегчения вся обработка времени осуществляется в ПП прерывания далее в прграмме просто идет вывод на индикацию, измерение температуры и т.д. Прсьба сильно не плеватся рабочие черновики и выложены как есть.

Чюдес не бывает, особенно когда касается электроники. Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 427
Зарегистрирован: 12.01.07
Откуда: Приднестровье
Рейтинг: 2
ссылка на сообщение  Отправлено: 10.11.07 19:42. Заголовок: Я в своё время тоже ..


Я в своё время тоже чем то подобным занимался, только не часы делал а таймер, позволяющий изменять выдержку от 1 секунды и до 100 часов с точностью в одну секунду.
Секунды считались в прерываниях от таймера TMR0, там же (в этих прерываниях) и динамическая индикация осуществлялась, что очень удобно поскольку не нужно в основной части программы заботиться о динамической индикации, и о том чтобы яркость свечения разрядов была равномерной.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 34
Зарегистрирован: 02.01.07
Откуда: Ukraine, Славута
Рейтинг: 0
ссылка на сообщение  Отправлено: 10.11.07 23:52. Заголовок: спасибо Vladimir,бу..


спасибо Vladimir,буду изучать ваш вариант.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 476
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг: 1
ссылка на сообщение  Отправлено: 11.11.07 01:27. Заголовок: Vladimir пишет: про..


Vladimir пишет:

 цитата:
проблема это точность хода часов

Увы! И с генератором от TMR1, она - никакая. Пришлось делать дополнительный алгоритм коррекции "хода".

vadglebov пишет:

 цитата:
в чем преимущества

На мой взгляд, главное преимущество в том, что можно управлять сигналами на входных портах, при всём, при этом, вы точно так же можете осуществлять все действия в МПЛАБе.

P.S.: Ребяты! Не надо вставлять в топики целиком тексты программ (или уж хотя бы делайте это "скрытым текстом").
И темы давайте задавать более конкретно. Как говорит один мой знакомый: "В правильно заданном вопросе, половина ответа!"


Obligatus Servus Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 8
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия