таймер1 непонятный режим 12

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

Этот код реализует    сигнал длительностью по уровням  170 и 100 микросекунд (примерно)

// Настройка ТАЙМЕРА1
TCCR1A=(1<<COM1A1)|(1<<COM1A0);// порт PB1 как инвертированый выход таймера
TCCR1B=(1<<WGM13)|(1<<CS12)|(1<<CS10); // режим 12 таймера, частота клока: Fclk/256=62500 Гц (1 тик таймера=0.9536 мкс (62500\655356) )
  uint16_t x = 170; // длительность '1' (единички или иначе импульса) в микросекундах
 uint16_t y = 100;   // Длительность '0'(ноля или паузы) в микросекундах
  ICR1= (uint32_t) (x+y) /128;
  OCR1A= (uint32_t) y /128;

но в даташите ниводном не нашёл  такой режим работы
 yи кусок текста  или таблицу в которой бы  указывалось что используется оба регистра OCR1A и ICR1 в работе!

А это...

ICR1= (uint32_t) (x+y) /128;
  OCR1A= (uint32_t) y /128;

Вообще магия. Может кто ткнёт пальцем ?
хочу понять где  это описано и как это  работает.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

Logik
Offline
Зарегистрирован: 05.08.2014

На меня эти "домики" из даташита всегда тоску нагоняют. Они совершенно не соответствуют ANSI C, и различны у разных контроллеров, потому если можна без них - то лучше без них. А ответ на ваш вопрос наверно andriano знает :)

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

selevo пишет:

но в даташите ниводном не нашёл  такой режим работы

Ну как же не в одном, по вашей же ссылке, 132 страница,  8й режим в таблице 16-4. А то, что непонятно -это нормально, нужно достаточно хорошо понимать принципы работы таймеров в AVR и назначение каждого регистра их конфигурации, тогда сразу же вся магия исчезнет, останется одна математика :)

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

Эта таблица лишь общая структура, которая  не  отвечает на мой вопрос. Там не  отображено что  и откуда берётся,и в какой  момент времени.

Где почитать  о таймерах всё ? Это не даташит ,а фигня какая-то, а английский  похож больше  на  литературный   интеллегента которому дали  написать   сочинение на тему  "atmega328", мне попадались места в тексте, где складывалось  впечатление что автор как бы размышляет ))) пздец просто какой-то.

 

странно,куда пропала моя аватарка....

 

 

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

selevo, увы, даташит предназначен для специалистов, фактически это справочный листок. По нему не реально научиться. Я никогда не встречал материалов, где всё было бы разжёвано в доступной форме. Хоть самому пиши :))  Почитайте Евстифеева "МК AVR Mega", правда  это фактически тот-же даташит но всё таки на русском и более развёрнуто. Ну и гугль и яндекс -хорошие помошники в поиске знаний :)

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

книгу посмотрю

а гугл и яндекс  фигню выдают  я  три месяца  искал (в неделю по разу,меж делами)  описание  полное таймера - не нашёл больше чем   набросано в  даташите.хз что  в общем.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

кстати не правильно написал номер режима

режим  8 вот  правильно

 

книга оказалась  просто переводом и объединением некоторой документации, я думал како-то профи по  МК  написал книгу...

Причём  сохранён  такой же обречённый стиль, как  a оригинале   даташитов.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

dimax

Сам ты это откуда взял, как узнал,при каких обстоятельствах ? Это же твой пример я разместил.

Меня просто   раздражают недокументированные вещи,точнее непонятные,я  должен понять и найти где  это  опубликовано.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

selevo, так я и советовал то, чем сам пользовался. Всё можно найти в поисковиках,по таймерам AVR довольно много написано, хотя как я уже говорил действительно толкового туториала нет. Так что нужно настойчиво изучать всё что попадётся.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

вот даташит, правильный.

На странице 172, строчка 8, про режим 8.

Там все написано, ICR1  используется как TOP счетчика таймера.

Если неясно что-то , я поясню завтра. Пиши - не стесняйся.

Совсем не согласен с Димой, что по даташиту нельзя учиться... не с ноля, имея базу, но конечно можно и нужно и другого способа нет.

Конечно нужен свободный технический аглицкий.... но тут уж - кто что имеет. Я устал говорить о том, что без аглицкого нужно в дворники идти. Кто-то считает эти мои заявления обидными... сорри.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:

Совсем не согласен с Димой, что по даташиту нельзя учиться...  не с ноля, имея базу, но конечно можно и нужно и другого способа нет.

Вы, часом, не путаете глаголы "научиться" и "разобраться"?

Обычный способ научиться - это либо по учебнику, либо с преподавателем, не никак не "по даташиту".

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

andriano пишет:

