Зарегистрирован: Вт сен 30, 2008 09:23:14 Сообщений: 209 Откуда: Краснодарский край
Рейтинг сообщения:0
Вы ножку 3-го ШИМ сделали ВЫХОДОМ ???? как написано в задаче 8 !
Конечно! Порт D установлен 10110000. В протеусе она просто синий. А PD4 PD5 активно моргают. Осцилографом все 2 сигнала видно. Только TimerCounter при измерении частоты показавает 970. Непонятно чего, Гц что ли.
Ок! я ща после обеда подготовлю код и выложу.
Открыта удобная площадка с выгодными ценами, поставляющая весь ассортимент продукции, производимой компанией MEAN WELL – от завоевавших популярность и известных на рынке изделий до новинок. MEAN WELL.Market предоставляет гарантийную и сервисную поддержку, удобный подбор продукции, оперативную доставку по России.
На сайте интернет-магазина посетители смогут найти обзоры, интересные статьи о применении, максимальный объем технических сведений.
Зарегистрирован: Вт сен 30, 2008 09:23:14 Сообщений: 209 Откуда: Краснодарский край
Рейтинг сообщения:0
Как иногда полезно когда тебя потыкают носом в нужное место. В жизни бы сам не понял что не нужно выбирать Fast PWM top FFh! Спасибо за полученные знания.
Немного не понял одно 0х69 это шестнатеричное число и его двоичная раскладка 01101001 а не 01000101-(69 десятичное). Это ошибка или я совсем запутался.
Теперь осталось понять регистры TCNT2 и OCR2 влияют на сигнал. Пробовал менять значения но ничего не меняется. Этим сигналом нельзя управлять?
Продукция MOSO предназначена в основном для индустриальных приложений, использует инновационные решения на основе более 200 собственных патентов для силовой электроники и соответствует международным стандартам. LED-драйверы MOSO применяются в системах наружного освещения разных отраслей, включая промышленность, сельское хозяйство, транспорт и железную дорогу. В ряде серий реализована возможность дистанционного контроля и программирования работы по заданному сценарию. Разберем решения MOSO
подробнее>>
Зарегистрирован: Пт сен 05, 2008 05:15:14 Сообщений: 16
Рейтинг сообщения:0
Для увеличения частоты, прейдётся увеличивать начальное значение счёта(при направлении счёта вверх (прибавляя)). И пропорционально и значение (уровень, момент смены) перехода выходного сигнала. При этом, укорачивая диапазон заполнение ШИМ[quote][/quote]
Можете показать на Си,на простом примере,например для меги16,как сделать?А то трудно врубиться.
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн сен 01, 2008 14:49:03 Сообщений: 151 Откуда: Казахстан
Рейтинг сообщения:0
Да, я бы тоже глянул кошак , не парься, невозможно так сделать (ну почти невозможно..). Для этого не увеличивают начальное значение, а уменьшают конечное.
"1" на PD7 в течении OCR2 - TСNТ2 (TСNТ2 загружается в прерывании)
период ШИМ 256 - TСNТ2 (TСNТ2 загружается в прерывании)
Значит ШИМ = 100%*(OCR2 - TСNТ2)/(256 - TСNТ2)
1. для ПЛАВНОГО изменения частоты ШИМ надо менять число загружаемое в прерывании в TСNТ2, для ГРУБОГО изменения -
менять коэф. деления частоты биты 0,1,2 в регистре TCCR2
2. для изменения величины ШИМ надо менять OCR2 (где угодно в поге) но учитывать изменение периода ШИМ от изменения начального TСNТ2 !
3. если OCR2 < TCCR2 то ШИМ-а нету.
В этом примере плавно меняется частота и величина ШИМ, а пауза
("0" на PD7) неизменна и составляет 256 - OCR2 = 6 тактов процессора
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн сен 01, 2008 14:49:03 Сообщений: 151 Откуда: Казахстан
Рейтинг сообщения:0
Да вы что, ребята???....... Ну нахрена нужен ШИМ аппаратный, если в КАЖДОМ цикле в него надо подгружать начальное значение TCNTn ?!!
А тем более, если не FastPWM ? Что грузить будете и когда?
Есть же для этого специальные режимы, у некоторых даже называние подсказывает открытым текстом: PWM, Phase and Frequency Correct !!! Если у вас в Си мастер не знает о таком режиме, это не значит, что его нету. Читайте даташит..
даже называние подсказывает открытым текстом: PWM, Phase and Frequency Correct !!! Если у вас в Си мастер не знает о таком режиме, это не значит, что его нету.
А на скриншотах мастера (выше чуток) ЗАКРЫТЫМ чтоль текстом ТОЖЕ САМОЕ написано ?
YurkaM писал(а):
читайте даташит
даташит на русском языке на стр. 2 в моей домашней страничке.
YurkaM писал(а):
Ну нахрена
Ого !
_________________ Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн сен 01, 2008 14:49:03 Сообщений: 151 Откуда: Казахстан
Рейтинг сообщения:0
ОК! На тот скриншот не обратил внимания.
Ну посмотрел. Там режим: Fase correct PWM top=FFh А я Вам говорю об Phase and Frequency Correct Вы не видите разницы??
Мне трудно ориентироваться в Си (не владею..), поэтому сужу именно по вашему словесному описанию. А из него следует, что в результате этот мастер сделал код, в котором для изменения частоты ШИМ каждый раз в прерывании грузится начальное значение в TCNTn. Я говорю, что это глупо, т.к. можно ОДИН раз загрузить конечное значение счёта для ШИМ и получить тот же результат.
ps Вот честное слово, этих Ваших разноцветныx строчек и на Вашем сайте хватает, мож хоть здесь без них...
ОК! На тот скриншот не обратил внимания. Мне трудно ориентироваться в Си (не владею..), поэтому судил именно по вашему словесному описанию.
Не маловажной частью является ПРИЦЕП в котором полный код программы приложен.
YurkaM писал(а):
А из него следует, что в результате этот мастер сделал код
Мастер выполняет то что ЗАКАЗЫВАЕТ юзверь !
YurkaM писал(а):
А из него следует, что в результате этот мастер сделал код, в котором для изменения частоты ШИМ каждый раз в прерывании грузится начальное значение в TCNTn.
НЕТ такого в описании ! что мастер сделал загрузку в прерывании !
Читайте внимательно ! Мастер сделал "Быстрый ШИМ" минимальной частоты для данного делителя тактовой частоты. Мастер не предлагал "плавного" изменения частоты и не делал.
А я уже написал в комментарии (так как выше был вопрос как менять частот ШИМ "плавно"), что для изменения частоты ШИМ "плавно" вам нужно в прерывании загружать значение в таймер.
Вы знаете другой способ "плавного" изменения частоты ШИМ на OC2 ?Приведите код.
И мастер конечно же оставил прерывание ПУСТЫМ !!!
А сделал он это прерыание потому что я (ЮЗВЕРЬ !) поставил ГАЛКУ - сделать прерывание от переполнения таймера.
МАСТЕР только точно исполнил задание ! вот и все.
Кстати Мастер любезно напомнил мне о том что ножку нужно сделать выходом, и когда я нажал "ОК" сам ее выходом и назначил.
_________________ Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
ОК! На тот скриншот не обратил внимания. Ну посмотрел. Там режим: Fase correct PWM top=FFh А я Вам говорю об Phase and Frequency Correct Вы не видите разницы ??
Ну бред то разной СИЛЫ бывает... это понятно ...
Может вы еще и в даташите ATmega16 такой режим покажете для таймер 2 ?
Похоже вы открыли еще одно полезное качества Мастеров начального кода программ - опускать с небес на землю мечтателей не читающих даташит.
_________________ Думайте сами, решайте сами ... а вот он-лайн перевод на корявый русский http://translate.ru
Карма: 1
Рейтинг сообщений: 3
Зарегистрирован: Пн сен 01, 2008 14:49:03 Сообщений: 151 Откуда: Казахстан
Рейтинг сообщения:0
tych писал(а):
Может вы еще и в даташите ATmega16 такой режим покажете для таймер 2 ?
О как! Сначала говорит мол, смотри там (на скриншоте) это написано! Когда ткнули носом, что там не ЭТО написано, быстренько перевёл стрелки и пошёл в наступление! Стратег!!
Ну согласен я, тут чуток лоханулся, в Меге16 верхнюю границу счёта можно менять только в таймере 1. А почему Вы упёрлись именно в АТмега16?. Топикстартер спрашивал о Мегах не конкретизируя, дальше кто-то ещё спрашивал перебирая разные МК...
tych писал(а):
опускать с небес на землю мечтателей не читающих даташит.
- промолчу, на провокации поддаваться не хочу. По Вашу душу и так в каждом форуме МОРЕ флуда.......
day177 писал(а):
СКАЖИТЕ ПОЖАЛУЙСТА, Я ПРЯМО ТАКИ УМОЛЯЮ ВАС - КАК ЭТО СДЕЛАТЬ???
Чтобы установить требуемую частоту ШИМ (в рамках возможного, естественно), достаточно записать нужное значение в регистр, который является конечным значением счета в данном режиме. Например, в ATtiny2313 для таймера0 в режимах FastPWM(режим5) или PWM, FaseCorrect(режим7) это регистр OCR0A.
Чувствую, что вопрос был с подъ..бкой, поэтому сразу отвечу. Естественно, чтобы менят частоту, придётся грузить новые значения в OCR0A! Но в моём примере (в отличие от тыча) это надо делать только по мере необходимости в изменении, а не в каждом цикле ШИМ.
Пример прилагается. На простеньком Tiny2313:
Вложения:
Комментарий к файлу: Регулирование частоты ШИМ изменением верхней границы счета таймера pwm_f.asm [4.37 KiB]
Скачиваний: 924
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения