|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
03-05-2014, 12:14 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Dec 2013
Bài gửi: 2
: |
[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 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. thay đổi nội dung bởi: dat_huynh2303, 03-05-2014 lúc 03:38 PM. |
|
|