@ru_arduino

Страница 3039 из 7737
Alex
13.08.2017
00:19:27
?

Dolphin
13.08.2017
00:19:36
функцию задержки покажи

а сори вижу код

Google
Alex
13.08.2017
00:20:17
:)

Dolphin
13.08.2017
00:24:33
есть идеи?)
ща погоди, я тока проснулся и почти не спал

зырю

есть идеи?)
чем компилишь кста? студией?

Alex
13.08.2017
00:25:57
ага

Dolphin
13.08.2017
00:28:13
ага
есть идея

не на 60 проверять а на 59

Alex
13.08.2017
00:29:17
тогда погрешность будет не 13 секунд, а 12 :)

Dolphin
13.08.2017
00:30:53
тогда погрешность будет не 13 секунд, а 12 :)
а какая цель ваще этой кухни?

Я имею ввиду подгони задержку так, чтобы на требуемом диапазоне периодов была минимальная относительная погрешность

смысл в том, что Злой тебе правильно сказал, на внутреннем РЦ ты не добьешься стабилизации

Google
Alex
13.08.2017
00:33:18
Я использую осцилятор ватчдога, вот такой график подогнали



вот и причина

Dolphin
13.08.2017
00:35:09
вот и причина
там на всех предделителях так

а еще, почему у тебя накапливается погрешность

потому что ты не учитываешь количество циклов на операцию

хотя предделитель большой, роли это много не играет согласен

вот и причина
Почему не по совпадению прерывание??

outi TIMSK0, (1«TOIE0); разрешаем прерывания от переполнения

outi TCNT0, 256-125 1 секунда = 128, а у тебя 131

Alex
13.08.2017
00:41:24
почему 128? 128кГц/1024 = 125 тиков в секунду

Dolphin
13.08.2017
00:42:23
а бля переполнение же

Alex
13.08.2017
00:43:44
надо переписать на совпадение)

Dolphin
13.08.2017
00:44:10
а ты не задаешь переполнение

а ок, при нолях он до топа считает

почему 128? 128кГц/1024 = 125 тиков в секунду
в любом случае тебе нужно этим ровнять

подбери экспериментально, а потом период увеличивай

и чем ниже предделитель, тем точнее можно считать

Alex
13.08.2017
00:48:42
предделитель таймера?

Google
Dolphin
13.08.2017
00:48:44
надо переписать на совпадение)
если ты в студии, че не на си-то?

Alex
13.08.2017
01:09:57
если ты в студии, че не на си-то?
хочется покрутить асм)

Dolphin
13.08.2017
01:10:31
ну понял, сомнительное удовольствие

пиши на си, а экстремальные функции делай на асме

либо внешними либами, либо инлайном

эффект тот же, а удобство выше в 100500

Alex
13.08.2017
01:11:33
да не, мне одинаково

Dolphin
13.08.2017
01:12:00
да не, мне одинаково
хозяин барин )

Alex
13.08.2017
01:12:17
я так-то на си пишу, но тут захотелось прям асм осилить)

гораздо неудобнее с 8-битным таймером жить)

Dolphin
13.08.2017
01:14:04
Alex
13.08.2017
01:15:05
ну вот сейчас я подключу нормальный генератор на 4.8МГц, и предделитель включу на 1024, получу 4687,5Гц на тик таймера)

был бы 10-битный можно было бы считать секундами, а тут придется держать отдельный регистр

Dolphin
13.08.2017
01:15:56
add r21, 1 adc r22, 0 adc r23, 0 adc r24, 0

32 бита )

Alex
13.08.2017
01:17:44
я пока не совсем понял что делает ADC :(

Dolphin
13.08.2017
01:18:02
перенос прибавляет

при переполнении р21, будет перенос, который прибавится к р22

Alex
13.08.2017
01:18:25
вот про перенос и не ясно)

Google
Dolphin
13.08.2017
01:18:54
перенос это флаг (1 бит)

смысл adc такой если флаг переноса установлен, прибавить к регистру 1

Alex
13.08.2017
01:19:54
но adc принимает 2 регистра же?

Dolphin
13.08.2017
01:20:06
типа adc r20, 6 r20 = r20 + 6 + перенос

вот так

Alex
13.08.2017
01:20:30
типа adc r20, r21

нельзя adc r20, 0

Dolphin
13.08.2017
01:20:56
ок

r1 юзай

он всегда 0

Admin
ERROR: S client not available

Alex
13.08.2017
01:22:32
ок, выделю 2 регистра, добьюсь 16 бит, но как их потом сравнить?)

Dolphin
13.08.2017
01:22:59
cp cpc cpc cpc

:)

Alex
13.08.2017
01:23:38
а несколько cp соединяются с помощью and?

Dolphin
13.08.2017
01:24:22
не, cpc после cp - как бы продолжает сравнение

если при cp есть флаг переноса, то он сыграет роль в сравнении cpc

а несколько cp соединяются с помощью and?
http://www.gaw.ru/html.cgi/txt/doc/micros/avr/asm/cpc.htm

Alex
13.08.2017
01:26:59
https://code.re/aqj

типа этого?

Google
Dolphin
13.08.2017
01:27:43
типа этого?
не, это не cpi, тоже нельзя с константой сравнивать. Только регистры

Alex
13.08.2017
01:27:57
ну я условно

обновил

https://code.re/aqj

Dolphin
13.08.2017
01:29:10
да, но cpc r17, r21 тогда

типа ты r16:r17 сравниваешь с r20:r21

Alex
13.08.2017
01:29:50
не понял

Dolphin
13.08.2017
01:30:03
16 бит

r16 - старший байт, r17 - младший

сравниваешь с: r20 - старший : r21 - младший

Alex
13.08.2017
01:30:51
каажется, догоняю

Dolphin
13.08.2017
01:30:59
?

:)

в отладчике на константах погоняй и смотри на флаги!

дойдет быстро

sifun
13.08.2017
01:32:07
вочдог очень плохую точность имеет

в отличие от основного рц

он под малое потребление оптимизирован

Alex
13.08.2017
01:33:28
вочдог очень плохую точность имеет
да, я понял уже, спасибо большое :)

Dolphin
13.08.2017
01:34:21
типа такого? https://code.re/aqj
да, только для себя определи правило

четные регистры - всегда старший байт

не будешь путаться

Страница 3039 из 7737