PWM, регистры, таймеры

Rinarizu
Offline
Зарегистрирован: 21.05.2020


void pwm25kHzBegin() {
  TCCR2A = 0;                                                
  TCCR2B = 0;                                                
  TIMSK2 = 0;                                                
  TIFR2 = 0;                                                 
  TCCR2A |= (1 << COM2B1) | (1 << WGM21) | (1 << WGM20);     
  TCCR2B |= (1 << WGM22) | (1 << CS21);                     
  OCR2A = 79;                                                
  OCR2B = 0;
}

void pwmDuty(byte ocrb) {
  OCR2B = ocrb;                             
}

Нужно было  сделать управление 4pin вентилятором, наткнулся на код выше. Пытаюсь понять что это за чертовщина и как она работает

Что удалось понять:

1) Сначала регистры таймера 2 (TCCR2A и TCCR2B) обнуляются.

2) Записью единицы в биты WGM20, WGM21,WGM22 включается режим FAST PWM.

3) Записью единицы в бит COM2B1 включается Non-inverted режим

4) Записью единицы в бит CS21 включается деление частоты контроллера на 8

5) Что такое OCR2A не очень ясно, но его значение расчитывается как Частота/(делитель частоты*нужная частота PWM)-1. Получаем число 79

 

Вопросы:

1) Что значит режим FAST PWM? И что значит TOP OCRA. Что такое Non-inverted режим?

2) Что такое TIMSK2 и TIFR2, какую роль играют в коде

3) Что такое OCR2B и какую роль играет (я понимаю что он меняет коэффициент заполнения, но как?)

 

b707
Offline
Зарегистрирован: 26.05.2017

ответы на все эти вопросы есть в разделе "Таймеры" даташита на используемый вами МК, например атмега328

Rinarizu
Offline
Зарегистрирован: 21.05.2020

b707

Спасибо за помощь. Ведь ради этого и существуют форумы. Что бы человека задавшего конкретный вопрос отправляли читать даташит на 448 страниц

b707
Offline
Зарегистрирован: 26.05.2017

Rinarizu пишет:

b707

Спасибо за помощь. Ведь ради этого и существуют форумы. Что бы человека задавшего конкретный вопрос отправляли читать даташит на 448 страниц

не хотите даташит - почитайте многочисленные пособия на тему "таймеры в ардуино". Но даташит лучше.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

А ты предлагаешь переписывать сюда даташит? 

Цитата:

читать даташит на 448 страниц

Читай не всё подряд, а только то, что интересует. Про раздел с таймерами уже сказали. В даташите есть оглавление, а ещё можно пользоваться поиском по даташиту. Вбиваешь в поиск название нужного регистра и читаешь описание.

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

В разделе про таймеры меньше страниц. И форумы, безусловно, существуют, для того, столбы переводить с английского даташиты! ;))))

nik182
Offline
Зарегистрирован: 04.05.2015

Т.е. переписать две странички по русски из 448 страничного манула в очередной 221 раз ? Для этого форум? Такие вопросы задавали неоднократно. И вместо того, что бы найти ответ, Вы требуете ещё раз писать то же самое ещё раз? Зайдите в платный раздел. Там за денежку переведут и объяснят. 

Rinarizu
Offline
Зарегистрирован: 21.05.2020

Вопрос по ардуино - иди читай даташит на микруху

Вопрос по проге - иди читай книги Дейтелов

Вопрос по электронике - иди читай Хоровица

 

Зато в соседней теме обсуждают МОЩНОСТЬ кнопки. Форумы как были ебнутые так и остались

b707
Offline
Зарегистрирован: 26.05.2017

Rinarizu пишет:

Форумы как были ебнутые так и остались

так кто тебя сюда звал? :)

Rinarizu
Offline
Зарегистрирован: 21.05.2020

nik182 пишет:

Т.е. переписать две странички по русски из 448 страничного манула в очередной 221 раз ? Для этого форум? Такие вопросы задавали неоднократно. И вместо того, что бы найти ответ, Вы требуете ещё раз писать то же самое ещё раз? Зайдите в платный раздел. Там за денежку переведут и объяснят. 

А дайте сразу список вопросов которые МОЖНО задать в разделе для НОВИЧКОВ что бы не оскорбить ВАС своей глупостью

b707
Offline
Зарегистрирован: 26.05.2017

Rinarizu пишет:

А дайте сразу список вопросов которые МОЖНО задать в разделе для НОВИЧКОВ что бы не оскорбить ВАС своей глупостью

а вот это правильный вопрос. Читай прикрепленную тему

http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/pesochnitsa-dlya-vsekh-novichkov

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

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

Rinarizu
Offline
Зарегистрирован: 21.05.2020

DetSimen пишет:

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

Вывод - форумы нужны для поддержки ЧСВ отдельный людей, а не для передачи знаний и помощи.

 

b707
Offline
Зарегистрирован: 26.05.2017

Rinarizu пишет:

Вывод - форумы нужны для поддержки ЧСВ отдельный людей, а не для передачи знаний и помощи.

 

уважаемый - вы правила форума, на которые я вам дал ссылку - прочитали? - похоже нет. А то бы поняли. что учить старожилов, зачем нужен форум - нарушение.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Вывод непраильный. 

Rinarizu
Offline
Зарегистрирован: 21.05.2020

b707 пишет:

Rinarizu пишет:

Вывод - форумы нужны для поддержки ЧСВ отдельный людей, а не для передачи знаний и помощи.

 

уважаемый - вы правила форума, на которые я вам дал ссылку - прочитали? - похоже нет. А то бы поняли. что учить старожилов, зачем нужен форум - нарушение.

