Думаю MAZ имел ввиду не весь модуль CCP, а только режим PWM, при котором прерываний нет, т.к. не зачем прерываться: настроили, задали скважность и он молотит автономно.
Я сам обалдел. Да, только режим ШИМ. Тупо сбрасывал в прерываниях, флаг TMR2, разрешил прерывания по переполнению. Но потом нужно было ввести еще одно прерывание. И в отладчике начались странные вещи. Я уже, хотел написать, что и на отладчик бывает проруха. Экспериментировал. И все завелось, как только запретил прерывания от TMR2. Получилось, делал, двойную работу. В отладчике видно, что лри работе ШИМ, прерываний нет. Но ШИМ спокойно работает. Т.е. получается, что полностью автономен.
Вы, ребята, не путайте ИСПОЛЬЗОВАНИЕ и НАЛИЧИЕ прерываний. При работе CCP в режиме PWM прерывания от TMR2 есть (причём на них влияет постделитель, в отличие от частоты ШИМ). И кстати, их удобно использовать, при необходимости менять скважность.
MAZ пишет:
цитата:
Тупо сбрасывал в прерываниях, флаг TMR2
Поясните, плиз, с чего Вы взяли, что это необходимо? И что ещё делали, в обработчике, кроме сброса флага?
цитата:
что полностью автономен
Ну, вроде, как любой модуль, если запретить прерывание от него, будет молотить "автономно".
Ну, вроде, как любой модуль, если запретить прерывание от него, будет молотить "автономно".
` Dmitry Dubrovenko пишет:
цитата:
Вы, ребята, не путайте ИСПОЛЬЗОВАНИЕ и НАЛИЧИЕ прерываний.
Дмитрий, я по моему понятно, объяснил. Конечно, прерывания от TMR2 есть, но они скорей всего "внутренние" в этом режиме. Т.е. по вектору прерывания ничего нет. Загрузка различных значений коэф. заполнения идет постоянно, т.к. идет регулировка и изменения видны.
Dmitry Dubrovenko пишет:
цитата:
Поясните, плиз, с чего Вы взяли, что это необходимо? И что ещё делали, в обработчике, кроме сброса флага?
Я это не знал. Считал, что включил ШИМ, значит и TMR2. И соответственно надо разрешить от него прерывания и сбрасывать флаг прерываний. Но оказалось, это совершенно не нужно. Ставлю точку остановку в прерывании, ШИМ работает, автоматически меняет коэф. заполнения, при необходимости, а прерываний нет. Вот когда разрешил, они были и надо было сбрасывать флаг. Больше ничего не делал. Потом, когда в этом убедился, включил прерывание от TMR1.
Пост N: 1286
Зарегистрирован: 26.12.06
Откуда: Санкт-Ленинград
Рейтинг:
1
Отправлено: 13.10.10 22:51. Заголовок: MAZ пишет: я по мое..
MAZ пишет:
цитата:
я по моему понятно, объяснил
Вот теперь мне понятно, где Ваша ошибка (или Вы опять неправильно выражаетесь):
цитата:
Считал, что включил ШИМ, значит и TMR2. И соответственно надо разрешить от него прерывания и сбрасывать флаг прерываний
Совершенно верно, ШИМ без TMR2 работать не будет, но почему обязательно надо разрешать прерывания, когда включаешь модуль? Это - сугубо "дело вкуса". Да запретил прерывание, и пускай этот флаг поднимается сколько ему угодно. Можно ведь и вообще его (флаг) просто считывать в программе. Я так, например, проделывал с UART'ом, ибо нельзя было использовать второе прерывание (из-за особенностей использования первого).
цитата:
автоматически меняет коэф. заполнения, при необходимости, а прерываний нет
А вот тут как-раз можно использовать прерывание от TMR2 (писАл выше), что бы избежать ситуации, когда при загрузке коэффициента скважности в CCP, Вы один регистр уже поменяли, а второй не успели.
Отправлено: 16.02.12 22:34. Заголовок: Нет там не говорилос..
Нет там не говорилось, что все сам. Там говорилось про статью в Обмене. Справедливо было бы сделать ссылку на автора. Все таки год разбирался и переводил.
Все даты в формате GMT
3 час. Хитов сегодня: 2
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет