Thông báo

Collapse
No announcement yet.

EEPROM và ROM của PIC có khác nhau không?

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • linhnc308
    replied
    Code CCS su dung bộ EEPROM trong chip.
    Code:
    #include <16F877.h>
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=20000000)
    #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
    
    #include "stdlib.h"
    #include <input.c>
    #include "limits.h"
    // The following initializes the first 4 locations of the data EERPOM
    //  using the #ROM directive
    #rom 0x2100={1,2,3,4}
    
    typedef int8 INTEE;
    
    void main() {
    
       unsigned int8 i, j, address;
       INTEE value;
    
       do {
          printf("\r\n\nEEPROM:\r\n");              // Display contents of the first 64
          for(i=0; i<=3; ++i) {                     // bytes of the data EEPROM in hex
             for(j=0; j<=15; ++j) {
                printf( "%2x ", read_eeprom( i*16+j ) );
             }
             printf("\n\r");
          }
          printf("\r\nLocation to change: ");
          address = gethex();
          printf("\r\nNew value: ");
          value = gethex();
    
          write_eeprom( address, value );
    
       } while (TRUE);
    }
    Last edited by linhnc308; 28-03-2008, 11:43. Lý do: add [code] tag

    Leave a comment:


  • LUUTINH
    replied
    Nguyên văn bởi namqn Xem bài viết
    EEPROM dùng để chỉ data EEPROM (EEPROM dùng cho dữ liệu, là vùng nhớ không bị mất nội dung khi cấp điện, ghi/xóa bằng điện). Với PIC16 hay PIC18, vùng nhớ này là các ô nhớ 8-bit.

    ROM (hay chính xác hơn là flash ROM) là vùng nhớ chứa chương trình của PIC. Với các PIC lõi 14-bit (đa số PIC16) thì mỗi ô nhớ trong vùng này dài 14 bit, còn với các PIC18 thì mỗi ô nhớ dài 16 bit.

    Do đó, EEPROM và (flash) ROM hoàn toàn khác nhau. Khi bạn viết chương trình, bạn đang sử dụng vùng (flash) ROM, do đó CCS C báo rằng bạn sử dụng 8% dung lượng (flash) ROM là bình thường.

    Để tạo ra các giá trị cụ thể cho một ô/vùng nhớ nào đó trong EEPROM, bạn tham khảo tài liệu hướng dẫn của CCS C về #rom (trong mục nói về Preprocessor Directive). Nếu bạn chưa biết link để download tài liệu hướng dẫn của CCS C, nó đây: http://www.ccsinfo.com/downloads/CReferenceManual.pdf.

    Thân,
    Em đã đọc và cũng tạm hiểu , nhưng hiện giờ viết vẫn chưa được , đúng là nó cho phép lồng data vào trong file hex, và có thể viết data vào eeprom như ví dụ của ccs
    Code:
    #rom  0x2100={1,2,3,4,5,6,7,8}
    Em cũng đã mò hoài nhưng vẫn kô hiểu được cái chỉ thị tiền xử lý này nó làm cái gì .. em mò mẫm viết theo nhưng kết qua đọc từ eeprom ra chẳng thấy có sự thay đổi gì ... hic..hic.. viết kô được xem như giải thuật của em bị phá sản hic..hic...
    Các anh giúp em với ...
    Thanks for all !

    Leave a comment:


  • namqn
    replied
    Nguyên văn bởi LUUTINH Xem bài viết
    Cho em hỏi câu này hơi lúa một chút nha , eeprom va rom trong pic co giống nhau kô? nếu co khác thì khác nhau thế nào?
    Em sử dụng ccs , khi biên dich em thay vùng rom có sử dụng 8% , nhưng trong code em viết kô hề có việc ghi vào eeprom ..
    Và trong ccs muốn biên dịch file hex để nạp riêng cho eeprom phải làm sao hả anh ? ( em chỉ muốn nạp riêng một số giá trị vào trực tiếp vùng nhớ của eeprom)
    Mong các anh chỉ giúp
    Thanks for all !
    EEPROM dùng để chỉ data EEPROM (EEPROM dùng cho dữ liệu, là vùng nhớ không bị mất nội dung khi cấp điện, ghi/xóa bằng điện). Với PIC16 hay PIC18, vùng nhớ này là các ô nhớ 8-bit.

    ROM (hay chính xác hơn là flash ROM) là vùng nhớ chứa chương trình của PIC. Với các PIC lõi 14-bit (đa số PIC16) thì mỗi ô nhớ trong vùng này dài 14 bit, còn với các PIC18 thì mỗi ô nhớ dài 16 bit.

    Do đó, EEPROM và (flash) ROM hoàn toàn khác nhau. Khi bạn viết chương trình, bạn đang sử dụng vùng (flash) ROM, do đó CCS C báo rằng bạn sử dụng 8% dung lượng (flash) ROM là bình thường.

    Để tạo ra các giá trị cụ thể cho một ô/vùng nhớ nào đó trong EEPROM, bạn tham khảo tài liệu hướng dẫn của CCS C về #rom (trong mục nói về Preprocessor Directive). Nếu bạn chưa biết link để download tài liệu hướng dẫn của CCS C, nó đây: http://www.ccsinfo.com/downloads/CReferenceManual.pdf.

    Thân,

    Leave a comment:


  • LUUTINH
    started a topic EEPROM và ROM của PIC có khác nhau không?

    EEPROM và ROM của PIC có khác nhau không?

    Nguyên văn bởi phamthaihoa Xem bài viết
    Kiến trúc Harvard, tập lệnh RISC (Reduced instruction set computer)

    More info:
    http://vi.wikipedia.org/wiki/RISC
    http://en.wikipedia.org/wiki/Harvard_architecture
    Cho em hỏi câu này hơi lúa một chút nha , eeprom va rom trong pic co giống nhau kô? nếu co khác thì khác nhau thế nào?
    Em sử dụng ccs , khi biên dich em thay vùng rom có sử dụng 8% , nhưng trong code em viết kô hề có việc ghi vào eeprom ..
    Và trong ccs muốn biên dịch file hex để nạp riêng cho eeprom phải làm sao hả anh ? ( em chỉ muốn nạp riêng một số giá trị vào trực tiếp vùng nhớ của eeprom)
    Mong các anh chỉ giúp
    Thanks for all !

Về tác giả

Collapse

LUUTINH Tìm hiểu thêm về LUUTINH

Bài viết mới nhất

Collapse

Đang tải...
X