View Single Post
Old 04-01-2010, 06:11 PM   #5
nhanh0112
Đệ tử 4 túi
 
Tham gia ngày: May 2007
Bài gửi: 81
:
Smile

Trích:
Nguyên văn bởi meopic View Post
Thứ 2, ở đây mình đưa ra ý kiến dùng phương pháp lấy giá trị trung bình là mún các bác giúp mình hỉu rõ hơn cũng như bác nào có cao kiến j thì cho mình được học hỏi.
Đúng là việc lấy chia trung bình thì sẽ bớt nháy hơn (tui đã áp dụng để làm counter). Cộng tổng các lần lấy mẫu rồi số lần lấy mẫu: trungbinh=(a1+a2+...+an)/n
ví dụ dưới đây là lấy 5 mẫu:
Code:
        ketqua[k]=read_adc();
	k++;
	if(k>4)k=0;//lay 5 mau de chia trung binh
	aver=0;
	for(i=0;i<5;i++)
		aver+=ketqua[i];
	aver=aver/5;
             => dua aver ra tinh toan va hien thi
Với việc đọc liên tục của adc bạn luôn có 5 giá trị liên tiếp cuối cùng lưu trong ketqua[] (trừ 4 lần đầu tiên đọc thôi, nhưng khi hiển thị số sẽ tăng dần đến giá trị cần ). Bạn có thể tăng số lần lấy mẫu để chia trung bình để số nhảy chậm hơn nữa và chắc là sẽ chính xác hơn.
nhanh0112 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn