Страница 4 из 6

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Вт авг 27, 2013 10:40:23
ibiza11
Что то вас, коты, совсем понесло. Все же просто, блин.
BOB51 писал(а):Речь идет об ошибке, накапливаемой последующими счетчиками, для которых уже чистого секунд (маркер) интервала не будет из-за задержек, вносимых той самой реакцией на прерывание
Ну как же не будет? Еще как будет, если счетчик таймера сам перезагружается (или переполняется), то никакая задержка перед входом в прерывание не будет вносить погрешность в счет таймера.
Представьте, что произошло прерывание таймера - он отсчитал одну секунду. Перезагрузился и считает дальше.
В этот момент выполняется какая-то команда программы... идет процесс перехода программного счетчика на метку начала обработчика прерывания. Это длится сколько-то там Х тактов. Эти Х тактов не повлияют на момент следующего прерывания, поскольку таймер как считал, так и считает дальше. просто с момента входа в прерывание до момента следующего прерывания пройдет не 1 секунда, а 1 секунда минус Х тактов. Главное, чтобы Х тактов не превысили интервал 1 секунда, поскольку иначе мы просто пропустим прерывание.

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Вт авг 27, 2013 11:37:42
O-LED
BOB51 писал(а):НЕ компенсировать, а снизить, по возможности, их влияние и величину.
Зачем?

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Чт авг 29, 2013 09:46:45
BOB51
ЗАЧЕМ...
Так, к примеру, зацарапаем простенькое реле времени на 10 секунд... И вот чего получилось:
графка.GIF
(23.01 КБ) 421 скачивание
график конечно утрирован, но смысл вроде понятен.
8)

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Чт авг 29, 2013 12:18:33
ibiza11
BOB51, вы явно решили потроллить. Я уж думал все успокоилось.
Причем здесь время выполнения команд? и у вас на рисунке что-то не то с масштабом. в одну секунду при тактировании от 32768Гц кварца влезет ровно столько же тактов микроконтроллера(32768). У вас же нарисовано так, как будто в секунду может выполнится не более 20 команд... :shock:
Вы все еще не понимаете, что аппаратный таймер не останавливается в момент прерывания и продолжает дальше считать? приведите наконец кусок кода, который вызовет то, что вы описываете на картинке.

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Чт авг 29, 2013 15:06:50
O-LED
ibiza11 писал(а):BOB51, вы явно решили потроллить.
хм, а точно ведь...

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Чт авг 29, 2013 18:37:11
blackx
BOB51, а вы вообще видите разницу между постоянной ошибкой и накапливаемой?

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Чт авг 29, 2013 18:57:58
BOB51
Графка - всего лишь принцип появления ошибки, как там указано график весьма условный...
Для прерываний по таймеру она будет усредненной постоянной только в случае исключительного примненния в программе однословных команд (относительно AVR), а для последующих счетчиков вероятно уже накапливаемой.
:sleep:

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Чт авг 29, 2013 19:59:45
Kavka
Согласен с ibiza11.
BOB51, покажи пример кода!

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Чт авг 29, 2013 20:31:52
ILYAUL
2Kavka 2ibiza11 Решили добить BOB51 :kill:

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Чт авг 29, 2013 21:00:38
COKPOWEHEU
Интересно как BOB51 представляет себе работу асинхронного таймера. Ну например ATmega8 может тактироваться от внутреннего RC скажем на 1 МГц и в то же время один из таймеров может работать от внешнего кварца на ногах 9 и 10. Причем может продолжать работу и генерировать прерывания даже в режимах сна когда остановлено ядро и прочие таймеры. Если время обработки его прерывания меньше чем период частоты его возникновения (а это обычно так и есть, было бы чего там обрабатывать) то накапливаться ошибка не будет. А постоянную ошибку, а это меньше секунды, человек и не заметит. Есть, конечно, искусственные способы накопления ошибки. Например, предложенный программный перезапуск таймера или задержки в обработчике (ага, больше чем на секунду или сколько там). Кстати из гифки так и не понял где же эта накапливающаяся ошибка и как ее получили.

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 06:58:05
BOB51
А вот как раз о подобных аппаратных системах уже ранее говорилось - встроенные генераторы или полные RTC у некоторых мег (в частности у 162 и 128) и у пиков.
Графка касается применения 32768 в качестве внешнего кварца основного генератора.
Хоша также и работы асинхронника, но там уже две точки - первая это сама синхронизация входного сигнала с тактовым в МК и вторая - интервал между установкой флага прерывания и началом исполнения самого прерывания. А эти интервалы уже зависят от длительности тактов главного генератоора системы, а не от точности асинхронного счетчика. 8)
Да и от кода эти задержки не зависят - особенность построения и аппаратной обработки прерываний практически у всех МК одинакова. :)

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 08:08:28
ibiza11
BOB51, Вы уходите от ответа. Давайте не будем голословны. Приведите код, вызывающий ситуацию, которую Вы пытаетесь до нас донести...

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 12:09:41
BOB51
:)))
А причем код - то, да еще и конкретный?
Речь то о том, что часики собранные на основе ATtiny2313 (или по подобному принципу - с единым генератором тактового сигнала для ядра МК и для тайаера опорного интервала) будут показывать более точное время в случае, ежли будет применен более высокочастотный кварц ( в примере 8МГц), чем кварц 32768Гц. И причины данное утверждение объясняющие. А поскольку причины аппаратного происхождения, то какой-бы котд там не применялся результат будет одинаков.
:sleep:

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 12:35:52
akl
Стартёр не появляется в ветке, видимо, как-то для себя решил вопрос. Но, я не об этом. В качестве пятничной развлекухи сделал прогу - генератор 10 секундного импульса на ATtiny2313 с кварцем "8.000" для демонстрации отсутствия накопления ошибок.
Спойлер

