![]() |
|
Tài trợ cho PIC Vietnam |
||||||||
| Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
|
Ðiều Chỉnh | Xếp Bài |
|
|
#3 |
|
Trưởng lão PIC bang
|
Viết như sau (lấy ví dụ xử lý UART và ngắt INT1 ở phần low priority, thứ tự xét là UART rồi đến INT1):
Code:
void dclk_handler( void ); //RB0
void rx_handler( void ); //uart
void reset_button(void); //RB1
#pragma code dclk_interrupt = 0x08
void high_vector( void )
{
_asm goto dclk_handler _endasm
}
#pragma code low_interrupt = 0x18
#pragma interruptlow low_vector
void low_vector(void)
{
//code gọi các hàm xử lý các ngắt low priority
if (PIR1bits.RCIF) rx_handler();
if (INTCON3bits.INT1IF) reset_button();
}
#pragma code
#pragma interrupt dclk_handler
void dclk_handler(void) {
//code của phần high priority
}
void rx_handler(void) {
//code cho xử lý ngắt UART
}
void reset_button(void) {
//code cho xử lý ngắt INT1
}
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 thay đổi nội dung bởi: namqn, 25-07-2007 lúc 10:31 PM. |
|
|
|
| Ðiều Chỉnh | |
| Xếp Bài | |
|
|