Trích:
Nguyên văn bởi hopeman
mình có 1 băn khoăn
khi mình dùng hàm delay_ms() của CCS và xử dụng nhiều ngắt, sai số là rất lớn
theo mình hiểu bản chẩ hàm này là cho CPU điên cuồng tính toán, và hoàn toàn có thể bị ngắt bởi các ngắt khác để làm việc khác nên tạo ra sai lệch. mình đã thử nghiệm delay_ms(500) với chip 4431 và dùng timer ở tần số 20KHz , thực tế bị delay mất khoảng 3s.
ko biết mình hiểu có đúng ko???
|
Bản chất của Delay là thi hành lập lại nhiều lần câu lệnh rỗng với mục đích là "đốt thời gian" do mỗi lần CPU thực thi câu lệnh đó, vì vậy nó cũng tương tự như một vòng lặp đương nhiên sẽ bị tạm dừng khi có ngắt xảy ra
, khi sử dụng đồng thời delay và ngắt bạn chú ý đừng để nó xung đột với nhau kết quả chắc chắn là timer đảm bảo và delay thì không, bạn nên sử dụng nhiều ngắt và tính toán đặt mức ưu tiên hợp lý (hạn chế sử dụng delay thì sẽ đạt hiệu quả cao hơn).
Chúc vui
.
__________________
_____________________________
Tri nhân tri tự bất tri tâm_____________________________
_ _ _ _ _ _ _ _
Yêu mến tất cả anh em Picvietnam.com _ _ _ _ _ _ _ _
. . . . . . . . . . . . . . . .
Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . .