View Single Post
Old 09-06-2007, 08:18 PM   #4
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
Trích:
Nguyên văn bởi phamthanhkhuyen View Post
tôi thử viết đoạn chương trình sau với pic877a không hiểu sao khi đọc kết quả thi nhiệt độ nó tăng với mứt là 64 chẳng hạn:
32 96 160 224 288 chứ nó không tăng theo từng độ 32 33 34 35 36 ...
sau đây là code:
...
Chương trình của bạn có 1 lỗi. Trong INI_ANALOG, bạn có đặt giá trị cho ADCON1, nhưng thanh ghi này nằm ở bank 1, trong khi ngay trước khi bạn gọi INI_ANALOG thì bạn có gọi INI_PORT, kết thúc INI_PORT thì bạn đang ở bank 0. Trong INI_ANALOG bạn không hề chuyển sang bank 1, do đó thực tế thanh ghi ADCON1 không nhận được giá trị mà bạn muốn. Dẫn đến kết quả analog mặc định được canh trái, do vậy bạn sẽ đọc được những giá trị có 6 bit thấp nhất là 0, tức là những giá trị là bội số của 64, như bạn đã thử nghiệm.

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