View Single Post
Old 01-12-2008, 11:44 PM   #7
LTD_LEO
Đệ tử 1 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 12
:
Trích:
Nguyên văn bởi lequocbao View Post
Đúng cái em cần rồi đây!
Vậy anh Namqn ơi nếu mình lưu con số >=256D vào eeromp thì sao anh (em đang dùng pic8).Em đoán như vậy là bị tràn phải không anh?(khi bị tràn thì ô nhớ đó sẽ chứa dữ liệu gì vậy anh?)
Tại vì write_eeprom(addr,value); thì addr chỉ là 01 ô nhớ (dài 8 bit) không thể chứa được con số >=256D.
Vậy với pic8 thì mình có cách nào để lưu số >=256D không anh?

Với số 256D khi đổi ra nhị phân : 100000000 ( 9bit); vậy nghĩ là tràn ô nhớ eeprom( chỉ có 8 bit);
vậy để lưu được những số lớn hơn 8 bit thì bạn nên tách số mà bạn muốn lưu thành những số 8 bit ... rồi lưu từng số 8 bit vào eeproom lưu vào eeprom ..rồi muốn lấy lại số đó thì chỉ cần đọc giá trỉ 2 byte đó rồi ghép chúng lại .
pic 16( điển hình là 16f887 có 256byte eeprom ) vậy bạn có thể lưu được 256 byte rồi ..
Trong CCS thì nó cung cấp cho ban các lệnh tạo số 8 bit , 16 bit , 32 bit .
(make8(var,offset))..v...v.. cái này bạn vào trong help của ccs xem đi ...
Còn nếu bạn muốn nhanh gọn thì chỉ cần dịch trái , dich phải để tách số 8 bit thôi , sau đó and nó lại là ok rồi..
__________________
Nhận thiết kế và thi công các sản phẩm tự động hóa, truyền thông, cơ khí , điện tử ..
Nhận hàn board , quấn cuộn cảm ....
thuyhu_letinh@yahoo.com
0909300332 .
LTD_LEO vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn