Пост N: 309
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 22.10.07 17:04. Заголовок: ШИМ в PIC18F252
Ребята! Что-то не могу въехать в работу этого узла (что-то съел, или действительно пора в отпуск...). Правильно ли я понял, что меняя коэффициент деления постделителя TMR2 (1:1, 1:2, 1:3 - 1:16) получаем разную длительность импульса Ти, соответственно разную скважность? Для получения длительности Ти равному длительности периода (Тп) этот КД должен быть равен 1:1?
Пост N: 106
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
2
Отправлено: 22.10.07 19:35. Заголовок: Re:
Выходной делитель не влияет на Tп и Ти, так как он не включен во внутреннее кольцо обратной связи модуля ССР, работающего в режиме ШИМ. С его помощью можно только воздействовать на флаг TMR2IF. Это воздействие заключается в периодическом поднятии флага TMR2IF через интервалы времени кратные (зависит от выбранного Кдел.) периоду ШИМ-сигнала. Это позволяет определить моменты начала "загрузки", в CCPR1L/CCP1CON,5,4, числовых значений "новых" длительностей импульсов (флаг TMR2IF поднимается в самом начале "нового" периода ШИМ-сигнала. Тогда и нужно копировать, а не абы как). Если нужно менять длительность каждого импульса (а не через 2 … 16 импульсов), то нужно выставить Кдел. выходного делителя = 1. В "Практикуме…" это подробно расписано ("плавающая" задержка под флаг TMR2IF), просто Вы наверное еще не дочитали до этого места. Кроме того, по факту поднятия флага TMR2IF можно прерваться (если требуется) или сделать еще какие-то дела (тут уж кто во что горазд).
Пост N: 310
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 22.10.07 20:42. Заголовок: Re:
Evgeny Korabelnikov пишет:
цитата:
Если нужно менять длительность каждого импульса (а не через 2 … 16 импульсов), то нужно выставить Кдел. выходного делителя = 1.
Т.е. чтобы получить "пилу" Кдел. постделителя должен быть равен 1:1, значение в регистрах CCPR1L/CCP1CON,5,4 должно меняться от 1 до 624. В регистр PR2 записать число .155. А если многоступенчатую(каждая ступенька будет состоять из кол-ва импульсов, которые пройдут в зависимости от Кдел постделителя), то меняем Кдел. постделителя? Разумеется, на выходе ШИМ RC цепочка...
Evgeny Korabelnikov пишет:
цитата:
...наверное еще не дочитали...
Есть такой грех. Отвлёкся на другую задачу. Спасибо!
Пост N: 418
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
1
Отправлено: 22.10.07 21:26. Заголовок: Re:
Evgeny Korabelnikov пишет:
цитата:
по факту поднятия флага TMR2IF
Каюсь, тоже ещё не дочитал. Правильно ли я понимаю, что помимо данного флага, при работе ШИМ, поднимается ещё и флаг "окончания импульса ШИМа" (не помню, как называется)?
Пост N: 107
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
2
Отправлено: 22.10.07 22:21. Заголовок: Re:
Вы наверное имеете ввиду флаг прерывания от модуля CCP с названием CCP1IF. Этот флаг активен только в режимах захвата и сравнения. В режиме ШИМ он не работает (см. даташит, регистр PIR1). Так что от флага TMR2IF никак не отвертишься.
Пост N: 108
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
2
Отправлено: 22.10.07 23:10. Заголовок: Re:
Чтобы получить приращение длительности импульса в каждом периоде, нужно выставить Кдел. выходного делителя = 1, и в простейшем случае, организовать инкремент (декремент) CCPR1L/CCP1CON,5,4 с закольцовкой всего этого "безобразия" через полный цикл программы. При этом, с учетом работы по кольцу, получится устройство, вырабатывающее импульсную последовательность, в которой изменение длительности импульсов происходит по закону "пилы" (по линейному закону). Можно выставить и больший Кдел. выходного делителя. В этом случае, период пилы увеличится в число раз равное Кдел. выходного делителя. Это, кстати, достаточно удобно (в смысле всяческих экспериментов). Сказанное выше относится к тому случаю, когда время отработки полного цикла программы (без учета "плавающей" задержки, работающей с флагом TMR2IF) меньше времени периода ШИМ-сигнала. В противном случае, период "пилы" увеличится за счет того, что, не смотря на Кдел = 1, приращение длительности импульса будет происходить не в каждом периоде ШИМ-сигнала, а допустим, через 2, 3 и т.д. периода (зависит от "массивности" полного цикла программы). Детали этого дела достаточно подробно "расписаны" в "Практикуме…", в подразделе посвященном модулю АЦП.
Пост N: 1395
Зарегистрирован: 06.05.07
Откуда: Россия, Липецк
Рейтинг:
4
Отправлено: 21.10.09 21:20. Заголовок: Если канал ввода/выв..
Если канал ввода/вывода настроен на выход, то захват может происходить командой из программы.
Речь идет о программном формировании (например, bcf/bsf) ранее назначенного активного перепада. Это свидетельствует о том, что при работе RB3 "на выход", вход предделителя (см. рис.10-1), от этого вывода, не отключается (то есть, при работе "на выход", он остается подключеным к соответствующей защёлке порта). Естественно, что эта возможность обеспечивается только при включенном модуле CCP, работающем в режиме захвата.
Все даты в формате GMT
3 час. Хитов сегодня: 8
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет