Trích:
Nguyên văn bởi LeDuc
Nhưng anh Nam ơi, khi đọc ra thì phải làm sao để lấy đủ giá trị 10 bit .
bài toán em đang làm là : xét AD của 8 kênh dữ liệu , lưu vào eeprom . Đọc dữ liệu của 8 kênh được lưu trong eeprom , và xử lý khi có ngắt AD ..
Bình thường khi ghi vào eeprom nếu giá trị lớn hơn 8bit , nó tự tách ra nhiều phần , mỗi phần là 8 bit . Nhưng khi đọc ra làm sao ta lấy dủ dữ liệu 10 để so sanh với giá trị AD 10 bit tức thời ...
Em vẫn ko nghĩ ra được giải thuật, rất mong các anh giúp em...
Thanks for all ..
|
Chời ơi,
unsigned int temp;
temp = (ADRESH << 8) | ADRESL;
vậy là được mà.
Nếu bạn ghi 1 số kiểu integer (2 byte) vào địa chỉ 10H chẳng hạn thì đọc nó ra byte 10H và 11H, phần cao và phần thấp đó, xong làm như phép trên là được.
Bạn bảo trình biên dịch nó tự tách ra thì phải lưu theo thứ tự đó, byte đầu là phần cao, byte sau là phần thấp.