Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/14: Рейтинг темы: голосов - 14, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
1

FastPWM на tiny5/10 как то не так работает

02.12.2013, 23:45. Показов 2671. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
настроил FastPWM номер 14, когда счетчик считает до значения регистра ICR0 с выводом на PB0
там особо ничего сложного в настройке, но есть одно но
при любых значениях OCR0A все работает хорошо кроме случая когда там ноль
при нулу почему-то наблюдается короткий пик, хотя я ожидаю на выходе постоянный ноль

что не так?
это такой глюк tiny5/10 или там что-то еще надо настроить, чтобы не было пика?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.12.2013, 23:45
Ответы с готовыми решениями:

Что в коде ни так? while не работает так, как ожидаю
Написанный код, как я думаю, должен выдавать цифры от 0 до 1000, столбиком. Но выдает начиная от...

Include не работает так как хочется или как работает инклуд
Доброго времени суток. Имею структуру папок: basic/ libs/ /sumLib.php ...

FastPWM на atmega64a
Добрый день. Столкнулся с такой проблемой: Простенькая программа, вида: int main(void) { DDRB =...

SelText в textBox'e отчёта не работает или работает не так как в форме?
Пробовал всяко-разно выудить выделенный текст - не выходит. Пишет: "Введенное выражение содержит...

6
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
02.12.2013, 23:58 2
вот нашел это в даташите
The extreme values for the OCR0x Register represents special cases when generating a PWM waveform output in
the fast PWM mode. If the OCR0x is set equal to BOTTOM (0x0000) the output will be a narrow spike for each
TOP+1 timer clock cycle. Setting the OCR0x equal to TOP will result in a somstomt high or low output (depending
on the polarity of the output set by the COM0x1:0 bits.)
странно, как же включить режим при котором PWM = 0?
на других МК это делал как раз выставляя OCR0A/B в ноль
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
03.12.2013, 00:36 3
в общем не придумал ничего проще чем отключать вывод сюрасывая COM0A1/COM0A0 когда нужен ноль и снова выставлять, когда не нужен
0
Финский
03.12.2013, 00:40
  #4
0
0 / 0 / 0
Регистрация: 28.12.2012
Сообщений: 161
03.12.2013, 00:43 5
Цитата Сообщение от oxytt
странно, как же включить режим при котором PWM = 0?
Использовать режим Phase Correct PWM Mode.
0
0 / 0 / 0
Регистрация: 16.03.2013
Сообщений: 4,224
03.12.2013, 01:07 6
Цитата Сообщение от Финский
http://forum.iosyitistromyss.ru/viewtopys.php?p=51705#p51705
спасибо, там написано тоже, что я написал на одно сообщение раньше
Цитата Сообщение от stritsh
Использовать режим Phase Correct PWM Mode.
мне нужен именно FastPWM и именно с настраиваемой битностью
решение выше вполне работает, хотя для меня такое поведение МК кажется не логичным
0
0 / 0 / 0
Регистрация: 31.01.2013
Сообщений: 1,625
03.12.2013, 12:58 7
Да, есть такая особенность PWM. Обычно не мешает.
Если мешает, то можно аппаратно инвертировать выходной сигнал, а в программе инвертировать значение на вывод командой COM. Тогда этот глюк будет при выводе максимального значения, а ноль будет чистым.
0
03.12.2013, 12:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2013, 12:58
Помогаю со студенческими работами здесь

setprecision() не работает, или работает не так как нужно
cout << setw(5) << "X=" << setprecision(2) << X; cout << setw(20) << "X=" << setprecision(0)<<...

чем FastPWM отличается от СТС
Что то затупил, смотрю и не могу найти n- отличий. При быстом ШИМ и при сбросе при совпадении...

Tiny2313+UART+FastPWM 10-bit
Здраствуйте. Я посылаю в UART текст в виде: "st" цифры от 0 до 1023. в контроллере в прерывании по...

If работает как то не так
if (x + 1 || x - 1 == x1)cout << "("<<x<<"+1||"<<x<<"-1=="<<x1<<"): true"; else cout <<...

Не работает так как надоу у БД
Задача вывести все даные в другую форму, вместо даных виводит пустые поля. У всех работает у меня...

SetPixel работает как-то не так
Добрый день. Пишу такой код, для того, чтобы добавить на картинки размером 50х50 10 % "шума", для...

Foreach работает как то не так
Есть код: if(mysqli_num_rows($query) > 1){ foreach($query as $item){ $text = $item; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru