View Single Post
Old 17-07-2007, 05:08 PM   #20
Mecha
Trưởng lão PIC bang
 
Mecha's Avatar
 
Tham gia ngày: Dec 2005
Bài gửi: 315
:
Trích:
Nguyên văn bởi RedRose View Post
Cảm ơn anh Nam, em cũng đã nghĩ như vậy.
Em chưa hiểu đoạn anh nói về cách "đọc giá trị tức thời của bộ đếm ngoài qua 4 đường I/O của PIC, các bit cao hơn sẽ nằm trong vi điều khiển" lắm

Em nghĩ đơn giản là dùng bộ đếm 4bit thì tốc độ xung sẽ giảm 16 lần, và xung đó chính là xung thể hiện ở bit cao nhất bộ đếm. Như vậy thì ta tiến hành đếm xung ở chân này của bộ đếm?
(vì vậy mà em mới hỏi về pha, em định cho cả 2 kênh A,B qua 2 bộ đếm để giảm tốc độ xung, sau đó giải mã như bình thường?)
- Trường hợp encoder chỉ phát xung trên một chân, hướng (chiều) của xung được quy định bởi 1 chân khác: Dùng bộ đếm nhị phân 4 bit, tốc độ xung sẽ được giảm xuống 4^2=16 lần. Khi đó việc đọc trực tiếp xung phát ra từ encoder sẽ chuyển sang đọc giá trị logic tại 4 cổng tín hiệu ra của bộ đếm nhị phân 4 bit (từ 2^0 đến 2^3). Vấn đề bây giờ là chốt giá trị logic tức thời trên 4 cổng này (giả sử chốt khi trạng thái 4 cổng là 1111). Có thể dùng 1 con AND 4 đầu vào, khi 4 cổng đều ở giá trị 1111 thì đầu ra của AND sẽ là 1 và bạn có thể dùng nó để tạo ngắt (chương trình ngắt cập nhập giá trị của bộ đếm xung thêm 16 xung). Vấn đề còn lại là phải chú ý đến chân đại diện cho chiều xung hay chiều quay của encoder. Trong chương trình ngắt sẽ phải đọc trạng thái của chân này và bộ đếm xung sẽ cộng thêm hay trừ đi 16 xung phụ thuộc vào trạng thái của chân này (thường là quay thuận thì cộng, quay ngược thì trừ). Tuy nhiên có một trường hợp khi bộ đếm nhị phân đang đọc xung thì chiều quay thay đổi, khi đó ta sẽ bị sai số một số xung nhất định.

- Trường hợp encoder phát xung trên hai kênh A và B: mình nghĩ là không dùng được giải pháp bộ đếm nhị phân ngoài được vì khi đó thông tin về độ lệch pha giữa A và B (để quyết định chiều quay của encoder) bị mất hay nói cách khác là không thể nhận biết được khi lập trình trên PIC.

Tôi nghĩ thông tin đã đủ, bạn làm mạch thử nghiệm và thông báo kết quả cho mọi người nhé.
__________________
Sống là động nhưng lòng luôn bất động,
Sống là thương nhưng lòng chẳng vấn vương,
Sống yên vui danh lợi vẫn coi thường,
Tâm bất biến giữa dòng đời vạn biến.


Chú ý: đề nghị các thành viên đọc luồng dưới đây trước khi post bài:
http://www.picvietnam.com/forum//showthread.php?t=1263
Mecha vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn