Cũng với chương trình ngắt phía trên:
+Khai báo biến toàn cục:
Code:
unsigned int ADC_1;
unsigned int ADC_2;
+Trình phục vụ ngắt:
Code:
void interrupt_int4() org 0x80 { //When ADS is asserted
addr_select = PORTA;
addr_select &= 0x3F;
if (addr_select == 0)
{
LATD = ADC_1; //ADC_1
}
else if (addr_select == 2)
{
LATD = ADC_2; //ADC_2
}
else
{
LATD = addr_select;
}
IFS3bits.INT4IF = 0; //ensure interrupt not pending
}
Nhưng khi thay đổi giá trị của ADC_1 và ADC_2 trong hàm main()
ví dụ:
Code:
ADC_1 = 0xAA;
ADC_2 = 0xBB;
thì LATD không đưa ra giá trị đúng khi có ngắt ngoài INT4.
Vấn đề ở đây là gì ??? Các bác giúp em với