Касательно кварца. Я как то делала таймер для одной установки. На восьмой меге. Там нужны были часы. Которые я, ради эксперимента, реализовала на часовом кварце и Т2- таймере. Применив идею коррекции хода часов товарища AterLux, да добавив кучку математики, что б коэффициент коррекции рассчитывался автоматически при очередной установке/подстроке времени, получилось добиться точности порядка секунды за период с мая месяца по текущий момент. Без термокоррекции, ибо таймер у людей работает в помещении.
AQ29, Интересно. Берем всеми любимую мегу8. Как там можно соединить аппаратно пару таймеров?
Не знаю, насколько удобна автоматическая установка. А если за отсчётный период произошёл сбой часов, скажем, на час. Потом время пользователь может устанавливать неточно, с точностью до минуты.
Мега8 уж совсем старенькая. Хотя и сейчас вполне подходит. Купил по дешёвке в ЧипДипе где-то за 60 рублей (ещё и в корпусе Dip) для макетных плат с сокетой с нулевым усилием. Удобно отлаживать элементы программы, ядро ведь одинаковое.
Уже, наверно, лет 8 выпускают новое поколение AVR, вот там есть аппаратное соединение периферии. Купил AVR32DA32. Там есть 8 каналов. Вход каждого канала можно аппаратно подключить к разной периферии – порты, таймеры, USART, SPI. В таймерах можно подключить к разным флагам – переполнения, регистра сравнения и т.д. В канал также можно подать сигнал и из программы. Выходы канала также можно подключить к разной периферии. К выходу каждого канала можно подключить несколько периферийных устройств. Можно асинхронно, это напрямую, либо синхронно через тактовый сигнал. Пока почитал описание поверхностно, детально не вникал.
AVR32DA32 любопытно)) глянул мельком даташит... обычная ардуина)) аппаратное соединение периферии это не самое главное. важнее доступность и удобность... купить где ? не во во всех магазинах есть.. а писать где ? а прошивать чем ? и т.д.
сегодня читал эту тему и по компу проверил время - мои часы отстали на 24 секунды. сделал синхронизацию. но память уже подводит, не помню, когда последний раз делал синхронизацию. на вскидку - примерно месяц назад, плюс-минус трамвайная остановка. всё собираюсь сделать запись в регистр старения, но так и не собрался.
_________________ Мудрость приходит вместе с импотенцией... Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Подключил старую плату на mega168PA на которой формировал 0,2 сек для часов Янтарь. Сейчас часы работают от tiny12. СпойлерЧастотомер на выводе "5 минут" показал Спойлер Меня такая точность устраивает.
AVR32DA32 любопытно)) глянул мельком даташит... обычная ардуина)) аппаратное соединение периферии это не самое главное. важнее доступность и удобность... купить где ? не во во всех магазинах есть.. а писать где ? а прошивать чем ? и т.д.
Купить несложно, конечно, в каждом ларьке нет, есть в ЧипДипе. У нас в городе есть его филиал, так что доставка бесплатна. Понабирал комплектацию, оплатил, где-то через неделю заехал в магазин и забрал, удобно. Где-то в интернете есть, как программировать, среда разработки должна быть. Я этим не интересовался, у меня свой программатор и ассемблер. Есть ещё интересный вариант новой тину – Attiny1616 (16 килобайт). Полно всяких современных наворотов, и цена привлекательная, в ЧипДипе – 79 руб. А старенькая и немощная ATtiny2313 стоит 270 рублей, давно пора делать выводы.
Ну если писать на современных ассемблерах да бояться прерываний, то может и сбой будет... А если грамотно делать питание и помехозащищенность, а программу писать на си - то вот таких сбоев я за свою долгую практику не наблюдала.
Ассемблер и прерывания тут не причём. У вас наверняка тепличные условия, что будет при реальных испытаниях – вопрос. Тут уже писали, а что будет с автоматической настройкой при отключении питания. Вообще-то неясно, зачем нужны сложные расчёты. Когда-то по заказу приятеля тоже делал подстройку времени. Давно было, подзабыл, но как-то так. В ЕЕПРОМЕ хранится коррекция, вначале ноль. Аппараты запускались на прогон на неделю, определялось, насколько время ушло, например, часы отстали на 4 секунды. В ЕЕПРОМЕ в коррекцию записывается число 4. Часы затем каждую неделю в ночь с воскресенья на понедельник ко времени добавляет 4 секунды, всё просто. Кстати, отключение электричества не помешает, часы пойдут, питаясь от батарейки.
AQ29, Юноша, сначала спросите, в каких условиях работают мои устройства, а потом делайте выводы про тепличность. У меня не реальные испытания, а работа изделия в лабе, уже более года. И при отключении питания ничего не будет. Часы как шли, так и будут идти. При пропадании питания запитанным будет только микроконтроллер через идеальный диод на мосфете. И, поскольку МК знает про отсутствие нормального питания, все задачи будут завершены и остановлены, будут активны только часы. А все остальное время МК будет спать. И жрать при этом единицы микроампер.
И если вам неясно, зачем нужны сложные расчеты, то отвечу. Элементарно - что б не записывать на бумажечке, когда вы там выставили точное время, что б посчитать через неделю, сколько нужно секунд прибавить или убавить, потом куда то вносить эту циферку - ваши 4 секунды, что б сохранить их в EEPROM. А просто - в удобное время подойти к изделию, "дождаться начала шестого сигнала" и нажать кнопку установки. И дальше не нужно ломать голову, а какую ж цифирку писать в еепром. 4 секнуды, три... или 5 с половиной... Кстати, как в вашем алгоритме еженедельной коррекции отрабатывается ситуация, когда число секунд дробное?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 363
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения