View Single Post
Old 16-12-2008, 05:49 PM   #10
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 lequocbao View Post
Như vậy với lệnh:
x=0b00001010;
if (x=0xa);
thì kết quả vẫn là true đúng không anh?

và khi em nhận 01 byte dữ liệu từ ds1307 vào pic và byte đó được lưu tạm thời trong biến có kiểu là int8 thì mặc nhiện byte dữ liệu đó đang được biểu diễn dưới dạng nhị phân đúng không anh?
vd:
ds1307 truyền đi số 10 (mã BCD) là:00000001(MSB đi đầu - chổ này e không chắc có đúng không nữa,nếu sai anh góp ý giúp e nha!).
nhưng khi pic lần lượt nhận vào sẽ là:10000000(binary) sẽ có giá trị là 128 thập phân.
Em hiểu như vậy có đúng không?




anh Namqn ơi! 11 thập phân là 00001011b chứ đâu phải là 00010011b đâu anh!hì hì...
Câu hỏi đầu tiên của bạn: đúng.

Byte nhận về từ DS1307 có dạng số BCD, bạn lưu vào biến int8 thì nó vẫn số BCD.

Bạn chưa cần quan tâm đến việc truyền dữ liệu nối tiếp ra sao. Chỉ cần hiểu nếu DS1307 trả về giá trị 10 (BCD) thì bạn sẽ nhận được giá trị 10 (BCD) trong PIC (giả thiết bạn đang dùng module I2C của PIC).

Tôi đã viết nhầm 11 thập phân là 00010011 trước đó, đã sửa lại như bạn chỉ ra.

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