View Single Post
Old 31-01-2012, 11:02 AM   #2
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi knnhubi View Post
Mình viết 1 chương trình dùng ngắt ngoài để tăng biến a nhưng khi vừa nạp chương trình hay nhấn nút reset thì có 1 ngắt chãy ( mặc dù không nhấn phím), sau đó thì chạy bình thường. Bác nào biết nguyên nhân thì giúp mình với !
Chương trình của mình như sau:

#include <16f887.h>
#FUSES HS
#use delay (clock = 20M)
#include <LCD.C>
int16 a=0;
#INT_EXT
void ngat()
{
a++;
}
void main(void)
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
ext_int_edge(H_to_L);
lcd_init();
while(true)
{
lcd_gotoxy(0,1);
printf(lcd_putc,"%Lu",a);
delay_ms(200);
}
}

Sau khi bóp nút reset thì nhận được giá trị 1 trên LCD, mình làm trên boar thí nghiệm Pic chứ không phải mô phỏng.
bạn thử lại như sau:
Code:
#include <16f887.h>
#FUSES HS
#use delay (clock = 20M)
#include <LCD.C>
int16 a=0;
#INT_EXT
void ngat()
{
a++;
lcd_gotoxy(0,1); 
printf(lcd_putc,"%Lu",a);
delay_ms(200);
}
void main(void)
{
delay_ms(500);
lcd_init();
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
ext_int_edge(H_to_L);
lcd_gotoxy(0,1); 
printf(lcd_putc,"%Lu",a);
while(true)
{
}
}
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn