Trích:
Nguyên văn bởi nampham
Bác cho em hỏi, phần các bác viết về ngắt ý, sao các bác lại dùng lệnh SWAP , theo em nghĩ thì chỉ cần lưu giữ giá trị các thanh ghi trước khi vào ngắt thôi, sao lại cần đổi vị trí các bít thấp cho bít cao làm gì
|
Trước khi lưu lại và sau khi phục hồi thanh ghi STATUS, bạn cần dùng các lệnh không gây ảnh hưởng đến các bit trạng thái trong STATUS để di chuyển dữ liệu. Lệnh MOVF làm thay đổi cờ Z, còn các lệnh MOVWF và SWAPF không làm thay đổi cờ nào hết. Đây là lý do của cách viết đoạn code lưu và phục hồi các thanh ghi như trên khi xử lý ngắt, như vẫn thấy trong các datasheet của các PIC tầm trung.
Thân,