Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 27.03.2014, 19:01  
mikesmith
Администратор
 
Аватар для mikesmith
 
Регистрация: 10.05.2003
Сообщений: 1,739
Сказал спасибо: 497
Сказали Спасибо 2,686 раз(а) в 595 сообщении(ях)
mikesmith на пути к лучшему
По умолчанию Увеличить частоту ШИМ'а Arduino

НЕ секрет, что встроенная функция analogWrite - организует на ножке широтноимпульсную модуляцию с частотой около 480-490Гц (при штатных 16Мгц). Как увеличить частоту ШИМа до 4-5 кГц?
Реклама:
__________________
C уважением, Михаил
Ищите даташиты на KAZUS.RU: http://kazus.ru/datasheets/index.html
mikesmith вне форума  
Непрочитано 27.03.2014, 19:10  
mikesmith
Администратор
 
Аватар для mikesmith
 
Регистрация: 10.05.2003
Сообщений: 1,739
Сказал спасибо: 497
Сказали Спасибо 2,686 раз(а) в 595 сообщении(ях)
mikesmith на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Решение нашел на одном забугорном сайте, делюсь с вами:

Частота ШИМ'а на ногах 5 и 6:

Код:
Константа   Делитель          Частота(Гц)
   0x01             1              	  62500
   0x02             8                  7812.5
   0x03             64	        976.5625
   0x04            256            244.140625
   0x05	    1024	     61.03515625

В Setup пишем строчку: TCCR0B = TCCR0B & 0b11111000 | ‹Константа›;

, где ‹Константа› - значение из таблицы без угловых скобок.


Частота ШИМ'а на ногах 9 и 10:

Код:
Константа   Делитель          Частота(Гц)
   0x01	      1              	  31250
   0x02	      8                  3906.25
   0x03	      64	        488.28125
   0x04            256            122.0703125
   0x05	    1024	     30.517578125

В Setup пишем строчку: TCCR1B = TCCR1B & 0b11111000 | ‹Константа›;


Частота ШИМ'а на ногах 11 и 3:

Код:
Константа   Делитель          Частота(Гц)
   0x01	      1              	  31250
   0x02	      8                  3906.25
   0x03	      32	         976.5625
   0x04             64               488.28125
   0x05	     128	        244.140625
   0x06            256              122.0703125
   0x07	    1024	       30.517578125

В Setup пишем строчку: TCCR2B = TCCR2B & 0b11111000 | ‹Константа›;


Все тайминги и частоты приведены для штатной частоты 16Мгц микроконтроллера ATMEGA328


Т.е. я получил частоту ШИМ'а на 9, 10, 11 и 3 ногах около 4кГц путем добавления в секцию инциализации двух строк:

Код:
void setup()
{ 
TCCR1B = TCCR1B & 0b11111000 | 0x02;
TCCR2B = TCCR2B & 0b11111000 | 0x02;
...
...
Пользуйтесь на здоровье, если пригодится. А ваще, Ардуина - зло))
__________________
C уважением, Михаил
Ищите даташиты на KAZUS.RU: http://kazus.ru/datasheets/index.html
mikesmith вне форума  
Эти 3 пользователя(ей) сказали Спасибо mikesmith за это сообщение:
Alex9797 (28.03.2014), Evg_55 (13.04.2015), tele_puz (28.03.2014)
Непрочитано 27.03.2014, 23:22  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от mikesmith Посмотреть сообщение
Пользуйтесь на здоровье, если пригодится. А ваще, Ардуина - зло))
Таки да. С ужасом думаю, что было бы, если бы не произошло:
Цитата:
Решение нашел на одном забугорном сайте
Потеряли бы еще одного "программиста". А может и не одного. А может и к лучшему...
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Сказали "Спасибо" ut1wpr
ForcePoint (07.03.2017)
Непрочитано 27.03.2014, 23:46  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Лично я вообще не понимаю, как оно работает.
Easyrider83 вне форума  
Непрочитано 28.03.2014, 00:27  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от Easyrider83 Посмотреть сообщение
Лично я вообще не понимаю, как оно работает.
Тихо-тихо, почти бесшумно.
Базовые функции написаны на С++ и надежно спрятаны от криворуких стаАртеров, дабы не навредили. Функции и соглашения по их вызовам сведены в некий могучий хелп, сам по себе затрудняющий восприятие и понимание того, как ОНО работает. Типа "а нафига вам это знать". Вот вам "analog read()" - и рИдайте на здоровье. А то, что за этим стоит инициализация АЦП, настройка порта, выбор опоры - ну зачем вам это? Ройтесь себе на здоровье в инете, ищите нужные вам .ino Одним словом - вы дебил и не лезьте туда, где вам не место! А если вы такой умный - нафига вам эта Дуринда, пишите свое и с нуля
Впрочем, каждому свое...
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Эти 7 пользователя(ей) сказали Спасибо ut1wpr за это сообщение:
-vitalik- (23.12.2015), ArtemKolesnikov (23.04.2017), b_raven (10.03.2017), Easyrider83 (28.03.2014), ForcePoint (07.03.2017), krug_vv (08.03.2017), mikesmith (15.07.2018)
Непрочитано 28.03.2014, 08:18  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Вообще-то Ардуино позволяет делать Сишные и даже (о, ужас!) ассемблерные вставки. Которые легко сделать, почитав даташит на контроллер. Как во втором посте - производится прямая запись в регистры контроллера. Никто не запрещает точно так же модифицировать регистры АЦП, например
niXto вне форума  
Эти 4 пользователя(ей) сказали Спасибо niXto за это сообщение:
-vitalik- (06.08.2018), majorka65 (08.03.2017), mike-y-k (09.03.2017), worke (23.12.2015)
Непрочитано 28.03.2014, 08:51  
makakus
Почётный гражданин KAZUS.RU
 
