![]() |
|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#29 |
Đệ tử 1 túi
Tham gia ngày: Aug 2005
Bài gửi: 12
: |
Đôi lời về ngắt
Cú pháp của ngắt : - Khi khai báo sử dụng một ngắt, cú pháp khai báo đơn giản void _ISR _INT0Interrupt(void); // ngăt ngoài void _ISR _U1TXInterrupt(void) // ngắt UART void _ISR _U1RXInterrupt(void) - Trang 94 của C30_Users_Guide có định nghĩa cách khai báo đầy đủ : __attribute__((interrupt [( [ save(symbol-list)] [, irq(irqid)] [, altirq(altirqid)] [, preprologue(asm)] )] )) Trong đấy : Save : Lưu giữ biến vào của chương trình ngắt Irq : cho phép đặt vector ngắt altirq : cho phép đặt vector ngắt thay thế preprologue : cho phép insert hợp ngữ Em chỉ dịch Word - by - Word chứ chưa hiểu ý nghĩa thật sự của các mục * Trong các tài liệu hướng dẫn của microchip có một số khai báo dùng ngắt, sử dụng cú pháp trên ( trong dsPIC® Language Tools Getting Started có nhiều ví dụ về khai báo ngắt kiểu này) void __attribute__((__interrupt__(__save__(variable1,va riable2)))) _INT0Interrupt(void) /* interrupt routine code */ { /* Interrupt Service Routine code goes here */ } void __attribute__((__interrupt__)) _ADCInterrupt(void); void __attribute__((__interrupt__, __shadow__)) _T1Interrupt(void); Các đại ca ai hiểu giải thích cụ thể cho em nhé + Giải thích cụ thể về từ khóa __attribute__ , __shadow__vì em thấy nó dùng rất nhiều. + Khi nào thì mình cần dùng đầy đủ cú pháp của ngắt, em thấy dùng cú pháp đơn giản như trên cũng chẳng sao. Thanks thay đổi nội dung bởi: pham_v_quang3i, 30-08-2006 lúc 05:00 PM. |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
dsPIC Tutorial 1-Tạo và biên dịch một project (ASM30) | namqn | dsPIC - Bộ điều khiển tín hiệu số 16-bit | 16 | 22-08-2012 12:35 AM |