PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   Hỏi về ngắt INT0 (http://www.picvietnam.com/forum/showthread.php?t=3713)

npbaoduy 17-03-2009 10:15 PM

Hỏi về ngắt INT0
 
em có viết 1 đoạn chương trình như sau
Code:

void main()
{
x=1;
set_TRIS_A(1);
EXT_INT_EDGE(0,L_TO_H);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
while (x==1)
{
output_toggle(PIN_E0);
delay_ms(100);
output_toggle(PIN_E1);
delay_ms(100);
output_toggle(PIN_E2);
delay_ms(100);
}
#INT_EXT
void ngat()
{
x=0;
}

Không hiểu sao, khi em test thử, chỉ khi chân INT0 lên mức cao thì vòng lặp mới dừng lại (các LED nối ở porte ko chớp) khi chân INT0 về mức thấp, vòng lặp vẫn tiếp tục (LED chớp( trở lại), tức là x vẫn bằng 1?
Ai biết xin chỉ giúp, em xin cám ơn nhiều.

mtuankct 17-03-2009 10:34 PM

Hình như bạn viết thiếu dấu } của hàm main
còn lỗi theo mình là do sau vòng while(x==1) bạn không có bất kỳ lệnh nào tiếp nên vđk sẽ reset và chạy lại từ đầu, cần đặt một vòng while(1); vào cuối chuơng trình main để tránh hiện tượng này

npbaoduy 17-03-2009 10:47 PM

cám ơn bạn, mình sẽ thử lại
Cũng như trên, mình viết thêm
void ngat()
{
if (PIN_a0==1)
x=0;
}
CCS luôn warning là: Condition always FALSE
Ý mình muốn là khi ngắt sẽ kiểm tra PIN A0, xem PIN này mức cao hay thấp để thực hiện lệnh gì đó, vậy có ai có gợi ý giúp mình ko?

namqn 17-03-2009 11:08 PM

Trích:

Nguyên văn bởi npbaoduy (Post 23654)
cám ơn bạn, mình sẽ thử lại
Cũng như trên, mình viết thêm
void ngat()
{
if (PIN_a0==1)
x=0;
}
CCS luôn warning là: Condition always FALSE
Ý mình muốn là khi ngắt sẽ kiểm tra PIN A0, xem PIN này mức cao hay thấp để thực hiện lệnh gì đó, vậy có ai có gợi ý giúp mình ko?

Theo tôi, CCS C hiểu là bạn lấy giá trị địa chỉ của PIN_a0 để so sánh với 1, dẫn đến kết quả luôn luôn là false. Cách đọc giá trị của ngõ vào I/O có trong tài liệu hướng dẫn của CCS C (hàm input()), có cả ví dụ, tại sao bạn không đọc tài liệu hướng dẫn?

Thân,

npbaoduy 17-03-2009 11:13 PM

cám ơn anh namqn, tại em cũng mới dùng CCS, chưa biết hàm INPUT này, em sẽ nghiên cứu kỹ lại.


Múi giờ GMT. Hiện tại là 11:22 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam