View Single Post
Old 03-01-2014, 03:00 AM   #1
mrdang91
Nhập môn đệ tử
 
Tham gia ngày: Jan 2014
Bài gửi: 1
:
Hỏi về compare mode của PWM

Em có bài tập lập trình điều khiển động cơ servo, yêu cầu sử dụng compare mode của CCP trong pic18f97j11. Khi điều chỉnh giá trị của ADC thì động cơ cũng quay theo một góc tương ứng.
Em gặp vấn đề là khi mỗi khi high interrupt em reset timer1 và cho CCP1H/L giá trị tương ứng đọc từ ADC theo code sau thì kết quả bình thường:

void InterruptHandlerHigh (){
T1CONbits.TMR1ON=0; //zastavit timer1
TMR1H=0;
TMR1L=0; //reset timer1
if(PORTCbits.RC2){
CCPR1L=event_time;
CCPR1H=event_time>>8;
}else{
CCPR1L=period-event_time;
CCPR1H=(period-event_time)>>8;
}
T1CONbits.TMR1ON=1;
PIR1bits.CCP1IF=0;

}

Tuy nhiên ông thầy của em ông ý không cho làm vậy mà bắt phải để timer1 chạy liên tục và phải điều khiển giá trị của CCP1H/L làm sao đó cho nó vẫn ngắt được bình thường.

Liệu có bác nào có thể giúp em được không ạ ?
mrdang91 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn