|
Fast PWM mode, получение чистого 0 или чистой 1 на выходе |
|
|
|
Dec 2 2012, 15:23
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Уважаемые коллеги!
Я тут встал в тупик, то ли заблудился в трех соснах, то ли просто туплю неподецки. Включаем режим Fast PWM для таймера AVR-ки, допустим, 8-битный. пишем в регистр OCR1A ноль - что будет на выходе OC1A? в даташите написано, что при сбросе устанавливается в 1, а при совпадении сброс происходит в следующем цикле счета, т.е. я так понимаю, чистого нуля на выходе получить нельзя? если я пишу 255 в регистр OCR1A - чистая единица на выходе получается, верно? т.е. получить коэффициент заполнения 0% невозможно в принципе? или я не прав?
осциллографа пока временно лишен, поэтому и вопрошаю... протеус показывает, что я прав, но можно ли ему верить? если на самом деле все именно так, как посоветуете побороть проблему? нужно именно нолик стабильный получать в режиме ШИМ.
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Dec 3 2012, 17:14
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
увы, не выходит каменный цветок  если делать OCR=255-PWM получается крайне неприятная вещь: было PWM=1, шли короткие иголки ШИМа, потом делаем PWM=0, в итоге отрабатывается один период ШИМа с единицей на выходе, а после этого устанавливается чистый 0. представьте себе работу регулятра в этом случае: уменьшали-уменьшали воздействие, компенсируя ошибку регулирования, и вот в момент, когда ошибка стала равна нулю, воздействие кратковременно становится 100%... само собой, регулятор болтает, как бакен в шторм... P.S. в отсутствие осциллографа моделирую в протеусе... в реальности это так или нет?!
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Dec 3 2012, 17:23
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(ARV @ Dec 3 2012, 19:14)  если делать OCR=255-PWM получается крайне неприятная вещь: было PWM=1, шли короткие иголки ШИМа, потом делаем PWM=0, в итоге отрабатывается один период ШИМа с единицей на выходе, а после этого устанавливается чистый 0. представьте себе работу регулятра в этом случае: уменьшали-уменьшали воздействие, компенсируя ошибку регулирования, и вот в момент, когда ошибка стала равна нулю, воздействие кратковременно становится 100%... само собой, регулятор болтает, как бакен в шторм... OCR1A - двух байтовый, поэтому может так: Код OCR=0x100-PWM; ? При PWM=0 OCR1A станет равен 0x100 и единицы не будет.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|