![]() |
[Cần giúp đỡ] Ngắt ngoài PIC16F887 - MPLABX XC8
***Vấn đề đã được giải quyết, chỉ cần tắt Watchdog Timer đi là ok
code: #pragma config WDTE = OFF Để bài đăng lại cho anh em sau này có gặp thì tham khảo :D Nội dung: ngắt ngoài INT được nối với 1 button, mỗi lần button được nhấn thì giá trị hiển thị ở PORTA tăng lên 1. (hiện từ 0->9) Code: char j; void INT_Init() { INTCONbits.PEIE = 1; //Enable ngat ngoai vi INTCONbits.GIE = 1; //Enable ngat toan cuc INTCONbits.INTE = 1; //Enable ngat ngoai INT OPTION_REGbits.INTEDG = 1; //Ngat o canh xuong INTCONbits.INTF = 0; //xoa co ngat INT ANSELHbits.ANS12 = 0; //pin B0/INT la ngo vao digital } #pragma void interrupt ISR_INT0() { if(INTCONbits.INTF && INTCONbits.INTE) { if (j<9) j++; else j = 0; INTCONbits.INTF = 0; } } void main() { TRISA = 0; while (1) PORTA = j; } /**************************************/ Vấn đề: code vẫn chạy, mỗi khi nhấn nút 1 lần thì j tăng giá trị lên 1. Nhưng nó tự động reset về 0 sau 1-2s. Giả sử j = 1, nó tự động reset về j = 0. Nhờ các cao nhân chỉnh sửa giúp em. |
Múi giờ GMT. Hiện tại là 03:44 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam