Trích:
Nguyên văn bởi spirit
Mình xem trong datasheet thì thấy như sau:
OPTION_REG REGISTER (ADDRESS 81h, 181h)
Bit6: INTEDG : Interrupt Edge Select bit
1 = Interrupt on rising edge of RB0/INT pin
0 = Interrupt on falling edge of RB0/INT pin
Vậy thì có bit INTEDG chọn cạnh ngắt lên hay xuống mà Newuser ?
Mình cũng đã xem apnote AN552:Implementing Wake-up on Key Stroke của Microchip rồi cũng thấy không nói về bit xác định sườn ngắt chân RB4...RB7
Chắc có lẽ như bạn nói là không có bit để chọn cạnh ngắt như RB0 mà mình phải xác định trong chương trình của mình.
Còn chương trình quét phím 4x4 của anh NHH trên mình đã test thử trên Proteus thì chạy tốt nhưng khi đem ra mạch thật thì không chạy được
Bạn test giùm minh nhé Newuser,mình cũng đã thử viết lại nhiều lần rồi nhưng vãn chưa được.
Mình có nhiều vấn đề vẫn chưa thông lắm bạn Newuser giúp mình nhé
|
trời đất, có ai nói là không có bit chọn sườn tác động cho ngắt ngoài (RB0/INT) đâu? Ngắt onchange chỉ có ở các chân của PORTB<4:7> thôi, đúng không?
để đảm bảo là không có ngắt không mong muốn xảy ra mỗi khi nhả phím thì bạn phải viết thêm một đoạn code kiểm tra trạng thái chân gây ngắt onchange, chắc chắn rằng trạng thái chân này đã trở về mức logic ban đầu(trạng thái trước khi nhấn phím), nếu chưa về trạng thái ban đầu thì chưa xoá cờ báo ngắt. Tôi không biết đoạn chương trình của bạn nhh, nhưng theo tôi suy đoán,Proteus đã lý tưởng hoá việc nhấn phím -->không khử nảy phím nhấn.
bạn đọc appnote này xem