|
Tài trợ cho PIC Vietnam |
PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip |
|
Ðiều Chỉnh | Xếp Bài |
|
28-12-2010, 05:38 PM | #1 |
Đệ tử 1 túi
Tham gia ngày: Sep 2010
Bài gửi: 13
: |
Chương trình không vào ngắt được
Chào cả nhà!Mọi người xem sao đoạn code của mình chương trình nó không vào ngắt dc?
#include<16f877a.h> #fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=4000000) #use fast_io(b) #byte intcon=0x0B #byte portb=0x06 #byte portd=0x08 #byte intcon=0x0B #bit RB4=portb.4 #bit RB5=portb.5 #bit RB6=portb.6 #bit RB7=portb.7 #bit RBIF=intcon.0 //dinh nghia co ngat RB #bit RBIE=intcon.3 //dinh nghia bit cho phep ngat RB #int_RB int8 a; void ngat_RB() { if(RB4==0) { while(1); { //Khong lam gi het } } if(RB5==0) { while(1); { //Khong lam gi het } } if(RB6==0) { while(1); { //Khong lam gi het } } if(RB7==0) { while(1); { //Khong lam gi het } } } main() { set_tris_b(0b11110000); set_tris_d(0); enable_interrupts(global); enable_interrupts(int_RB); ext_int_edge(H_to_L); while(true) { a=a<<1; if(a==256) { a=1; } portd=a; delay_ms(100); } } |
29-12-2010, 04:47 PM | #2 |
Đệ tử 1 túi
Tham gia ngày: Sep 2010
Bài gửi: 13
: |
Không ai giúp hết vậy?????????????
thay đổi nội dung bởi: troiuuuu, 31-12-2010 lúc 08:45 AM. |
30-12-2010, 04:41 PM | #3 |
Đệ tử 2 túi
|
trong chuong trinh ngắt chỉ cần 1 lệnh thui
ví dụ như khi nhấn thì portd =0 hay =0xFF ( tùy theo yeu cau) |
31-12-2010, 08:40 AM | #4 |
Đệ tử 1 túi
Tham gia ngày: Sep 2010
Bài gửi: 13
: |
|
31-12-2010, 10:28 AM | #5 |
Đệ tử 6 túi
Tham gia ngày: Feb 2009
Bài gửi: 127
: |
#include<16f877a.h>
#fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=4000000) #use fast_io(b) #byte intcon=0x0B #byte portb=0x06 #byte portd=0x08 #byte intcon=0x0B #bit RB4=portb.4 #bit RB5=portb.5 #bit RB6=portb.6 #bit RB7=portb.7 #bit RBIF=intcon.0 //dinh nghia co ngat RB #bit RBIE=intcon.3 //dinh nghia bit cho phep ngat RB #int_RB int8 a; // Doi cho~ cai' nay` cho #int_RB "Sai o day" (^_^) *** void ngat_RB() { if(RB4==0) { while(1); { //Khong lam gi het } } if(RB5==0) { while(1); { //Khong lam gi het } } if(RB6==0) { while(1); { //Khong lam gi het } } if(RB7==0) { while(1); { //Khong lam gi het } } } main() { set_tris_b(0b11110000); set_tris_d(0); enable_interrupts(global); enable_interrupts(int_RB); ext_int_edge(H_to_L); while(true) { a=a<<1; if(a==256) { a=1; } portd=a; delay_ms(100); } } Đổi chỗ khai bao' bien' a cho #int_RB la chay dc |
01-01-2011, 12:13 PM | #6 |
Đệ tử 1 túi
Tham gia ngày: Sep 2010
Bài gửi: 13
: |
Cám ơn bạn nhiều!Mà bạn cho mình hỏi tại sao lại đổi chỗ nó mới chạy ngắt dc??
|
03-01-2011, 02:43 AM | #7 |
Đệ tử 6 túi
Tham gia ngày: Feb 2009
Bài gửi: 127
: |
sau khi khai báo #int_RB thi viết luôn chương trình ngắt bên dưới. bài lập trình của bạn CCS coi như chưa viết hàm ngắt
|
|
|