Регистрация: 08.10.2007
Сообщений: 2,760
Сказал спасибо: 1,106
Сказали Спасибо 1,037 раз(а) в 569 сообщении(ях)
makakus на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

То есть возможности таймера 4МГц - 12Гц добрые ардуинщики свели к 480-490Гц? Здорово

Сообщение от ut1wpr Посмотреть сообщение
Функции и соглашения по их вызовам сведены в некий могучий хелп, сам по себе затрудняющий восприятие и понимание того, как ОНО работает. Типа "а нафига вам это знать". Вот вам "analog read()" - и рИдайте на здоровье.
В своё время Дейкстра написал "человека, программирующего на Бейсике, научить программированию невозможно"


Сообщение от niXto Посмотреть сообщение
роизводится прямая запись в регистры контроллера. Никто не запрещает точно так же модифицировать регистры АЦП, например
Никто. Идеология запрещает. Modus vivendi, как говорится. Невозможно в современном городе спилить дерево, нарубить из него дров, зарезать барана и на костре приготовить много вкусного. То есть и деревья там пилятся регулярно, и баранина есть но - не так. Не ассемблер.
makakus вне форума  
Сказали "Спасибо" makakus
ArtemKolesnikov (23.04.2017)
Непрочитано 28.03.2014, 08:52  
tele_puz
Прописка
 
Аватар для tele_puz
 
Регистрация: 13.03.2007
Сообщений: 135
Сказал спасибо: 7
Сказали Спасибо 37 раз(а) в 22 сообщении(ях)
tele_puz на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Спасибо! Как раз это нужно было.
Вообще то Ардуино - не зло, а отличная платформа! И все библиотеки не "спрятаны", а можешь их корежить, как захочется.
Я, кстати, сам правил библиотеку енкодера, там ошибка была, приводящая к бесконечному ожиданию.
tele_puz вне форума  
Непрочитано 28.03.2014, 12:09  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от wostrman Посмотреть сообщение
А Вы вообще-то ХАМ, «почетный» гражданин Казуса!!!
Учитывая, что Виктор - чемпион Украины по пятиборью, не советую развивать эту тему.
Easyrider83 вне форума  
Непрочитано 28.03.2014, 18:52  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Увеличить частоту ШИМ'а Arduino

Сообщение от wostrman Посмотреть сообщение
А Вы вообще-то ХАМ, «почетный» гражданин Казуса!!!
Никогда и нигде я не переходил на личности. Таким образом строятся фразы во многих литературных произведениях. Лично вас у меня не было даже и мысли задевать. Однако, в любом случае приношу извинения. Не все дружны с литературой. Или просто порядком подзабыли, отсюда и такие казусы.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как прошивать Arduino mini nikola-7 Песочница (вопросы новичков) 5 10.03.2014 14:15
Проблема с Arduino Motor Shield domka Песочница (вопросы новичков) 6 29.07.2013 11:56
Алгоритм программного шима для светодиодов whoim AVR 20 30.06.2013 18:00
Из ШИМа - аналог. vo1 Микроконтроллеры, АЦП, память и т.д 17 24.12.2009 14:54


Часовой пояс GMT +4, время: 03:12.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot