Ðề tài: interrupt in C18
View Single Post
Old 25-07-2007, 02:30 AM   #2
littlephoc
Đệ tử 3 túi
 
Tham gia ngày: Dec 2006
Bài gửi: 60
:
sửa lại code như sau:
Code:
#pragma code high_interrupt = 0x08
void high_vector( void )
{
	if(INTCONbits.INT0IF)
	{
		_asm goto dclk_handler _endasm
	}
	if(INTCON3bits.INT1IF) 
	{
		_asm goto reset_button _endasm
	}
} 

#pragma code low_interrupt = 0x18
void low_vector(void)
{
	_asm goto rx_handler _endasm
}
nhận đuợc thông báo lỗi là:
Error - section 'low_interrupt' can not fit the absolute section. Section 'low_interrupt' start=0x00000018, length=0x0000000

nếu dòng low interrupt đuợc sửa như sau thì không có báo lỗi:
#pragma code low_interrupt // = 0x18
tức là không định địa chỉ tuyệt đối cho low interrupt thì được.
Tuy nhiên không biết chương trình có chạy đúng hay không .

INT1IP: INT1 External Interrupt Priority bit
1 = High priority
0 = Low priority
setupcho cấu hình priority trong INTCON3 có ý nghĩa như thế nào trong việc xác định mức ưu tiên ngắt ? chẳng phải đã định nghĩa từ đầu ở dòng #pragma rồi sao?

thay đổi nội dung bởi: littlephoc, 25-07-2007 lúc 02:46 AM.
littlephoc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn