PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > RTOS và Thuật toán với PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

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
Prev Previous Post   Next Post Next
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
 

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 02:58 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam