Страница 1 из 1

МК AVR задержка через TCNT0

Добавлено: Ср фев 22, 2012 09:16:47
KekZzz
Народ привет. Начинаю изучать МКашки, нашелинтересную книгу Д.Мортона по AVR'ам. Тут прога бегущий огонь с регулирование скорости с 0.1с до 1с. В counter заносится 1-10 для выбора требуемой задержки; mark240 - маркер для организации задержки в 0.1 (тактовая частота 2.4ггц). Собственно вот фрагмент:

Timer:

in temp,TCNT0
cp temp,mark240
brne timer

subi mark240,-240
dec counter
rjmp start


Я не могу понять зачем прибавлять к маркеру число "240" каждый раз по достижении таймером "240" :( объясните пожалуйста. Спасибо!)

Re: МК AVR задержка через TCNT0

Добавлено: Ср фев 22, 2012 09:38:15
ploop
тактовая частота 2.4ггц
А что за AVR-ка с такой частотой, если не секрет? :)
Я не могу понять зачем прибавлять к маркеру число "240" каждый раз по достижении таймером "240" :( объясните пожалуйста. Спасибо!)
Прибавляется минус 240, т.е. вычитается 240. Это такой сброс таймера.
На самом деле код чисто для обучения, в реальном проекте такое использовать - глупость, т.к. у таймера есть несколько режимов работы, например сброс по совпадению.

Re: МК AVR задержка через TCNT0

Добавлено: Ср фев 22, 2012 13:42:33
KekZzz
по моему у 90s1200 2.4 ггц.

subi разве не вычитает?
SUBI - вычесть непосредственное значение.
- (-240) будет плюс.

Так как лучше реализовать задержку используя/не используя таймер?
"сброс по совпадению", а что еще?

И какие реально толковые книги можно еще почитать?=)

Re: МК AVR задержка через TCNT0

Добавлено: Пн мар 05, 2012 10:43:27
KekZzz
Ап! Вопрос еще открыт!

Re: МК AVR задержка через TCNT0

Добавлено: Пн мар 05, 2012 10:52:25
SubDia
Во-первых, максимальная частота у 90s1200 - 12 МГц (и то, у 90s1200-12). Во-вторых, учитывая незнание режимов работы таймеров, а также п.1, можно сделать вывод, что в даташит Вы даже не заглядывали. Этим и озаботьтесь для начала.
А в плане книг гугл поможет. Он не помогает только тем, ко не ищет.

Re: МК AVR задержка через TCNT0

Добавлено: Пн мар 05, 2012 13:10:11
KekZzz
Tcnt может работать как таймер и как счетчик что следует из названия. настраивается регистром tccr (частота для таймера и изменение счета по фронтам для счетчика). И чего же я не знаю? Да и кстати я думал этот раздел для того чтобы задавать вопросы и получать на них ответы. По крайней мере это написано в описании раздела.

Re: МК AVR задержка через TCNT0

Добавлено: Пн мар 05, 2012 13:33:07
SubDia
---------оффтоп, можно не читать-------------
KekZzz писал(а):Да и кстати я думал этот раздел для того чтобы задавать вопросы и получать на них ответы.
А я думал, что прежде чем задавать вопросы, нужно самостоятельно хотя бы документацию от производителя изучать.
Ладно, проехали.
----------------------------------------------------
По поводу команды subi

subi mark240,-240

Там, очевидно, применяется декремент (dec), отсюда и прибавление. Но приемчик странноват, откровенно говоря.
И насчет вопроса "использовать/не использовать таймер для задержек" - конечно же лучше использовать.
ЗЫ. За резкость тона не забижайтесь.

Re: МК AVR задержка через TCNT0

Добавлено: Пн мар 05, 2012 13:43:20
hybroid
SubDia писал(а):и тебе все разжевали. Красота!
"Даташиты на распространённые МК в кратком изложении для лентяев" Издание второе, дополненное бабушками на лавочках. :))

Re: МК AVR задержка через TCNT0

Добавлено: Пн мар 05, 2012 13:54:21
SubDia
hybroid, да я тоже неправ - нельзя так сразу на людей. "С людями надо быть помягше, а на вопросы смотреть ширше".
ЗЫ. Но даташиты при этом не забывать читать. :)))
ЗЗЫ. Топикстартеру - насчет книжек - если асм, то у Вольфганга Трамперта есть две замечательные книги по МК АВР. Названий точно не помню.

Re: МК AVR задержка через TCNT0

Добавлено: Пн мар 05, 2012 13:59:49
hybroid
А меня жуть как бесит, когда начинаются нюни на тему: "А зечем же ещё форум нужен? Я думал тут советуют.. ПАМАГИТЕ блиа, йа весь такой няшный и учусь!!" Хочется взять и уе.. что-то нехорошее сделать.
SubDia писал(а):нельзя так сразу на людей
А по мне - так ничего плохого в этом нету. Особенно после гигагерц частоты.

Re: МК AVR задержка через TCNT0

Добавлено: Вт мар 06, 2012 01:05:54
Jack_A
hybroid писал(а): Особенно после гигагерц частоты.
:))

Re: МК AVR задержка через TCNT0

Добавлено: Вт мар 06, 2012 05:47:27
KekZzz
МГц) так там же декрементируется каунтер, а суби 240 прибавляет к марку?

Re: МК AVR задержка через TCNT0

Добавлено: Вт мар 06, 2012 10:16:17
SubDia
Собственно, это и хотел уточнить.
А приведите полный исходный текст, если это возможно, и он не шибко велик.

Re: МК AVR задержка через TCNT0

Добавлено: Вт мар 06, 2012 10:46:41
ploop
Там по хитрому выходит: SUBI -240 будет прибавить 240, или вычесть 16 с установкой флага переполнения :)