Cách chống chattering cho key

Mình chưa bao giờ giao tiếp với bàn phím cả nhưng còn việc chống nảy hay deal with chattering thì mình cũng làm vài lần rồi. Ở các đoạn code trên mình thấy các bạn đều sử dụng delay để chống chattering thực sự mà nói thì cách này không chính xác lắm trong mọi thời điểm. Mình đã có lần được nghe qua một người Nhật trong lúc training H8 micro đã nói về cách chống chattering dùng cho máy in đó là sử dụng biến đếm count chứ không dùng delay. Sau này khi sử dụng count thay vì dùng delay mình thấy cách của người Nhật đó thật mới là cách tốt. Các bạn hãy thử cách xây dựng một hàm đại loại như sau:

bit checkbutton ()
{
unsigned int i=0;
while (input==1)
{
i++;
if (i>=precount) {return(1);goto exit;}
else return(0);
}
i=0; return(0);
exit:{}
}

//precount là giá trị đặt trước giới hạn cho biến đếm count
//input là đầu vào. Nếu ấn nút thì là 1
//hàm checkbutton sẽ chỉ trả về giá trị 1 khi ấn nút thực sự.