![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Đệ tử 5 túi
Tham gia ngày: Jan 2009
Bài gửi: 100
: |
Hiện tượng lạ với timer trong PIC16F887
Chào các bạn !
Mình đang làm 1 mạch điều khiển động cơ, có dùng encoder để đọc xung đưa vào, tuy nhiên mình chỉ dùng được 2/3 timer, không dùng được cả 3 timer. Cụ thể như sau : + Timer 0 : Dùng để tính toán thời gian đếm xung (cứ 100us thì ngắt 1 lần để tính tốc độ của động cơ) + Timer 1 : Dùng để đếm xung encoder + Timer 2 : Đã dùng trong module PWM Mình cấu hình như sau : Code:
SETUP_TIMER_1(T1_EXTERNAL|T1_DIV_BY_1); SETUP_TIMER_0(T0_INTERNAL|T0_DIV_1); enable_interrupts(int_timer0); enable_interrupts(global); Ngược lại, nếu mình cấu hình như sau : Code:
SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_1); SETUP_TIMER_0(T0_EXT_L_TO_H|T0_DIV_1); Còn nếu mình cấu hình như sau : Code:
SETUP_TIMER_1(T1_EXTERNAL|T1_DIV_BY_1); SETUP_TIMER_0(T0_EXT_L_TO_H|T0_DIV_1); Mình không hiểu tại sao lại như thế, mình dùng thạch anh nội trong PIC. Mong các bạn giúp đỡ. Cám ơn các bạn ! |
![]() |
![]() |
![]() |
#2 |
...Damned...
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
: |
Bạn quan sát như thế nào để biết các timer ko chạy???
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 5 túi
Tham gia ngày: Jan 2009
Bài gửi: 100
: |
Mình cho hiển thị giá trị của timer lên PC, thấy 1 timer tăng dần giá trị, còn 1 timer thì vẫn đứng im ở 0. Chứng tỏ là 1 timer chạy,1 timer ko chạy.
Mình nghĩ 3 timer này hoạt động độc lập với nhau chứ nhỉ, sao lại có hiện tượng lạ vậy. Bạn nào biết giúp mình với nhé, cảm ơn các bạn nhiều ! |
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|