Trích:
Nguyên văn bởi quang_nhon84
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,