|
04-11-2008, 11:47 PM | #1 |
Đệ tử 6 túi
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
: |
lưu dữ liệu ở ROM....?
Để lưu dữ liệu ở rom dùng các hàm như sau:
write_eeprom(địa chỉ,giá trị); read_eeprom(địa chỉ); trong khi lưu và đọc cấm tất cả các ngắt +ai có thể giải thích dùm cách khai báo địa chị trong lệnh trêm dùm tiểu đệ kô +tiểu đệ lưu một mãng dữ liệu rất nhiều số sau đó đọc ra từ từ ai làm rồi xin chỉ giáo |
05-11-2008, 12:23 AM | #2 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
04-04-2011, 12:50 PM | #3 | |
Nhập môn đệ tử
Tham gia ngày: Oct 2009
Bài gửi: 7
: |
undefined
Trích:
"The 10-bit range of the pair can address a memory range of 1024 bytes (00h to 3FFh)." Con DSPIC30 thì nó giới thiệu như sau "The dsPIC30F4011/4012 devices have 1 Kbyte (512 words) of data EEPROM, with an address range from 0x7FFC00 to 0x7FFFFE." . hoặc " The dsPIC30F6010 device has 8 Kbytes (4K words) of data EEPROM, with an address range from 0x7FF000 to 0x7FFFFE. " Vậy với DSPIC này nếu dùng hai hàm trên để đọc và ghi EEPROM ở DSPIC30 thì dịa chỉ có bắt đầu từ 0x000000 hay bắt đầu từ 0x7FFC00 (ở dsPIC30F4011) và bắt đầu từ 0x7FF000 ( ở dòng dsPIC30F6010) ? Thanks ! Còn vấn đề nửa , em xem khá nhiều datasheet của pic dong 16 , 18 , dsPIC30 , hầu hết điều có giới thiệu "address range " của EEPROM trong phần DATA EEPROM. Nhưng riêng mỗi con 18F4550 ,lại chẳng thấy giới thiệu . Cũng liên quan đến EEPROM, nhưng ngoài luồng xíu , anh Nam cho em hỏi, e có làm mạch pickit2 full theo sơ đồ của MCHP đã chạy rồi. Trong đó em dùng 2 con EEPROM 24LC512 , đã chạy được chức năng Program to go. Em xem datasheet thấy con AT24C512B có vị trí chân và địa chỉ device (1,0,1,0,A2,A1,A0) , bộ nhớ thì 2 con như nhau 512Kbit. Con AT24C512B rẻ hơn xíu . Anh cho em hỏi mình có thể thay thế 24LC512 bằng AT24C512B để lắp vào PICKIT2 không ? Thanks anh nhiều . thay đổi nội dung bởi: thienanh0000, 05-04-2011 lúc 02:54 PM. |
|
05-11-2008, 07:54 PM | #4 |
Đệ tử 6 túi
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
: |
thưa bác namq em dùng pic 18f4550,lưu 10 số vào địa chỉ add1,10 số vào địa chỉ add2,10 số vào add3,dau đó đọc số 1 từ add1,ra tiếp số 2,...được truyền từ máy tính xuống,em chưa biết phải khai báo và viết như thế nào,
nhân tiện hỏi bác namq chương trìng test các post của píc 18f4550 của em như vậy ổn kô #include <18f4550.h> #fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=20000000) #byte porta=0xf80 #byte portb=0xf81 #byte portc=0xf82 #byte portd=0xf83 #byte porte=0xf84 ///khai bao dia chi port void main(void) {set_tris_a(0x00); set_tris_b(0x00); set_tris_c(0x00); set_tris_d(0x00); set_tris_e(0x00); while (1) { porta=0; delay_ms(250); porta=255; delay_ms(250); portb=0; delay_ms(250); portb=255; delay_ms(250); portb=0; delay_ms(250); portb=255; delay_ms(250); portc=0x00; delay_ms(250); portc=0xff; delay_ms(250); portd=0x00; delay_ms(250); portd=0xff; delay_ms(250); porte=0x00; delay_ms(250); porte=0xff; delay_ms(250); }} sao postc có một chân kô sáng đèn,pic mới mua kô thể chết được nhờ bác xem dùm em |
05-11-2008, 08:02 PM | #5 | |
Trưởng lão PIC bang
|
Trích:
Bài viết có code kiểm tra port I/O của PIC18F4550 đã được tôi tách thành 1 luồng riêng, bạn xem danh sách các bài viết mới sẽ thấy bài viết của bạn (đã được tôi trả lờ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 |
|
05-11-2008, 08:10 PM | #6 |
Đệ tử 6 túi
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
: |
ý em là như vậy ta khai báo các địa chỉ như sau:
#define add1 0x06 // 30 byte #define add2 0x25 // 34 byte #define add3 0x49 // 80 byte #define add4 0x9f // 100 byte #define add5 0x9f //...? trong add1 ta có 30byte,số 1 tâ lưu vào add1 nhưng ở byte1, sau đó tiếp số 2...(kô biết đúng kô),ý em muốn hỏi là sau khi lưu như vậy thì cách thức đọc ra như thế nào, |
05-11-2008, 08:54 PM | #7 | |
Trưởng lão PIC bang
|
Trích:
Với ví dụ của bạn, tôi có thể đọc dữ liệu như sau: Code:
for (i = add1; i <= (add1 + 30); i++) { bien = read_EEPROM(i); //Thực hiện công việc gì đó với bien }
__________________
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 |
|
05-11-2008, 09:05 PM | #8 |
Đệ tử 6 túi
Tham gia ngày: Nov 2007
Nơi Cư Ngụ: BK TP HCM
Bài gửi: 136
: |
em cũng làm như thế nhưng chương trinh chạy ko ok,để xem lại cái đã,cảm ơn bác namq
|
13-02-2009, 02:10 PM | #9 |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 52
: |
Cho em hỏi nếu lưu một mảng char const a[10]="XINCHAO" trong EEPROM thì khi đọc từ EEPROM ra sẽ có dạng như thế nào ạ?
|
13-02-2009, 06:08 PM | #10 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
16-02-2009, 12:19 PM | #11 |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 52
: |
|
16-02-2009, 04:23 PM | #12 |
Trưởng lão PIC bang
|
Đúng vậy. Thực ra trình biên dịch chẳng quan tâm nó là dạng gì, chỉ lặp lại 8 bit dữ liệu mà bạn đã mô tả trong phần khai báo.
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 |
17-02-2009, 02:39 PM | #13 |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 52
: |
Hiển thị tiếng anh trên Led matrix thì em làm được rồi. Em dùng bảng mã ASCII sẵn có. Giờ em muốn hiển thị tiếng Việt thì làm thế nào ạ? Các bác có thể nêu thuật toán giúp em được không? Lưu ý là tất cả các mã phải được lưu trong eeprom để tiện cho việc thay đổi. Ví dụ em đang hiển thị " I LOVE YOU" muốn thay thành " ANH YÊU EM" chẳng hạn em chỉ cần khai báo Char const a[]="ANH YEEU EM"
|
17-02-2009, 05:49 PM | #14 | |
Trưởng lão PIC bang
|
Trích:
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 |
|
18-02-2009, 10:35 AM | #15 |
Đệ tử 3 túi
Tham gia ngày: Jan 2009
Bài gửi: 52
: |
Thế nhưng ví dụ chữ A, B, C... thì đều có mã ASCII để nhận biết. Còn vi dụ chữ Â thì làm gì có mã ASCII để nhận biết hả anh. Ví dụ như chữ Â được mã hóa như thế nào trong MCU ạ? Ví dụ như em muốn hiển thị chữ Â ra LMD thì em phải xuất 5 byte mã hóa của chữ Â. Vậy làm sao đê biết đó là chữ Â được?
Các chữ đã được mã hóa ASCII thì đơn giản rồi. Ví dụ chữ A chẳng hạn em trỏ đến địa chỉ 32 trong eeprom và xuất liên tiếp 5 byte a[32].b[j] |
|
|