Да, прочитал. Типичные правила российских говнофорумов - кто сидит тут с рождения форума тот царь и бог, а новичок - говно на палке, не должен вонять и отсвечивать.

Забаньте меня тут навечно и аккаунт сотрите

sadman41
Offline
Зарегистрирован: 19.10.2016

Rinarizu пишет:

1) Что значит режим FAST PWM? И что значит TOP OCRA. Что такое Non-inverted режим?

FAST режим работы PWM - счётчик плюсует до TOP, обнуляется и заново. TOP хранится в OCRnA

Rinarizu пишет:

2) Что такое TIMSK2 и TIFR2, какую роль играют в коде

Разрешают вызывать обработчики прерывания, связанные со счётчиком.

Rinarizu пишет:

3) Что такое OCR2B и какую роль играет (я понимаю что он меняет коэффициент заполнения, но как?)

При достижении счётчиком значения OCR2B, связанная со счётчиком нога перекидывается ТУДА, а при TOP - обратно. В inverted режиме - перекидывается наоборот.

Rinarizu
Offline
Зарегистрирован: 21.05.2020

sadman41

Вам большое спасибо.

Но TIMSK2 и TIFR2 в нулях. Значит все обработчики отключены?

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

sadman41 пишет:

FAST режим работы PWM

??? Вот это что сейчас было?! ;))))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Чота ты добрый седня. :-)

sadman41
Offline
Зарегистрирован: 19.10.2016

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

b707
Offline
Зарегистрирован: 26.05.2017

Rinarizu пишет:

Но TIMSK2 и TIFR2 в нулях. Значит все обработчики отключены?

а где в этом коде обработчики?

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

sadman41 пишет:

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

То есть ты, типа "в белой польте", а мы, соответственно - "члены с говнофорума"? Так получаиццо? ;))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

wdrakula пишет:

sadman41 пишет:

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

То есть ты, типа "в белой польте", а мы, соответственно - "члены с говнофорума"? Так получаиццо? ;))

Именна так. 

sadman41
Offline
Зарегистрирован: 19.10.2016

wdrakula пишет:

sadman41 пишет:

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

То есть ты, типа "в белой польте", а мы, соответственно - "члены с говнофорума"? Так получаиццо? ;))

По картинке - так выходит :( 

В другой теме я буду с говнофорума, а вы в польтах. Думаю, что это уравняет нас в говнистости.

Rinarizu
Offline
Зарегистрирован: 21.05.2020

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

Но с таким отношением к людям, ну вас в зад. Читайте гугол, как говорится

sadman41
Offline
Зарегистрирован: 19.10.2016

Rinarizu пишет:

Но с таким отношением к людям, ну вас в зад. Читайте гугол, как говорится

Да ладно, это коронавирус на них повлиял ))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Rinarizu пишет:

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

Но с таким отношением к людям, ну вас в зад. Читайте гугол, как говорится

 Был бы ты аппараччиком, не писАл бы про таймеры здесь, сделал бы все на 2х микрах и все. 

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

Rinarizu пишет:

Но с таким отношением к людям, ну вас в зад.

Не, ну так-то мы людей любим!

Новичок, ежель в подливе, не хужее глухаря!  (не (с), но близко)

Но сення повар пропал, а в всырую, да без запивки... сам понимаешь!

b707
Offline
Зарегистрирован: 26.05.2017

Rinarizu пишет:

Но с таким отношением к людям, ну вас в зад. Читайте гугол, как говорится

А что такого оскорбительного в чтении гугла, интересно? Он для того и создан. чтоб не отвечать по тридцать раз на одни и те же вопросы.

Rinarizu
Offline
Зарегистрирован: 21.05.2020

DetSimen пишет:

Rinarizu пишет:

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

Но с таким отношением к людям, ну вас в зад. Читайте гугол, как говорится

 Был бы ты аппараччиком, не писАл бы про таймеры здесь, сделал бы все на 2х микрах и все. 

Мог без проблем, на 555 таймере с парой деталей тоже самое бы вышло.

Но надо еще было сделать счетчик оборотов  и вывод нужный цифирей на экран (сделал).

Вопрос был только по паре непонятных моментов

 

Цитата:
А что такого оскорбительного в чтении гугла, интересно?

ничего. Только если выкинуть даташиты - то откуда по твоему вся остальная информация там? Потому что люди решив проблему делились знаниями с другими. (ну кроме фирменного "Всем спасибо, проблему решил" и сваливанием в туман).

 

За грубость со своей стороны тут прошу прощения.

Насчет бана- не шутил

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Бывает, чо. :-)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Rinarizu пишет:

Вопрос по ардуино - иди читай даташит на микруху

Ваш Вопрос не по ардуино. В ардуино нет никаких таймеров, регистров и прочего. Там есть delay и millis. А если Вам приспичило использовать микросхему - читайте даташит.

А что Вы собственно предлагаете? Даже если я специально для Вас перепишу сюда даташит - Вам всё равно придётся его читать :(

UB3AFB
UB3AFB аватар
Offline
Зарегистрирован: 25.01.2017

А вот интересно. если бы прикрепить сюда, на форум, даташит на, к примеру, 328 атмегу. На русском.

Отпали бы такие вопросы, или их стало бы намного больше?

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

UB3AFB пишет:

А вот интересно. если бы прикрепить сюда, на форум, даташит на, к примеру, 328 атмегу. На русском.

Отпали бы такие вопросы, или их стало бы намного больше?

Вот ссылки. Ну для примера.

http://we.easyelectronics.ru/AVR/dokumentaciya-po-avr-mikrokontrolleram-...

Ничего не изменится. ;)))

UB3AFB
UB3AFB аватар
Offline
Зарегистрирован: 25.01.2017

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