Вы, часом, не путаете глаголы "научиться" и "разобраться"?

Возможно Вы правы. Это скорее терминологический вопрос. Если известны общие принципы, как вообще бывают устроены таймеры, то найти конкретные моменты можно по даташиту. Но только, если ты знаешь, чего ждать.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:

Если известны общие принципы, как вообще бывают устроены таймеры, то найти конкретные моменты можно по даташиту.

Мне кажется, это излишне оптимистично. Я, например, знал, как работать с КР580ВИ53, но, чтобы освоить таймеры Атмеги, мне пришлось искать в И-нете статьи и читать их.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

andriano пишет:

wdrakula пишет:

Если известны общие принципы, как вообще бывают устроены таймеры, то найти конкретные моменты можно по даташиту.

Мне кажется, это излишне оптимистично. Я, например, знал, как работать с КР580ВИ53, но, чтобы освоить таймеры Атмеги, мне пришлось искать в И-нете статьи и читать их.

А мне - нет. Каждый из нас генерализует свой личный опыт. На мой взгляд - в даташите все изложено даже слишком подробно, как для дятлов. Вам - потребовались статьи... да еще небось на русском ;) ;) ;) ? 

Не стану ерничать дальше. Просто не стоит обобщать свое дугодумие на других.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:

А мне - нет. Каждый из нас генерализует свой личный опыт.

К линому опыту мы еще вернемся чуть позже.

Цитата:

На мой взгляд - в даташите все изложено даже слишком подробно, как для дятлов.

Кстати, это тоже - одна из причин. С таким объемом просто трудно работать. Ну либо надо самостоятельно штудировать дэйташит и переносить его содержимое в ряд намного более компактных таблиц.

Цитата:

Вам - потребовались статьи... да еще небось на русском ;) ;) ;) ? 

Потребовались. А вот насчет языка, честное слово, не помню. Вероятнее всего это был либо русский, либо английский. Точно - не китайский. А что, это так важно?

Цитата:

Не стану ерничать дальше. Просто не стоит обобщать свое дугодумие на других.

А теперь вернемся к личному опыту: Вы на форуме не первый день, по Вашему личному ощущению, каков процент новичнов (из тех, что пишут на форум) способен разобраться по дэйташиту с нуля (т.е. не имея представления о том, как работают нанлогичные устройства и с какой стороны к ним подойти)?

По моему личному опыту - 0.0% (в пределах статистичекой погрешности).

Но опыт, конечно, у каждого свой. И Представление о том, что считать очевидным - тоже. Некоторые, например, считают вполне корректным для обоснования арифметитичеких допущений использовать теорию групп.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Просто даташит по таймерам у мег написан с применением маркетинговой чухни типа "Phase and correct mode" .. какая нафиг "фаза и исправление"? Просто в этой группе режимов таймер считает сначала от нуля и "до упора", а потом взад "от упора" и до нуля. Соответственно период счета таймера удваивается, а частота соответственно падает вдвое. И вторая особенность режимов этой группы - это переключение выхода "на подъеме И на спаде" счета по совпадению с контрольным значением. Фсё, ничего там больше "заумного нет".

Все остальные "нюансы" (подрежимы) - это что считать "упором": можно считать во все 16 бит, можно меньше, можно считать до значения в регистрах самого таймера, в т.ч. и в ICR. Ну и прерывания можно устраивать по переполнению "вверху" когда изменяется направление счета с + на - или "внизу", когда счетчик переходит через нуль.

Можно менять значения регистров "упора" и ширины импульса "на лету", что и отражено на картинке: изменение "упора" приводит к изменению частоты (как и ожидалось), а изменение регистра счета изменяет ширину импульса. Но, он всегда симметричен относительно "верха" - момента смены направления счета.

А ну, ещё, во всех режимах счета можно изменять полярность выходного сигнала прямая или инверсная.

Что-то ещё забыл про этот режим? :)

 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Архат! Тут немножко не то производитель имеет ввиду. Fast PWM  и  Phase correct - отличаются, с точки зрения регулируемого устройства, тем, что в фаст - фаза сигнала плавает, смещаясь в сторону запаздывания, при уменьшении скважности. А в режиме "Корректной фазы" - этого не происходит. Фаза импульса всегда "стоит" на месте.

Для каких-то приложений (шаговые движки) это имеет значение. Для лампочек - прости за каламбур - "до лампочки"!

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

andriano пишет:

Некоторые, например, считают вполне корректным для обоснования арифметитичеких допущений использовать теорию групп.

Ну если, в упомянутом случае, Вам до сих пор непонятно, что отрицательные числа - это дополнение множества натуральных (которые полугруппа по сложению) до целых, которые группа по сложению. То мне жаль и вас ваш ВУЗ.

