Theo tôi, học theo cách này có hiệu quả nhất về thời gian cũng như kinh nghiệm thực tế.
Hiện tượng 'dội' của nút nhấn/công tắc thường được gọi trong tiếng Anh bằng từ bouncing, và kỹ thuật khắc phục được gọi là debouncing.
Để thực hiện bằng phần mềm, mỗi khi bạn vào ngắt do có tác động vào RB0, bạn dùng một đoạn chương trình để chờ một khoảng thời gian nào đó, sau đó kiểm tra lại trạng thái của chân RB0, nếu trạng thái lúc này là ổn định (nghĩa là sau hai lần đọc liên tiếp, cách nhau một khoảng thời gian nào đó, mà trạng thái là giống nhau) thì bạn có thể xem như nút nhấn/công tắc đã hết dội và có thể thực hiện các thao tác kế tiếp. Tất nhiên đây là một cách khá trực quan, nếu yêu cầu xử lý phức tạp hơn thì chúng ta sẽ cần những thuật toán hiệu quả hơn.
Đối với chân RA4, datasheet thường có nêu rõ từng chức năng khác nhau của chân. Rõ ràng trong datasheet có ghi RA4 khi là ngõ ra sẽ có kiểu OD (open drain-cực máng hở). Còn chức năng T0CKI là ngõ vào cho Timer 0, trong trường hợp bạn muốn dùng một nguồn clock ngoài làm clock cho Timer 0, có thể dùng để đếm các sự kiện bên ngoài.
Thân,
thay đổi nội dung bởi: namqn, 28-05-2006 lúc 08:29 PM.
|