реклама на сайте
подробности

 
 
> ШИМ-модуль, Что неверно?
ogk
сообщение Dec 15 2007, 09:45
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 46
Регистрация: 4-02-07
Пользователь №: 25 035



Подскажите, пожалуйста, что неверно в программе: почему у меня не генерируется последовательность 2 импульсов 10% скважность и 20%, а какой-то хаос. Если убрать в программе генерацию второго импульса, то все ОК-генерируется только один импульс скважностью 10%, период расчетный получается и скважность импульса.
list p=16f877
#include <P16F877.INC>
;fosc=20MHz, fPWM=78,125kHz;
org 0
clrf INTCON
clrf CCP1CON
clrf TMR2
;---------------------;
MOVLW .63
bsf STATUS, 5
MOVWF PR2;уст.периода ШИМ;
bcf STATUS, 5
;---------------------;
L movlw b'00000110'
movwf CCPR1L;длит.импульса;
bcf CCP1CON, 5
bsf CCP1CON, 4

;---------------------;
bsf STATUS, 5
bcf TRISC, 2;настр.ССР на выход;
bcf STATUS, 5
;---------------------;
clrf T2CON
bcf T2CON, 0
bcf T2CON, 1;коэф.предделит.=1;
bsf T2CON, 2;вкл.TMR2;
;---------------------;
bsf CCP1CON, 2
bsf CCP1CON, 3;вкл.ШИМ-режима;
;---------------------;
movlw b'00001100'
movwf CCPR1L
bsf CCP1CON, 5
bsf CCP1CON, 4;длит.2имп.скважн.20%;
;--------------------;
clrf T2CON
bcf T2CON, 0
bcf T2CON, 1
bsf T2CON, 2
;-------------------;
bsf CCP1CON, 2
bsf CCP1CON, 3
;-------------------;
goto L
END
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
evc
сообщение Dec 15 2007, 12:03
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266



Цитата(ogk @ Dec 15 2007, 12:45) *
Подскажите, пожалуйста, что неверно в программе...


Все. (извините, но) Вам нужно внимательнее ознакомиться с замечаниями по применению (aplication notes) майкрочипа. Программу расположите не с нулевого адреса, а (скажем) с 20-того. На адрес 0х04 находится вектор прерывания процессора. Даже и если прерываниями не пользуетесь, оставьте этого адреса свободным! По инициализации PWM модуля посмотрите здесь, стр. 14-14. Чтобы сделать один импульс скважности 10%, а второй - 20%, нужно дождаться вырабатыванием первого, а затем менять CCP1CON!

П.П. Выражения типа
Цитата(ogk @ Dec 15 2007, 12:45) *
clrf T2CON
bcf T2CON, 0
bcf T2CON, 1
bsf T2CON, 2

лишние, т.к. T2CON вы обнулили - все его биты нули. Следует просто выставит нужные в "1".
Просто предлагаю...


--------------------
УЭР
Go to the top of the page
 
+Quote Post
ogk
сообщение Dec 15 2007, 12:40
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 46
Регистрация: 4-02-07
Пользователь №: 25 035



Цитата(evc @ Dec 15 2007, 16:03) *
Чтобы сделать один импульс скважности 10%, а второй - 20%, нужно дождаться вырабатыванием первого, а затем менять CCP1CON!

Извините, но как это сделать?
Go to the top of the page
 
+Quote Post
evc
сообщение Dec 15 2007, 15:05
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266



Отслеживайте флаг TMR2IF. Он будет выставлятся по оканчанию каждого периода PWM (если, конечно, TC2KPS1:TC2KPS0 = 0).


--------------------
УЭР
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 17:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01406 секунд с 7
ELECTRONIX ©2004-2016