View Single Post
Old 19-03-2008, 09:28 PM   #6
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Tôi không dùng CCS C, nhưng đọc qua code của bạn, tôi có cảm giác không ổn. Theo tài liệu của CCS C, #INT_EEPROM là ngắt xảy ra khi việc ghi EEPROM hoàn tất. Những gì bạn viết trong trình xử lý ngắt #INT_RDA có thể hiểu được, nhưng những gì bạn viết trong trình xử lý ngắt #INT_EEPROM thì khó hiểu.

Theo cách bạn viết, khi nhận được ký tự, và ký tự đó có giá trị 255 thì bạn sẽ thực hiện việc ghi vào EEPROM. Tuy nhiên, chương trình con mà bạn gọi ở trình xử lý ngắt #INT_RDA lại là trình xử lý ngắt #INT_EEPROM, điều này có thể gây ra rắc rối, vì chương trình xử lý ngắt sẽ trở về bằng lệnh RETI, còn chương trình con bình thường sẽ trở về bằng lệnh RETURN hay RETLW.

Điểm thứ hai, ngắt #INT_EEPROM xảy ra khi việc ghi 1 ô nhớ EEPROM hoàn tất, khi đó, trong chương trình xử lý ngắt #INT_EEPROM của bạn, bạn lại yêu cầu ghi vào EEPROM nữa, vì khi động tác ghi này hoàn tất, nó sẽ sinh ra một ngắt #INT_EEPROM nữa. Trong khi đó, bạn vẫn chưa hoàn tất vòng lặp ghi một mảng giá trị vào EEPROM. Thực sự tôi cũng không hiểu chương trình này sẽ vận hành như thế nào, vì tôi không bao giờ viết code kiểu như vậy.

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
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn