View Single Post
Old 11-01-2009, 05:16 PM   #7
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi quang_nhon84 View Post
anh Nam cho em hỏi, em muốn Pic xử lí là đọc tín hiệu analog dùng ADC 10bit về xét 4 khoảng,giả sử từ 0-115;116-240;241-895;895-1024 mỗi khoảng thực hiện 1 lệnh thì ta xử lí thuật toán thế nào cho chương trình ngắn nhất? nếu viết bằng C thì có vẻ dễ nhưng em quen dùng ASM nên chưa biết xử lí thế nào vì tập lệnh không có lệnh so sánh số BCD.
Kết quả biến đổi A/D là số nhị phân, không phải dạng BCD, do đó bạn có thể so sánh bình thường. Thuật toán xác định 4 khoảng tín hiệu 0 < x1 < x2 < x3 < x4 nên hiện thực như sau:

- Xét xem giá trị x có < x1 hay không, nếu đúng thì nó thuộc khoảng 0 < x < x1,
- Nếu so sánh trên cho kết quả sai, xét xem x có < x2 hay không, nếu đúng thì nó thuộc khoảng x1 <= x < x2,
- Nếu so sánh trên cho kết quả sai, xét xem x có < x3 hay không, nếu đúng thì nó thuộc khoảng x2 <= x < x3,
- Nếu so sánh trên cho kết quả sai, nó thuộc khoảng x3 <= x

Để so sánh các giá trị 10-bit, bạn tham khảo code mẫu tại piclist về so sánh các đại lượng 16-bit:
http://www.piclist.com/techref/micro...con.htm#16_bit

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn