Trích:
Nguyên văn bởi lequocbao
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,