|
Tài trợ cho PIC Vietnam |
RTOS và Thuật toán với PIC RTOS và Các thuật toán dùng cho PIC/dsPIC/PIC32 Mod: phamminhtuan |
|
Ðiều Chỉnh | Xếp Bài |
03-01-2014, 03:00 AM | #1 |
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 ạ ? |
|
|