Код: Выделить всё

; ’…‘’-®ЇаҐ¤Ґ«Ґ­ЁҐ з бв®вл Єў а楢®Ј® ЈҐ­Ґа в®а  AT90S2313 Fclk=8000000kHz

	.INCLUDE "2313def.inc"

	.CSEG
.def	_FF=R1
.equ	Fo=8002729		; 8002729 в этой строке пользователем устанавливается
				; частота кварца

	RESET:
		RJMP	START		; On Reset
COMP_A:
		SET			; On Interrupt 0
		RETI			; On Interrupt 1
		RETI			; Timer 1 capture

		RJMP	COMP_A		; Timer 1 compare
TIM1:
		SBIW	R24,1
		BRNE	TIM1_OUT

		CBI	PORTD,6

		LDI	R20,$40
		OUT	TIMSK,R20

		LDI	R20,$09		; START T1
		OUT	TCCR1B,R20

		OUT	TIFR,_FF
		SEI
	TIM1_WAIT:
		BRTC	TIM1_WAIT

		SBI	PORTD,6
		SET
	TIM1_OUT:
		RETI
;************************************************
	START:
		LDI	R16,LOW(RAMEND)
		OUT	SPL,R16
		
		SER	R16
		MOV	_FF,R16
		OUT	PORTB,R16
		OUT	DDRB,R16	; €­ЁжЁ «Ё§ жЁп Ї®ав  B

		OUT	PORTD,R16
		OUT	DDRD,R16	; €­ЁжЁ «Ё§ жЁп Ї®ав  D

		LDI	R20,$80
		OUT	ACSR,R20	; DISABLE ANCOMP

		CLR	ZH
		OUT	TCCR1B,ZH
		OUT	TCNT1H,ZH
		OUT	TCNT1L,ZH

		LDI	XH,HIGH(10*Fo-10*(Fo/65536)*65536-0)
		LDI	XL,LOW(10*Fo-10*(Fo/65536)*65536-0)
;		LDI	XH,HIGH(10*Fo-10*(Fo/65536)*65536-110)
;		LDI	XL,LOW(10*Fo-10*(Fo/65536)*65536-110)
		OUT	OCR1AH,XH
		OUT	OCR1AL,XL
	START1:

		LDI	R25,HIGH(10*Fo/65536)
		LDI	R24,LOW(10*Fo/65536)	; 122dec KOLITCHESTVO PEREPOLNENI T1 1SEC

		CLT

		LDI	R20,$80
		OUT	TIMSK,R20

		LDI	R20,$01		; START T1
		OUT	TCCR1B,R20

		OUT	TIFR,_FF
		SEI
	WAIT:
		BRTC	WAIT
		RJMP	START1

;************************************************
;************************************************
;************************************************
После программной коррекции частоты генератора, были получены следующие результаты
Спойлер9'999'999.82 мкс
10'000'000.13
10'000'000.51
10'000'001.01
10'000'001.01
10'000'001.05
10'000'001.16
отсутствовал
10'000'001.30
10'000'001.26
10'000'001.32
отсутствовал
10'000'000.06
10'000'000.05
10'000'000.13
отсутствовал
9'999'999.92
9'999'999.91
9'999'999.95
9'999'999.97
10'000'000.04
9'999'999.97
10'000'000.01
9'999'999.97
Как всегда, кварц в корпусе HC49C не имеет конденсаторной обвязки и его корпус соединен напрямую с 10 лапой ATtiny2313.

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 14:05:03
ibiza11
BOB51 писал(а)::))) А причем код - то, да еще и конкретный?
Да что же вы тогда нам всем тут голову морочили с временем выполнения команд и реакцией на прерывание???? признайте же уже, что лохонулись....
А с утверждением, что значение ppm будет делиться на бОльшее число при использовании более высокочастотного кварца никто и не спорил!

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 17:11:22
pavel1979
тема интересная!!!
значит тини просто так не заставишь работать от кварца 32768,а если и заставишь то тинька будет медленно работать?
а если завести частоту 32768(генератор любой,на к176ла7 к примеру) на т0 или т1,а там делить на нужное число,получится?
изучаю даташит...
минимум 400 кгц и то от керамического резонатора,температурная нестабильность которого 0,5 процентов-больно много...

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 19:27:43
blackx
Да не, это все бред, можно и от 32768 запускать :)

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 20:05:49
pavel1979
blackx писал(а):Да не, это все бред, можно и от 32768 запускать :)
можно,но с внутренним генератором,частота очень нестабильная,а с внешним минимум 400 кгц
вот нагуглил http://eselit.com/?part=scheme&sub=mc.a ... h_signalov

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 20:13:40
pavel1979
вот еще http://malmon.ru/stati/podsistema-sinkh ... #more-7692
если сделать на 1 транзисторе то схема будет не сложная
попробывать чтоли...

Re: ATTINY2313 и кварц 32768Гц

Добавлено: Пт авг 30, 2013 21:03:01
COKPOWEHEU
Да можно вешать на выводы любой кварц, чего извращаться-то. Единственное что tn2313 не поддерживает - отсутствия конденсаторов. Точнее ни один контроллер этого не поддерживает для всего диапазона кварцев, но некоторые поддерживают специальные для часового. В tn2313 этого нет, придется ставить внешние, вот и все.
Ошибка, разумеется. не накапливается