RTC in PIC12F629
29.01.2015, 21:05
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
|
Re: RTC in PIC12F629
Сообщение от RECTO
|
|
На новый цикл таймер будет загружаться скорректированным значением
|
Я тоже так думаю, что точность (вернее дискретность) отсчета таймером будет равна интервалу приращения таймера. И это вполне по силам сделать. Например, пусть будет кварц на 16 МГц, предделитель таймера 1:4. Интервал приращения тогда будет 1 мкс, и счет до переполнения пусть будет 200 мкс, тогда начальное значение таймера = 56 + задержка на то, чтобы дойти до шага перезапуска таймера, пересчитанная в интервал приращения таймера. И уже пеосле перезапуска таймера уже можно инкрементировать счетчик переполнений таймера. Счетчик в этом случае будет двухбайтный, досчитать нужно до 5000 - и это будет интервал 1 с, тут можно инкрементировать счетчик секунд.
При этом прерывания таймера следуют с постоянным интервалом, а чтобы не было колебаний, обработку прерывания от выбранного таймера нужно делать в самом начале обработчика.
Автор выбирал такую точность, чтобы убрать постоянную программную ошибку от нецелых чисел. Но если бы автор еще немного посчитал, то мог бы без проблем увеличить период приращения в несколько тысяч раз без потери точности счета. Например, кварц тот же на 16 МГц, предделитель таймера 1:128, приращений таймера 250, начальное значение 6+задержка до перезапуска. Получается интервал переполнения 8 мс и счет переполнений до 125 в однобайтном счетчике - получится тот же интервал 1 секунда с той же точностью (без программной ошибки) и при меньших издержках.
В принципе можно и еще увеличить интервал без потери точности. Но в этом случае при тех же зпараметрах и предделителе таймера 1:256 (период переполнений 16 мс) после 62-го счета переполнений нужно изменить предделитель на 1:128 и после следующего переполнения снова установить предделитель на 1:256.
PS. Либо, автору так и не удалось подобрать параметры таким образом, чтобы не возникало постоянной программной ошибки из-за нецелых чисел. И он просто свел ошибку до постоянной погрешности не более 1 мкс. И этого более чем достаточно, тем более, что у частоты МК тоже есть погрешность и нестабильность частоты.
Последний раз редактировалось NewWriter; 29.01.2015 в 23:08.
|
|
|
|
30.01.2015, 06:32
|
|
|
Прохожий
Регистрация: 27.01.2015
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: RTC in PIC12F629
Сообщение от RECTO
|
...А "микросекундная точность" тут вообще ни при чём, конечно. Точность таких часов будет равна точности используемого кварцевого генератора. ТС, возможно, будет удивлён, но она может оказаться и не такой высокой. Впрочем, для данной задачи как раз...
|
Нет никакого несоответствия. Просто я сказал ТС, что его нагрузка может включиться на 1 мкС позже, чем он рассчитывает  , ведь он так дорожит микросекундами, а про точность Вы сами ответили.
ТС уже давали совет, повторюсь. Простых вариантов два. Либо использовать "часовой" резонатор на 32768Гц запустив на нём TMR1 и использовать sleep для энергосбережения, либо использовать резонатор на 4096КГц и тактировать часы от системного осциллятора. В обоих случаях два вывода "выпадают" из списка доступных для операций ввода/вывода.
Последний раз редактировалось shindbad; 30.01.2015 в 06:44.
|
|
|
|
30.01.2015, 12:12
|
|
|
Супер-модератор
Регистрация: 09.06.2011
Сообщений: 2,762
Сказал спасибо: 76
Сказали Спасибо 1,840 раз(а) в 668 сообщении(ях)
|
Re: RTC in PIC12F629
|
|
|
|
30.01.2015, 12:48
|
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: RTC in PIC12F629
Уважаемые знатоки! Вам делать нех или просто маня спорить?
Какое ещё
|
Цитата:
|
|
программное срабатывание с точностью до микросекунды
|
? С головой когда дружить начнёте?
Для чего? Релюшкой поклацать? Так это глупо, со всех сторон! На чём, на PIC12F629? Вечный двигатель изобретаете? Если нужна действительно настолько жёсткая привязка, то нужно соответствующее железо, таймер, и не на 8/16 разрядов, например. Чего в PIC12F629 не наблюдается.
|
|
|
|
30.01.2015, 12:52
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: RTC in PIC12F629
STM32F0, Ну так это обычно у нубов
- хАчу конфету из дерьма, что под рукой...
__________________
Осторожно , злой кот
|
|
|
|
30.01.2015, 13:20
|
|
|
Прохожий
Регистрация: 27.01.2015
Сообщений: 9
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: RTC in PIC12F629
Мне лично, делать просто нех. Прикольно почитывать подобные темы, когда автор сначала выбирает МК, а уже потом думает, как реализовать на нём свою задумку.  Да я и не спорил. И разве в моих советах применительно к задаче нет ничего конструктивного?
Последний раз редактировалось shindbad; 30.01.2015 в 13:31.
|
|
|
|
01.02.2015, 07:49
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
|
Re: RTC in PIC12F629
Сообщение от STM32F0
|
|
таймер, и не на 8/16 разрядов, например. Чего в PIC12F629 не наблюдается.
|
Да вы наверно шутите?  Таймер можно сделать хоть на сколько разрядов и отмерять интервал в год длинной с дискретностью в миллисекунду.
Сообщение от shindbad
|
|
Прикольно почитывать подобные темы
|
А что вы смеетесь? Между прочим, кварцевые (не керамические) резонаторы достаточно точны. Им вполне по силам обеспечить погрешность в пределах 4-5 секунд в сутки. Я сам проверял, делал ьаймер от кварца МК. Керамические резонаторы куда менее точные, с ними за час секунд на 5 ошибки набегает. Ну а внутренний генератор МК и подавно, особенно если его не калибровать, то чуть ли не наполовину частоты ошибка.
Автор конечно не говорит что именно он имел ввиду под "точностью срабатывания в 1 мкс".
|
|
|
|
01.02.2015, 15:12
|
|
|
Прописка
Регистрация: 04.09.2009
Сообщений: 167
Сказал спасибо: 1
Сказали Спасибо 35 раз(а) в 25 сообщении(ях)
|
Re: RTC in PIC12F629
Во, цитирую сам себя!  Я всегда смеюсь, когда:
Сообщение от shindbad
|
|
...автор сначала выбирает МК, а уже потом думает, как реализовать на нём свою задумку...
|
Знаю я про и резонаторы, и про внутрение генераторы, их я и рекомендовал. Топикстартеру очень не помешает почитать даташит на выбранный контроллер.
Последний раз редактировалось shindax; 01.02.2015 в 15:21.
|
|
|
|
01.02.2015, 15:24
|
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
|
Re: RTC in PIC12F629
Сообщение от NewWriter
|
Да вы наверно шутите? Таймер можно сделать хоть на сколько разрядов и отмерять интервал в год длинной с дискретностью в миллисекунду.
|
Отнюдь, речь о аппаратных таймерах ...
__________________
Осторожно , злой кот
|
|
|
|
01.02.2015, 17:03
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
|
Re: RTC in PIC12F629
Сообщение от dosikus
|
|
Отнюдь, речь о аппаратных таймерах ...
|
А если включить последовательно 2-3 таймера через внешние выводы?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:04.
|
|