Ngắt của DSPIC30F4011

Một phần của tài liệu Tìm hiểu động cơ một chiều không chổi than (Trang 52)

2. Đánh giá chất lƣợng của Đ.T.T.N (so với nội dung yêu cầu đã đề ra trong

3.1.1.1.Ngắt của DSPIC30F4011

DSPIC30F4011 có tổng cộng 30 nguồn ngắt và 4 ngoại lệ ngắt (bẫy bộ xử lý). Chúng đƣợc phân định nhờ 7 mức ƣu tiên ngắt.

CPU có trách nhiệm tra trong bảng vector ngắt, tìm ra địa chỉ của vector ngắt của ngắt hiện thời rồi chuyển địa chỉ đó vào bộ đếm chƣơng trình. Bộ điều khiển ngắt có trách nhiệm xử lý các ngắt và các bẫy bộ xử lý. Các ngắt đƣợc cài đặt, sử dụng và điều khiển nhờ vào các thanh ghi chức năng đặc biệt sau:

- IFS0<15:0>, IFS1<15:0>, IFS2<15:0> với chức năng lƣu giữ các cờ ngắt. Các cờ này đƣợc xóa bởi phần mềm.

- IEC0<15:0>, IEC1<15:0>, IEC2<15:0> lƣu giữ bit điều khiển cho phép/không cho phép ngắt của tất cả các nguồn ngắt.

- IPC0<15:0>... IPC11<7:0> là 12 thanh ghi lƣu giữ mức ƣu tiên của tất cả các ngắt. Chúng đƣợc cài đặt do lập trình của ngƣời sử dụng.

- IPL <3:0> mức ƣu tiên CPU hiện thời đƣợc lƣu ở đây. IPL<3> có mặt trong thanh ghi CORCON còn các bit IPL <2:0> có mặt trong các thanh ghi

42 trạng thái SR.

- INTCON1<15:0>, INTCON2<15:0> chức năng điều khiển ngắt toàn cục đƣợc lƣu giữ ở đây.

Mỗi một nguồn ngắt có thể đƣợc lập trình để gán cho nó 1 trong 7 mức ƣu tiên ngắt thông qua thanh ghi ICPx. Mỗi một nguồn ngắt tƣơng ứng với một vector ngắt trong bảng các vector ngắt. Mức ƣu tiên 7 và 1 tƣơng ứng là các mức ƣu tiên cao nhất và thấp nhất.

Có một đặc điểm trong DSPIC30F4011 về hoạt động ngắt. Bit NSTDIS (INTCON1<15>) đƣợc set để chắn các ngắt khác khi ngắt đó đang đƣợc phục vụ. Có nghĩa là khi một chƣơng trình con dịch vụ ngắt đang đƣợc thực thi, nếu bit này đƣợc set lên sẽ có thể chắn các ngắt khác, kể các khi các ngắt khác có mức ƣu tiên cao hơn.

Một phần của tài liệu Tìm hiểu động cơ một chiều không chổi than (Trang 52)