Это не "допущения", а единственно возможное, внутренне непротиворечивое, замыкание.

"Основную теорему алгебры" не слышали?

Своими словами расскажу, так понятнее будет. Формулировка "Поле комплексных чисел алгебраически замкнуто" - означает, что на любой планете, в любой галактике, с любой, даже совершенно нечеловеческой логикой, если начать рассуждать с одного камушка и другого камушка, и несколько камушков ... и т.д., то ЛЮБОЙ путь рассуждений приведет к полю комплексных чисел.

Складывая камешки - получим натуральные числа, отнимая часть кучки - получим целые, складывая и разделяя кучки - получим рациональные, добавив пределы всех сходящихся последовательностей - получим вещественные, и, наконец, добавив решение уравнения x^2 + 1 = 0, получим комплексные, (или кватернионы, но это вы уже не осилите).

Это не "допущения", это свойства мира в котором мы живем, именно такой Б..г сотворил вселенную, если позволите.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula, еще раз: арифметика и алгебра - разные математические дисциплины. Некорректно доказывать положения одной дисциплины, пользуясь положениями другой.

Пример на засыпку: допустимо ли извлекать квадратный корень из -1?

Еще: пересекаются ли параллельные прямые? Если "да" - сколько раз? Если "нет" сколько через точку можно провести прямых параллельных данной?

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Ну блин .. Вы опять с пивом на форуме? :)

Что там "немножно не то", когда я тупо отписал выжимку перевода даташита по конкретно этому и ОДНОМУ режиму? Какая фаза, куда и ОТНОСИТЕЛЬНО чего она "запаздывает" или нет? Есть счетчик .. чего он там считает, на выходной ноге в общем-то "пофиг", она "как-то дергается в результате счета". Всё. Во всех режимах при изменении как предела счета так и контрольного значения изменяется характер выдаваемых импульсов.

Отличие конкретно этого режима, только в том, что если используется больше одного выхода с одного счетчика, то их импульсы всегда будут симметричны относительно их общей середины, а не фронта/спада. Этим режимом можно управлять мостами напрямую, создавая "мертвые задержки" для блокировки сквозняков в мосфетах полумостов, но потребуется пара выходов на каждый полумост И программная, в прерывании перезаливка значений в пороги. Можно было бы управлять и целым мостом, если бы выходов было 4 (есть такие Атмелы тоже!), а не по уродски только 3шт.

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

да,подкиньте нормальную книгу.

Arhat109-2
Offline
Зарегистрирован: 24.09.2015

Вам уже подкинули и не раз: даташит. Нормальнее - ничего не бывает, ибо это "бредбук" от изготовителя того или иного чуда. Ни в одной книге Вы не прочтете ничего такого, чего нет в даташите. Ну или .. такое бывает крайне редко и опасно к применению (недокументированная фича).

selevo
selevo аватар
Offline
Зарегистрирован: 21.12.2013

вот товарищ подкинул с другого форума,какое-то  объяснение из документации ,обрывки, близкие к моему удовлетворению

========================

Например, в документации на ATmega328 именно это и написано. Правда не одной фразой, а несколькими предложениями в разделе, описывающим интересуемый режим работы:

Цитата:
In phase and frequency correct PWM mode the counter is incremented until the counter value matches either the value in ICR1 (WGM13:0 = 8)
.......
By using ICR1, the OCR1A Register is free to be used for generating a PWM output on OC1A.

Т.е. регистром ICR1 задаётся частота, а регистром OCR1A скважность.

остались неясными    две последние строки расчёта.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

selevo, правильно двигаетесь. Но в книжке Евстифеева это более понятно изложено  разве нет?  Тыц. 298 страница

Logik
Offline
Зарегистрирован: 05.08.2014

andriano пишет:

wdrakula пишет:

Если известны общие принципы, как вообще бывают устроены таймеры, то найти конкретные моменты можно по даташиту.

Мне кажется, это излишне оптимистично. Я, например, знал, как работать с КР580ВИ53, но, чтобы освоить таймеры Атмеги, мне пришлось искать в И-нете статьи и читать их.

Ну общее представление о тех же таймерах до чтения даташитов полюбому лучше из более простых источников получить Когдато для "разобратся" я использовал только даташиты. Возможно, но сложно как следствие  - медленей чем почитать для начала пусть неполную и обзорную статью, но на понятном языке с цветными картинками. А потом уже лезть в даташит. Потому начал совмещать оба подхода. Так длилось долго, но потом даташиты испортились :( И теперрь приходится уже не перебирать харчами и искать хоть где нибудь актуальную инфу. Хороше хоть атмега пока по качеству документирования на приличном уровне.