PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   MPASM (http://www.picvietnam.com/forum/forumdisplay.php?f=34)
-   -   Chương trình ngắt cho timer1 thế này mà chạy không được ! (http://www.picvietnam.com/forum/showthread.php?t=1839)

namqn 30-12-2007 06:04 AM

Khi sao lưu các thanh ghi đặc biệt như FSR, STATUS, PCLATH, và W trong chương trình xử lý ngắt, nhất thiết phải dùng các thanh ghi có thể truy xuất từ một bank bất kỳ, vì ngắt có thể xảy ra ở bất kỳ thời điểm nào, nên bank hiện thời dùng để truy xuất các thanh ghi dữ liệu có thể là bất kỳ giá trị nào từ 0 đến 3. Vì lý do đó, các thanh ghi 0xF0 - 0xFF, 0x170 - 0x17F, và 0x1F0 - 0x1FF được ánh xạ vào các thanh ghi 0x70 - 0x7F trong PIC16F877A. Trong trường hợp PIC không có tính năng này, các thanh ghi dùng để sao lưu cần phải được khai báo ở mọi bank, tại địa chỉ tương ứng.

Bạn chỉ cần sửa địa chỉ cho các thanh ghi FSR_save, STATUS_save, PCLATH_save, và W_save như sau, thì sẽ có thể dùng khung chương trình xử lý ngắt chuẩn mà bạn đã tham khảo:

Code:

        W_save                EQU        0x70
        PCLATH_save        EQU        0x71
        STATUS_save        EQU        0x72
        FSR_save        EQU        0x73

Những điều trên đã được đề cập đến trong mục 14.12 - Context Saving During Interrupts, trong datasheet của PIC16F877A.

Thân,


Múi giờ GMT. Hiện tại là 04:26 AM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam