|
12-09-2007, 01:23 AM | #1 |
Đệ tử 4 túi
Tham gia ngày: Jul 2007
Bài gửi: 66
: |
ghi và đọc eeprom?
tui có bảng giá trị sin,muốn ghi vào eeprom tui dùng lệnh sau
#rom 0x2100={1,2,3,4,5,6,7,8} khi bắt đầu chương trình pic có tốn thời gian để ghi giá trị này vào eeprom hay ko?theo tui thấy là có sau đó đọc ra dùng lệnh value = read_eeprom (address) address từ 0 -255 có đúng ko? tui viết bằng CCS,ai biết chỉ dùng |
13-09-2007, 11:14 AM | #2 | |
Đệ tử 9 túi
|
Trích:
+ Để ghi vào internal eeprom: Code:
write_eeprom(address,value); Code:
read_eeprom(address); Còn #rom 0x..., quả thật chưa dùng, bạn đọc help thử xem.
__________________
Ngày mai bắt đầu từ ngày hôm nay Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này: http://www.picvietnam.com/forum//showthread.php?t=1263 |
|
13-09-2007, 01:04 PM | #3 |
Đệ tử 4 túi
Tham gia ngày: Jul 2007
Bài gửi: 66
: |
cám ơn bạn đã trả lời,nhưng có điều tui ghi đến 256 giá trị nếu dùng lệnh ghi
write_eeprom(address,value); thì phải làm đến 256 lệnh hơi bị oải,với lại mỗi lệnh xử lý hết vài ms thì 1 đống đó ít nhất cũng mất vài giây,với lại value tui ghi vào lớn hơn 255 được ko?tui dùng 18f4331 |
13-09-2007, 07:38 PM | #4 | |
Đệ tử 7 túi
|
Trích:
Thân.
__________________
_____________________________Tri nhân tri tự bất tri tâm_____________________________ _ _ _ _ _ _ _ _ Yêu mến tất cả anh em Picvietnam.com _ _ _ _ _ _ _ _ . . . . . . . . . . . . . . . . Để post đuợc một câu hỏi rõ ràng xin tham khảo link sau : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . http://www.picvietnam.com/forum/showthread.php?t=1263. . . . . . . . . . . . . . . . |
|
12-02-2009, 12:41 PM | #5 | |
Nhập môn đệ tử
Tham gia ngày: Apr 2008
Bài gửi: 4
: |
làm ơn chỉ mình cách ghi đọc cụ thẻ bằng cách "value" là một biến động
Trích:
|
|
13-09-2007, 07:58 PM | #6 |
Đệ tử 4 túi
Tham gia ngày: Jul 2007
Bài gửi: 66
: |
tui muốn ghi một bảng giá trị cố định,tui dùng lệnh #rom.... nhưng có vẻ như không đọc giá trị trong eeprom được,vì tui thử đọc ra led thì ko có gì cả,với lại giá trị nạp vào có thể là số 16 bit phải ko?
|
14-09-2007, 03:25 AM | #7 |
Trưởng lão PIC bang
|
Đa số các phần mềm nạp PIC đều cho phép nạp trước nội dung nào đó vào EEPROM, do đó bảng hằng số của bạn có thể được nạp vào EEPROM trong quá trình bạn nạp chương trình cho PIC. Sau đó trong chương trình bạn chỉ việc đọc các hằng số đó, và việc đọc diễn ra rất nhanh.
Ngay cả khi ở đầu chương trình mà bạn phải ghi các hằng số này thì nó cũng không ảnh hưởng gì đến chương trình, vì thao tác này chỉ diễn ra có một lần. Theo tài liệu của CCS C thì họ có một ví dụ về cách dùng built-in EEPROM của PIC (tên tập tin là ex_intee.c). Tôi không dùng CCS C, chỉ đọc tài liệu hướng dẫn của nó và nhận thấy có thông tin như vậy (nội dung của tập tin ex_intee.c được liệt kê ở phần phụ lục của tài liệu hướng dẫn C Compiler Reference Manual của CCS C). Nếu bạn muốn cập nhật bảng hằng số trong EEPROM đó thì bạn phải ghi vào từng ô nhớ bằng hàm write_eeprom() thôi. 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 |
19-09-2007, 02:07 AM | #8 |
Đệ tử 4 túi
Tham gia ngày: Jul 2007
Bài gửi: 66
: |
cám ơn bạn đã quan tâm,mình có một bảng sin có 256 giá trị,giá trị là số 16 bit, hình như eeprom chỉ cho phép ghi data 8 bit thì phải,ko biết có cách nào ko?
|
19-09-2007, 02:42 AM | #9 | |
Trưởng lão PIC bang
|
Trích:
PIC24 và dsPIC30/dsPIC33 là các chip 16-bit, có độ rộng kênh dữ liệu là 16-bit. Như vậy, EEPROM của PIC24/dsPIC30 hay RAM của PIC24/dsPIC30/dsPIC33 sẽ có độ dài 16-bit. Các chip này có flash gồm các word 24-bit. Bạn cần xác định xem có cần độ phân giải 16-bit cho một bảng có 256 giá trị hay không. 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 |
|
13-02-2009, 01:48 PM | #10 |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 52
: |
Các bạn cho mình hỏi ví dụ mình muốn lưu một chuỗi "XINCHAO" vào eeprom sau đó lại đọc từ eeprom ra thì lúc này chuỗi XINCHAO sẽ được mã hóa như thế nào?
|
13-02-2009, 02:18 PM | #11 | |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 154
: |
eeprom
Trích:
có 2 cách lưu: trực tiếp và gián tiếp lưu trực tiếp tức là lưu toàn bộ những gì bạn cần lưu vào eeprom sau đó đọc nó ra gián tiếp tức là bạn dùng một biến trung gian để lưu nó vào eeprom sau đó khi cần lấy biế trung gian này ra rồi từ đó tìm lại cái bạn cần |
|
15-02-2009, 11:38 AM | #12 | |
Đệ tử 3 túi
Tham gia ngày: Dec 2008
Bài gửi: 50
: |
Trích:
|
|
16-02-2009, 12:24 PM | #13 | |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 52
: |
Trích:
Char Const a[7] = "XINCHAO" thì chúng sẽ là các ký tự mã ASCII phải ko anh? |
|
04-06-2009, 02:49 AM | #14 | |
Đệ tử 1 túi
|
Bác nào có ví dụ về ghi và đọc eeprom cho giá trị 16 bit thì cho a e tham khảo với, chứ nói thế này ứng dụng khó quá. Giả sử :
Trích:
thay đổi nội dung bởi: the_duyet, 04-06-2009 lúc 02:51 AM. Lý do: định dạng lại code |
|
16-02-2009, 11:33 AM | #15 |
Đệ tử 6 túi
Tham gia ngày: Jul 2007
Bài gửi: 154
: |
lưu trực tiếp khi data bạn lưu vào eeprom phải nhỏ hơn dung lượng của eeprom khi đó code sẽ đơn giản hơn nhiều
lưu gián tiếp thì cần khi số byte của bạn cần lưu quá lớn, lớn hơn nhiều lần so với dung lượng eeprom của vdk bạn đang dùng. cái này code cần có thêm bộ giải mã để so sánh và lấy data ra. dương nhiên là data đã có sẳn và được lưu trong rom |
|
|