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

  • 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 !

  • #2
    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,
    Biển học mênh mông, sức người có hạn

    Comment


    • #3
      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 !

      Comment


      • #4
        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
        Ethernet-RS232, PIC Webserver, RFID Reader
        CallerID, Cảnh báo BTS, ...
        0988006696
        linhnc308@gmail.com
        http://linhnc308.blogspot.com

        Comment

        Về tác giả

        Collapse

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

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

        Collapse

        • tieungu
          cách thức làm việc của 1 máy in?
          tieungu
          chào mọi người,
          mình thấy bên kênh sáng tạo có hướng dẫn làm máy vẽ bút bi khá đơn giản, đổ file hex xuống board aduino là chạy được. Nên có ý định thử làm 1 chiếc máy in đơn giản xem sao. đầu in mình có sẵn. điều mình chưa...
          21-06-2017, 12:04
        • vi van pham
          Trả lời cho cách thức làm việc của 1 máy in?
          vi van pham
          Để làm việc theo yêu cầu của em trước hết phải có 1 phần mềm chuyên dụng điều khiển MCU trên máy tính. Em muốn in hình gì đó thì phải vẽ nó ra trên phần mềm chuyên dụng khác, sau đó xuất ra file G- code. Dựa vào file G- code, phần mềm...
          hôm nay, 18:56
        • thikhokdien
          Trả lời cho sửa bếp từ ,sửa nồi từ , bếp từ bệnh thường gặp , tổng hợp bếp từ
          thikhokdien
          Sau khi thay con IGBT mới thì bếp hoạt động bình thường trở lại rồi cả nhà. Cám ơn mọi người đã giúp đỡ!...
          hôm nay, 16:17
        • thikhokdien
          Trả lời cho Bếp từ cắm nguồn CB nhảy
          thikhokdien
          Mình đã kiểm tra thì con IBGT bị thông mạch cả 3 chân, sau khi thay con mới thì bếp đã hoạt động bình thường trở lại.
          hôm nay, 16:10
        • hoahauvn2
          Trả lời cho cách thức làm việc của 1 máy in?
          hoahauvn2
          Thôi dừng là vừa chả ai góp ý nổi cho bạn đâu, tưởng bạn đặt đặt tên nick cho vui nào ngờ ... thật luôn. Có biết một chữ cái dung lượng bao nhiêu ko? một bức hình dung lượng bao nhiêu? Tại sao một văn bản word cả chục trang có vài mb,...
          hôm nay, 15:28
        • tieungu
          Trả lời cho cách thức làm việc của 1 máy in?
          tieungu
          thật cười ra nước mắt với góp ý của bạn. vâng 1000 cơ đấy? 26 chữ cái coi như ok đi, thế còn hình vẽ, ảnh chụp thì lấy gì làm căn cứ, và bản mã sẽ phải như thế nào hả bạn. anyway, thanks, bros....
          hôm nay, 14:56
        • nglong24
          Trả lời cho KẾT NỐI MODBUS-RTU VỚI PC QUA CÔNG ETHERNET
          nglong24
          Mua thêm bộ chuyển đổi Modbus RS485 sang TCP/IP là ok. nếu đơn giản thì chỉ cần dùng Rs485 sang USB. trên máy tính dùng OPC Server là cũng được
          hôm nay, 14:27
        • nglong24
          Trả lời cho Trợ giúp: Không mở đ­ược Runtime trong WinCC 6.0 (kể cả 7.0)
          nglong24
          Thử Convert bằng tool migration trong winn tool xem...
          hôm nay, 14:22
        • hoahauvn2
          Trả lời cho cách thức làm việc của 1 máy in?
          hoahauvn2
          Mình hiểu rồi, Cái này là nguyên sơ của căn bản thôi nên không ai nhắc lại. Các file như excel, cad v.v... sẽ được máy tính mã hóa thành dạng dữ liệu nhị phân thường là 8bit vd (01110001 01100010 01010111 01001101 là mã nhận biết để in chữ A...
          hôm nay, 13:01
        • duong_act
          Trả lời cho [HD] Tìm mua connector plug.
          duong_act
          Cảm ơn bác. Loại này em đang dùng và muốn đổi sang loại khác.
          Hiện tại thì đã tìm thấy đúng loại nhưng giá digikey chát quá.
          600K cho 1 cặp @@.

          Mã 1844375, 1952429 của Phoenix Contact.
          Bác nào có giá mềm hơn báo em nhé...
          hôm nay, 13:00
        Đang tải...
        X