Mình viết đoạn code như sau để thực hiện ngắt trên port D:
Code:
// INTEXT.C MPB 10-4-07
// Demo external interrupt
// RB0 low interrupts
// foregroundoutput count
#include "16F887.h"
#use delay(clock=2000000)
#int_ext
void isrext()
{ output_D(255);
delay_ms(1000);
}
void main()
{
int x=10;
enable_interrupts(int_ext);
enable_interrupts(global);
ext_int_edge(H_TO_L);
while(1)
{
output_D(x);
x++;
delay_ms(100);
}
}
Bây giờ mình muốn chương trình ngắt thực hiện công việc là khi bắt đầu ngắt thì sẽ lấy giá trị hiện thời của x trong chương trình chính và đưa vào chương trình ngắt,mình sửa code lại như sau nhưng chưa chạy được:
Code:
// INTEXT.C MPB 10-4-07
// Demo external interrupt
// RB0 low interrupts
// foregroundoutput count
#include "16F887.h"
#use delay(clock=2000000)
#int_ext
void isrext()
{ output_C(x); //muc dich là xuat ra portC giá trị của x hiện thời trong ct chính
delay_ms(1000);
}
void main()
{
int x=10;
enable_interrupts(int_ext);
enable_interrupts(global);
ext_int_edge(H_TO_L);
while(1)
{
output_D(x);
x++;
delay_ms(100);
}
}